딥러닝 모델 학습에서 모든 파라미터를 하나의 스칼라 값 $\eta$으로 제어하는 방식(Global Learning Rate)에는 근본적인 한계가 존재합니다. 예를 들어, 언어 모델의 임베딩 테이블은 토큰별로 희소하고 간헐적인 기울기 신호를 받는 반면, 최종 투영 레이어는 매 스텝마다 밀집되고 일관된 기울기를 받습니다. 이처럼 파라미터 유형에 따라 필요한 업데이트 전략이 다르기 때문에 단일 학습률로는 두 가지 극단적인 상황을 모두 만족시킬 수 없습니다.
1. AdaGrad (Adaptive Gradient Algorithm)
AdaGrad는 각 파라미터가 자체적인 효과적 학습률(effective learning rate)을 유지하도록 설계되었습니다. 이는 지금까지 관측된 기울기 제곱의 합($G_t$)을 추적하는 누적 방식입니다. 업데이트 공식은 다음과 같습니다:
$$\theta_{t+1} = \theta_t - (\eta / \sqrt{G_t + \epsilon}) \cdot \nabla L(\theta_t)$$
이 메커니즘의 핵심은 각 파라미터 $\theta_i$가 자신만의 누적기 $G_i$를 가지며, 기울기를 $\sqrt{G_i}$로 나누어 업데이트한다는 점입니다. 이 방식 덕분에:
- 희소 파라미터: 간헐적으로 신호가 오면 $G$ 값이 작아져 효과적인 학습률이 커지고, 큰 보폭으로 빠르게 이동할 수 있습니다.
- 밀집 파라미터: 자주 업데이트되면서 $G$ 값이 커지므로, 상대적으로 작은 보폭으로 보수적이고 안정적인 업데이트를 수행합니다.
AdaGrad는 이러한 장점 덕분에 NLP의 단어 임베딩이나 추천 시스템 등 희소 특징(sparse features)이 많은 분야에서 강력한 성능을 보여주었습니다. 이론적으로 컨벡스 문제에서는 최적의 회개 경계(optimal regret bounds)를 보장합니다.
2. AdaGrad의 치명적인 결함: Dying Learning Rate (사망 학습률)
AdaGrad는 $G_t$를 단순히 누적하는 방식이기 때문에, 훈련 스텝이 진행될수록 이 누적기($G_t$)가 무한히 커집니다. 결국 $\eta / \sqrt{G_t}$의 값은 모든 파라미터에 대해 0으로 수렴하게 됩니다. 이는 모델 학습을 효과적으로 중단시켜 버리는 '사망 학습률' 문제로 이어지며, 충분히 많은 스텝이 지나면 모델이 아직 수렴하지 않았더라도 사실상 학습이 멈추게 만듭니다.
또한, 깊은 신경망의 손실 표면(loss landscape)은 비정상적(non-stationary)입니다. 즉, 다른 파라미터가 업데이트되면서 최적화 목표 자체가 계속 변합니다. 이 경우 초기에 얻은 오래된 기울기 정보는 현재 상황에 대한 오해를 불러일으키며, AdaGrad의 누적 방식은 이러한 변화하는 곡률 정보를 제대로 반영하지 못합니다.
3. RMSProp (Root Mean Square Propagation)
RMSProp은 AdaGrad가 가진 이 구조적인 문제를 해결하기 위해 등장했습니다. 핵심 변경점은 누적합(cumulative sum)을 **지수 가중 이동 평균(Exponentially Weighted Moving Average, EMA)**으로 대체한 것입니다.
$$E_t = \rho \cdot E_{t-1} + (1 - \rho) \cdot (\nabla L(\theta_t))^2$$
$$\theta_{t+1} = \theta_t - (\eta / \sqrt{E_t + \epsilon}) \cdot \nabla L(\theta_t)$$
여기서 $\rho$는 감쇠 계수(decay coefficient)로, 최근 기울기 정보에 더 큰 가중치를 부여합니다. EMA를 사용함으로써 $E_t$는 무한히 커지지 않고 '슬라이딩 윈도우'처럼 작동하게 됩니다. 즉, 수백 스텝 전의 오래된 기울기는 점차 희미해지고(fade out), 최신 손실 표면의 곡률 정보가 효과적으로 반영됩니다.
RMSProp은 AdaGrad의 장점인 파라미터별 적응성을 유지하면서도, 깊은 학습 환경에서 발생하는 '사망 학습률' 문제를 해결하여 실질적인 적용 범위를 크게 넓힌 알고리즘입니다.