상세 컨텐츠

본문 제목

[ML] 최적화 기법 (경사 하강법, SGD, 미니배치경사하강법, 모멘텀, RMSprop, Adam, 베이지안 최적화)

테크/ML

by fiftyline 2025. 2. 16. 20:27

본문

 

미분을 이용한 최적화

목적함수를 미분하여 기울기(Gradient)를 계산하고, 이를 이용해 모델의 파라미터를 업데이트한다.

 

 

  • 경사 하강법(Gradient Descent)

가장 널리 사용되는 최적화 기법으로, 목적 함수를 최소화하는 방향으로 이동하는 방식이다.

 

업데이트 공식:

$\theta = \theta-\alpha \nabla L(\theta)$

\alpha: 학습률(learning rate)

\nabla L(\theta): 손실함수의 기울기

 

 

  • 확률적 경사 하강법(SGD, Stochastic Gradient Descent)

전체 데이터셋이 아닌 무작위 데이터 샘플 하나를 이용하여 경사를 계산하고 업데이트한다.

Local Minimum을 탈출할 확률이 높으며 속도가 빠르지만, 최적해 근처에서 진동할 수 있다.

 

 

  • 미니배치 경사 하강법(Mini-Batch Gradient Descent)

전체 데이터가 아닌 일부 샘플(미니배치)를 이용하여 경사를 계산하고 업데이트한다.

전체 배치 경사 하강법보다 빠르고 안정적이며 SGD보다 진동이 적다. 딥러닝 모델에서 많이 사용된다.

 

 

  • 모멘텀(Momentum)

SGD는 경사가 급격하게 변할 경우 진동이 크지만, 모멘텀을 추가하면 과거의 기울기 정보를 활용해 더 부드럽게 이동할 수 있다.

관성을 추가하여 진동을 줄이고 SGD보다 빠르게 수렴하도록 돕는다. 너무 큰 모멘텀을 사용하면 최적해를 지나칠 수 있다.

 

업데이트 공식:

$v_t = \beta v_{t-1} + (1-\beta)\nabla L(\theta)$

$\theta = \theta - \alpha v_t$

$v_t$: 모멘텀을 반영한 속도

$\beta$:모멘텀 계수 (일반적으로 0.9)

 

 

  • RMSprop(Root Mean Square Propagation)

SGD의 각 방향마다 학습 속도가 다르다는 단점을 보완하여, RMSprop은 각 가중치마다 다른 학습률을 적용한다.

변화가 심한 방향을은 학습률을 작게 조절하고, 변화가 적은 방향은 학습률을 크게 조절한다.

RNN에서 효과적이며(기울기 소실 문제 방지) 학습속도가 안정적이지만, 전역 최적점보다 지역 최적점에 빠질 가능성이 있다.

 

업데이트 공식:

$E[g^2]_t = \beta E[g^2]_{t-1}+(1-\beta)(\nabla L(\theta))^2$

$\theta = \theta - \frac{\alpha}{\sqrt{E[g^2}_t+\epsilon}\nabla L(\theta)$

$E[g^2]_t$: 기울기 제곱의 이동평균

$\beta$: 감쇠 계수 (일반적으로 0.9)

$\epsilon$: 작은 수 (0.000001)

 

 

  • Adam (Adaptive Moment Estimation)

모멘텀과 RMSprop을 합친 기법으로, 현재 널리 사용되는 최적화 방법이다.

1차 모멘트(이전 기울기의 평균)와 2차 모멘트(기울기 제곱 평균)를 동시에 사용한다.

학습률을 자동으로 조정해서 빠르게 최적화하므로 튜닝 부담이 적고, CNN, NLP등 대부분의 딥러닝 모델에서 효과적이다.

하지만 일부 연구에서는 Adam이 일반화 성능이 떨어진다고 알려졌다.

 

업데이트 공식:

$m_t = \beta_1 m_{t-1} + (1-\beta_1)\nabla L(\theta)$

$v_t = \beta_2 v_{t-1} + (1-\beta_2)(\nabla L(\theta))^2$

$\hat{m_t}=\frac{m_t}{1-\beta^t_1},\hat{v_t}=\frac{v_t}{1-\beta^t_2}$

$\theta = \theta-\frac{\alpha\hat{m_t}}{\sqrt{ \hat{v_t} } + \epsilon}$

$m_t$: 1차 모멘트 (Gradient 평균)

$v_t$: 2차 모멘트 (Gradient 분산)

$\beta_1, \beta_2 $: 모멘텀 계수 (일반적으로 0.9, 0.999)

 

 

  • 베이지안 최적화 (Bayesian Optimization)

Adam이나 SGD는 가중치를 최적화하지만, 베이지안 최적화는 하이퍼파라미터(learning rate, batch size 등)을 최적화하는 기법이다.

손실함수의 형태를 확률적으로 모델링하고(Gaussian Process) 효율적으로 실험하여 최적의 하이퍼파라미터를 탐색한다.

학습률, 배치 크기, 네트워크 구조 등을 최적화할 때 사용되며, 실험 횟수를 줄이고 최적의 조합을 찾을 수 있다.

관련글 더보기