[AI] 4. 신경망 최적화 알고리즘
신경망의 최적화 알고리즘들에 대해 알아보자.
신경망 학습의 궁극적인 목표는 손실 함수(Loss Function)가 최솟값을 갖도록 하는 가중치(Weight) 매개변수를 찾는 것이다. 이를 수학적으로는 최적화(Optimization)라고 부른다.
그 과정은 복잡하고 험준한 산맥에서 눈을 가리고 가장 깊은 골짜기를 찾아 내려가는 과정과 같다. 이러한 비유는 신경망의 학습 과정이 어떻게 이루어지는지 직관적으로 이해하기 쉽게 도와준다.
가장 기본이 되는 확률적 경사 하강법(SGD)부터 현대 딥러닝의 표준인 Adam까지 알아보자.
1. 확률적 경사하강법(Stochastic Gradient Descent, SGD)
가장 기본적인 최적화 방법이다. 현재 위치에서 기울기(Gradient)를 구하고 그 기울기의 반대 방향으로 학습률(Learning Late)만큼 이동시킨다.
- $W$ : 가중치(Weight)
- $L$ : 손실 함수(Loss function)
- $\eta$ : 학습률(Learning Rate)
SGD의 단점
SGD는 단순하고 직관적이지만, 비등방성(Anisotropy) 함수, 즉 방향에 따라 기울기가 달라지는 지형에서는 최솟값을 향해 직선으로 가지 못하고 심하게 지그재그로 요동치는 단점이 있다.
GeoGebra사이트를 이용하여 $f(x,y) = x^2/40 + y^2$ 그래프를 시각화했다. 이러한 그래프에서는 SGD와 같은 최적화 방법을 사용하면 학습하는데 비효율적이다.
2. 모멘텀(Momentum)
SGD의 지그재그 요동을 줄이기 위해 물리학의 관성(가속도)개념을 도입한 방법이다.
- $\alpha$ : 모멘텀 계수
- $v$ : 속도
- $\frac{\partial L}{\partial W}$ : 현재 위치에서의 기울기
모멘텀은 기울기 부호가 계속해서 바뀌는 방향 으로는 속도가 상쇄되어 움직임이 줄어들고, 기울기 부호가 바뀌지 않는 방향으로는 가속도가 붙어 훨씬 빠르게 수렴한다.
첫 번째 식의 $\alpha v$는 아무런 힘을 받지 않을 때 서서히 하강시킨다.
모멘텀의 단점
모멘텀은 관성이 너무 강하면 최적점을 지나치는 오버슈팅(Overshooting)현상이 발생할 수 있는 단점이 있다.
3. AdaGrad(Adaptive Gradient)
AdaGrad는 가중치마다 학습률을 다르게 적용하는 적응형 최적화 알고리즘이다. 학습률 감소(Learning Rate Decay)를 이용한다. (수학적으로는 대각 근사 헤시안(Diagonal Approximation of Hessian)의 아이디어와 유사하다고 한다.)
AdaGrad는 초기에는 큰 보폭으로 학습이 진행되다가 학습률을 점차 줄여가면서 후기에는 작은 보폭으로 학습한다. 이러면 왜 효율적이게 될까?
학습이 계속 진행되면서 일정한 크기의 학습률로 매개변수를 갱신하면 최솟값을 지나치거나 발산하며 학습이 잘 이뤄지지 않는 현상이 일어난다. 모멘텀에서 오버슈팅 또한 그 예라고 볼 수 있다. 학습률을 점차 줄여가면 최적점에 안정적으로 정착할 수 있다.
- $h$ : 기울기 제곱을 누적
- $\odot$ : 행렬의 원소별 곱셈 (Element-wise product)
- $\epsilon$ : $0$으로 나누는 것을 방지하기 위한 아주 작은 값
AdaGard의 단점
과거의 기울기를 계속 누적하기 때문에 학습이 길어지면 $h$의 값이 계속해서 증가한다. 이는 갱신량이 결국 $0$에 수렴하는 학습 조기 중단(Dying Learning Rate)현상이 일어나는 단점이 있다.
4. RMSProp(Root Mean Square Propagation)
AdaGrad의 ‘학습률 소실’ 문제를 해결하기 위해 고안된 최적화 알고리즘이다. 지수 이동 평균(EMA, Exponential Moving Average)을 사용하여 먼 과거의 기울기는 서서히 잊고 최근의 기울기를 더 크게 반영한다.
\[h \leftarrow \rho h + (1 - \rho) \frac{\partial L}{\partial W} \odot \frac{\partial L}{\partial W}\] \[W \leftarrow W - \eta \frac{1}{\sqrt{h} + \epsilon} \odot \frac{\partial L}{\partial W}\]- $\rho$ : 감쇠율(Decay rate)
첫 번째의 식을 보면 $h$가 계속 갱신될 때마다 계속해서 $\rho$가 곱해져 가중치가 지수적으로 감소하는 것을 알 수 있다.
AdaGrad와는 달리 먼 과거의 기울기 영향력이 감소하여 사라지므로 학습 조기 중단현상을 방지한다.
5. Adam(Adaptive Moment Estimation)
모멘텀(Momentum)의 관성과 RMSProp의 매개변수별 적응적 학습률을 융합한 최적화 알고리즘이다. 현재 딥러닝에서 가장 널리 쓰이는 표준 최적화 기법이다.
Adam은 기울기의 1차 모멘트(평균, $m$)와 2차 모멘트(분산, $v$)를 모두 지수 이동 평균으로 추정한다.
모멘트 추정 (Momentum + RMSProp)
편향 보정 (Bias Correction)
학습 초기에는 $m$과 $v$가 $0$에 가깝게 편향되는 문제가 있으므로, 이를 수식적으로 보정한다. $t$는 학습 횟수이다.
\[\hat{m} = \frac{m}{1 - \beta_1^t}, \quad \hat{v} = \frac{v}{1 - \beta_2^t}\]가중치 갱신
총 5개의 최적화 알고리즘에 대해 알아보았다. 그렇다면 어떤 기법을 사용해야 할까?
모든 문제에 최선인 최적화 알고리즘은 아직 존재하지 않는다. 문제의 지형에 따라 SGD가 유효한 분야도 많고 AdaGrad가 RMSProp보다 더 효율적인 문제도 있다. 최근에는 기본적으로 Adam을 사용한다.
