이전에 언급했던 Mini-batch SGD 로 training loss 의 수렴을 보장할 수 있었다. 하지만 학습 속도의 측면에서는 개선의 여지가 아직 많다.

Momentum

물리학적인 현상을 모방한 방법으로, 기초적인 Gradient Descent보다 더 빠르고 안정적인 수렴을 유도하기 위해 도입되었다. 물리학에서의 운동량처럼 이전 이전의 이동 방향(velocity)을 참고해서 현재 방향을 과거 방향을 일부 유지하며 점진적으로 조절한다.

$$ v_t=βv_{t−1}+(1−β)∇F(w_t)\\w_t=w_{t-1}-ηv $$

Momentum Rate 인 $\beta$ 는 이전의 속도를 얼마나 반영할지 결정하는 hyperparameter 이다.

문제 Momentum의 해결 방식
Loss landscape가 울퉁불퉁해서 진동함 이전 방향을 유지해 진동을 줄임
경사가 작은 방향(plateau)에서 느리게 이동 관성 효과로 가속도 붙음
Local minimum에 빠짐 관성으로 탈출 가능

image.png

위 그림처럼 SGD 에 Momentum 을 함께 사용하면 훈련이 빨라진다.

또한, 관성을 부여하기 때문에 local minima 를 무시해 non-convex 문제에서 효과적이다. 하지만 관성이 너무 강하면 목표 지점을 overshoot하거나 방향이 계속 바뀌는 지형에서는 진동하거나 수렴이 느려질 수 있다. 그러므로 적절한 momentum rate 와 lr 설정이 필요하다.

Arguments

Momentum 의 사용에 대한 논쟁들이 있다. Momentum 이 왜 작동하는지, 어떻게 작동하는지에 대한 이론적 분석은 미흡하기 때문에 Optimization 측면에서 정량적으로 불확실하다는 의견이 있다. 또한 hyperparameter 인 momentum rate 에 크게 의존하는 것도 문제라고 할 수 있다.

Weight Decay

Practical L2-Norm Regularization

Weight Decay 는 신경망에 L2-norm regularization 을 적용한 것이다. 큰 가중치는 모델을 복잡하게 만들고, Overfitting 을 유발할 수 있다. L2 정규화는 가중치를 작게 유지함으로써 일반화 성능을 높인다.

image.png

Ridge Regression 식에서 입력 데이터와 가중치로 이루어진 항이 $f(x)$ 로 대체된다면 신경망에서의 weight decay 로 일반화될 수 있다. λ는 모델 파라미터(즉, weight)의 크기에 얼마나 벌점을 줄 것인지 조절하는 하이퍼파라미터다.

Batch Normalization

Vanishing Gradient Issue

일반적인 가중치는 1보다 작을 확률이 높다. 그리고 gradient 의 일반적인 형태는 (error times input) 으로 나타난다. 각 층의 끝 부분에 있는 활성화 함수 중 일부 (sigmoid 등) 은 큰 값을 작은 값으로 매핑한다. 이로 인해 층이 깊어질수록 gradient 의 값이 계속 작아지는 현상이 발생한다. 이로 인해 Back Propagation 을 통한 학습 속도가 더뎌질 수 있다.

Batch Normalization