[DL] 옵티마이저와 지표

jul ee·2025년 6월 9일

데이터 성장기

목록 보기
128/139

🖇  0. 딥러닝 학습 흐름
🖇  1. 옵티마이저란?
🖇  2. 경사하강법 (Gradient Descent)
🖇  3. 볼록 함수 vs 비볼록 함수
🖇  4. 학습률 (Learning Rate)
🖇  5. 지표 (Metrics)


모델 학습에서 손실 함수가 예측 성능을 수치화해준다면, 옵티마이저는 그 손실 값을 최소화하기 위해 파라미터를 어떻게 업데이트할지를 결정하는 역할을 한다. 학습 도중 혹은 완료 후 모델 성능을 평가할 때는 지표(metrics)를 사용한다.

이 글에서는 딥러닝의 학습 흐름을 이해하고 옵티마이저의 개념과 경사하강법, 학습률, 지표의 종류 순서로 정리해 보았다.



🖇  0. 딥러닝 학습 흐름

사람은 실수하거나 경험을 통해 피드백을 받고 점점 더 나아지는 방식으로 학습한다. 반면 딥러닝은 손실 함수를 통해 예측과 정답 간의 오차를 계산하고, 이를 기반으로 모델의 가중치를 반복적으로 업데이트해 나가는 방식으로 학습이 이루어진다. 오차가 작아지도록 모델 내부의 수많은 가중치를 미세하게 조정해가는 과정이 딥러닝의 학습이다.

딥러닝 모델의 학습 과정은 다음과 같은 흐름으로 이루어진다.

  1. 입력 X가 모델에 들어가고
  2. 레이어를 거쳐 예측 Y'를 만든다.
  3. 예측값 Y'와 정답 Y를 비교하여 손실 함수로 손실값을 계산한다.
  4. 손실값을 기준으로 옵티마이저가 가중치를 업데이트한다.

💡 딥러닝 모델의 학습에 필요한 구성요소는 입력 X, 정답 Y, 손실 함수, 옵티마이저, 그리고 예측값 Y'로 이루어진다. 먼저 데이터셋을 입력 X와 실제 정답(레이블)인 Y로 구분하고, 입력 데이터는 연속된 레이어를 통해 예측값 Y'로 출력된다. 이때 손실 함수는 모델의 예측값 Y'과 실제 정답 Y의 차이를 손실값으로 계산하고, 이 손실값을 기준으로 옵티마이저가 가중치를 업데이트한다. 이 과정은 예측 → 오차 측정 → 가중치 업데이트의 순서로 반복되며 계산한 손실값을 점점 줄여나가는 방향으로 진행된다. 결국 계산한 손실값을 최소화하도록 옵티마이저가 동작하는 것이 딥러닝 모델 학습이다.

이처럼 딥러닝 학습은 예측-오차 계산-오차 최소화를 반복하는 과정이고, 손실 함수와 옵티마이저는 각각 오차 계산과 학습 방향 결정을 담당한다.




🖇  1. 옵티마이저란?

옵티마이저는 손실 함수 값을 기준으로 모델 파라미터(가중치 등)를 어떤 방식으로 조정할지 결정하는 알고리즘이다. 딥러닝 모델이 학습할 때 사용하는 최적화 기법이다.

  • 손실 함수는 오차를 수치화하고,
  • 옵티마이저는 그 값을 줄이기 위해 모델을 업데이트한다.

Keras에서는 여러 종류의 옵티마이저를 제공하는데 모델에 맞게 선택하여 사용할 수 있다.

자주 쓰이는 옵티마이저 종류

keras.optimizer.SGD()

  • 가장 기본적인 옵티마이저
  • 확률적 경사하강법(Stochastic Gradient Descent)

keras.optimizer.Adam()

  • 학습률을 자동 조정해주는 대표적인 옵티마이저

SGD는 고정된 학습률과 단순한 기울기 업데이트 방식을 사용하지만, Adam은 모멘텀과 적응형 학습률을 활용해 더 안정적이고 빠른 수렴을 기대할 수 있다. 특히 안장점이나 평평한 지역에서 잘 빠져나오는 특징이 있어 많이 쓰인다.

옵티마이저는 model.compile() 단계에서 설정하고, 필요하면 별도 객체로 생성해서 하이퍼파라미터를 조정할 수도 있다.




🖇  2. 경사하강법 (Gradient Descent)

옵티마이저는 손실 함수를 기반으로 모델이 어떻게 업데이트되어야 하는지 결정한다. Keras에서 여러 옵티마이저를 제공하고, 사용자는 특정 종류의 확률적 경사 하강법을 지정할 수 있다.

경사하강법은 대부분의 옵티마이저가 기반으로 삼는 핵심 원리다.

손실 함수가 정의된 공간에서 그 함수의 기울기를 따라 손실 값이 줄어드는 방향으로 조금씩 이동하면서 최적의 파라미터를 찾아가는 방식이다.

수학적으로는 미분을 통해 기울기를 계산하고, 그 기울기의 반대 방향으로 파라미터를 업데이트한다.

xn=xn1ηf(x)x_{n} = x_{n-1} - \eta \cdot \nabla f(x)
  • xx:  현재 파라미터
  • η\eta:  학습률 (learning rate)
  • f(x)\nabla f(x):  손실 함수의 기울기

f(x+Δx)f(x)f(x+\Delta x) - f(x) 형태의 미분 정의를 통해 변화량이 큰 곳에서는 빠르게 이동하고, 평평한 곳에서는 천천히 움직인다.

경사하강법의 한계: 안장점 문제

경사하강법은 기울기를 따라 이동하기 때문에 기울기가 0인 지점에서는 더 이상 나아가지 못한다. 이때 해당 지점이 실제 최소값이 아니라면 문제가 된다.

  • 이런 지점을 안장점(Saddle Point)이라 부른다.
  • 안장점은 한 축에서는 최솟값처럼 보이지만, 다른 축에서는 최댓값처럼 보이므로 기울기가 0이 되어 멈추게 된다.
  • Adam, RMSProp 등의 옵티마이저는 이 문제를 피하기 위해 이전 변화량을 누적하거나, 축마다 학습률을 조정하는 전략을 사용한다.



🖇  3. 볼록 함수 vs 비볼록 함수

최적화 과정에서 손실 함수의 형태에 따라 결과가 달라질 수 있다.

  • 볼록 함수(Convex Function): 어디서 시작하든 전역 최적점(최솟값)에 도달함
  • 비볼록 함수(Non-Convex Function): 시작 위치에 따라 다른 국소 최소점에 빠질 수 있음

대부분의 딥러닝 모델은 비선형 활성 함수 등을 포함하고 있어 손실 함수가 비볼록 함수가 되는 경우가 많다. 이 때문에 경사하강법 기반의 옵티마이저가 안정적으로 작동하려면 하이퍼파라미터 조정이나 초기값 설정이 중요하다.




🖇  4. 학습률 (Learning Rate)

학습률은 옵티마이저가 파라미터를 얼마만큼 변경할지를 결정하는 값이다.

  • 너무 크면 최솟값을 지나쳐 발산할 수 있고,
  • 너무 작으면 학습이 매우 느리거나 지역 최솟값에서 멈춰버릴 수 있다.

경사하강법을 통해 손실함수의 반대 기울기 방향으로 업데이트 할 때 업데이트 되는 크기에 관여하며 잘못 설정한 경우 손실함수의 최저점에 도달하지 못할 수 있다.

위에서 볼 수 있듯이

  • 큰 학습률: 수렴하지 못하고 진동하거나 발산
  • 작은 학습률: 느리게 수렴하거나 정체
  • 적절한 학습률: 빠르게 최적점에 수렴

일반적으로는 작은 학습률로 시작하고 일정 횟수마다 감소시키는 스케줄링을 쓰거나, Adam과 같은 적응형 옵티마이저를 통해 자동 조절하는 방식이 활용된다.

대표적인 스케줄링 기법으로는 StepDecay, ExponentialDecay, ReduceLROnPlateau 등이 있다.




🖇  5. 지표 (Metrics)

손실 함수가 학습 과정의 최적화를 위한 기준이라면 지표는 모델이 얼마나 잘 작동하는지를 평가하기 위한 기준이다. 손실 함수는 역전파와 파라미터 업데이트에 영향을 주는 반면, 지표는 오직 평가 목적으로만 사용된다.

모델을 평가할 때는 손실 함수 외에도 다양한 지표(metrics)를 함께 설정한다.

Keras에서 자주 쓰는 지표

  • mae (Mean Absolute Error):  회귀 문제에서 자주 사용
  • accuracy:  분류 문제에서 정확도를 측정
  • acc:  accuracy의 줄임말로도 사용 가능

학습 중에는 지표의 변화 추이를 통해 과적합 여부나 학습 상태를 확인할 수 있다. Keras에서는 metrics 리스트를 통해 여러 지표를 동시에 모니터링할 수 있다.




인사이트 및 회고

지금까지 딥러닝 학습 흐름부터 옵티마이저, 경사하강법, 학습률, 지표의 개념과 실제 적용 시 주의할 점까지 살펴보았다. 마무리하면서 각 개념에서 이해해야 할 주요 이슈들을 정리해 보았다.

항목역할이슈
옵티마이저손실 값을 줄이기 위한 파라미터 업데이트 방식Adam, SGD 등 다양한 종류, 학습률 필요
경사하강법기울기를 따라 손실 값을 줄이는 원리안장점에서 정체 가능성 있음
학습률파라미터를 얼마나 빠르게 조정할지 결정크면 발산, 작으면 수렴 속도 느림
지표모델 성능 평가용 기준mae, accuracy 등 문제 유형별 선택

손실 함수가 예측과 정답의 차이를 수치로 표현한다면 옵티마이저는 그 차이를 줄이기 위한 방법이고, 지표는 그 결과를 평가하는 기준이라는 것을 알 수 있었다.

학습률이나 함수의 형태에 따라 학습 성능이 크게 달라질 수 있으므로 이론과 함께 실험을 병행하며 설정값을 조정하는 과정이 중요하다고 생각된다.

profile
AI에 관심을 가지고, 데이터로 가치를 만들어 나가는 과정을 기록합니다.

0개의 댓글