이전에 언급했던 Mini-batch SGD 로 training loss 의 수렴을 보장할 수 있었다. 하지만 학습 속도의 측면에서는 개선의 여지가 아직 많다.
물리학적인 현상을 모방한 방법으로, 기초적인 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에 빠짐 | 관성으로 탈출 가능 |

위 그림처럼 SGD 에 Momentum 을 함께 사용하면 훈련이 빨라진다.
또한, 관성을 부여하기 때문에 local minima 를 무시해 non-convex 문제에서 효과적이다. 하지만 관성이 너무 강하면 목표 지점을 overshoot하거나 방향이 계속 바뀌는 지형에서는 진동하거나 수렴이 느려질 수 있다. 그러므로 적절한 momentum rate 와 lr 설정이 필요하다.
Momentum 의 사용에 대한 논쟁들이 있다. Momentum 이 왜 작동하는지, 어떻게 작동하는지에 대한 이론적 분석은 미흡하기 때문에 Optimization 측면에서 정량적으로 불확실하다는 의견이 있다. 또한 hyperparameter 인 momentum rate 에 크게 의존하는 것도 문제라고 할 수 있다.
Weight Decay 는 신경망에 L2-norm regularization 을 적용한 것이다. 큰 가중치는 모델을 복잡하게 만들고, Overfitting 을 유발할 수 있다. L2 정규화는 가중치를 작게 유지함으로써 일반화 성능을 높인다.

Ridge Regression 식에서 입력 데이터와 가중치로 이루어진 항이 $f(x)$ 로 대체된다면 신경망에서의 weight decay 로 일반화될 수 있다. λ는 모델 파라미터(즉, weight)의 크기에 얼마나 벌점을 줄 것인지 조절하는 하이퍼파라미터다.
일반적인 가중치는 1보다 작을 확률이 높다. 그리고 gradient 의 일반적인 형태는 (error times input) 으로 나타난다. 각 층의 끝 부분에 있는 활성화 함수 중 일부 (sigmoid 등) 은 큰 값을 작은 값으로 매핑한다. 이로 인해 층이 깊어질수록 gradient 의 값이 계속 작아지는 현상이 발생한다. 이로 인해 Back Propagation 을 통한 학습 속도가 더뎌질 수 있다.