AdaGrad(Adaptive Gradient Algorithm)은 각 파라미터마다 학습률(learning rate)을 다르게 적용하여, 파라미터별로 변화량을 자동 조정하는 적응형(Adaptive) 옵티마이저 알고리즘이다. 2011년 John Duchi, Elad Hazan, Yoram Singer가 제안했으며, 희소(sparse) 데이터나 자연어 처리와 같은 영역에서 특히 효과적이다.
개념
기존 경사 하강법(Gradient Descent)은 모든 파라미터에 동일한 학습률 η를 적용한다. 하지만 파라미터마다 기울기의 크기나 스케일이 다르기 때문에, 단일 학습률로는 효율적인 학습이 어렵다. AdaGrad는 이를 보완하기 위해 각 파라미터별 누적 기울기의 제곱합을 기준으로 학습률을 자동 조정한다.
수식으로 표현하면 다음과 같다.
gt = ∂L/∂Wt Gt = Gt-1 + gt2 Wt+1 = Wt - η·gt / √(Gt + ε)
여기서
- η : 기본 학습률 (learning rate)
- Gt : 시점 t까지의 기울기 제곱 누적값
- ε : 분모 안정화를 위한 작은 상수 (보통 1e-8)
이 방식은 기울기가 자주 큰 파라미터의 학습률을 자동으로 줄이고, 자주 변하지 않는(희소한) 파라미터의 학습률은 상대적으로 높여준다.
특징
- 각 파라미터마다 학습률을 다르게 적용하여 빠른 적응 가능
- 희소 데이터(sparse feature)에 강한 성능
- 학습 초반에는 빠르게 수렴하지만, 시간이 지날수록 학습률이 지나치게 작아질 수 있다.
- 이후 RMSProp이 이 문제를 보완한 개선형 알고리즘으로 제안되었다.
장점
- 수작업으로 학습률을 조정할 필요가 거의 없음
- 희소 표현을 사용하는 자연어 처리(NLP), 추천 시스템 등에서 특히 효과적
- 단순하고 구현이 쉬움
단점
- 기울기 제곱 누적값이 계속 커져서 학습률이 0에 가까워질 수 있음
- 장기 학습 시 수렴 속도가 급격히 느려질 수 있음
- RMSProp, Adam 등에 비해 대규모 비정규화 데이터에서는 성능이 떨어짐
하이퍼파라미터
| 파라미터 | 기본값(예시) | 설명 |
|---|---|---|
| η (learning rate) | 0.01 | 기본 학습률 |
| ε (epsilon) | 1e-8 | 분모 안정화용 상수 |
수학적 해석
AdaGrad의 핵심은 학습률 스케일링(Learning Rate Scaling)이다. 파라미터 W의 i번째 요소에 대해, 기울기의 제곱합 Gt,i가 누적되면 유효 학습률은 다음과 같이 줄어든다.
ηeff = η / √(Gt,i + ε)
즉, 기울기가 자주 큰 방향으로는 학습률이 작아지고, 기울기가 거의 없는 희소한 방향으로는 학습률이 상대적으로 유지된다.