← 문제 목록/AdaGrad 옵티마이저 한 스텝
문제 해설

AdaGrad 옵티마이저 한 스텝

최적화 · easy

preview

AdaGrad 한 스텝 업데이트

73번 RMSProp 은 gradient 제곱의 EWMA 로 최근 크기를 추정. AdaGrad (Duchi et al. 2011) 는 그 조상으로, EWMA 없이 단순 누적:

st=st1+gt2s_t = s_{t-1} + g_t^2 wt=wt1ηst+ϵgtw_t = w_{t-1} - \frac{\eta}{\sqrt{s_t} + \epsilon} \, g_t

ss 가 단조 증가하므로 effective learning rate 는 시간이 갈수록 항상 감소 (→ 0).

RMSProp vs AdaGrad

특성AdaGradRMSProp
ss 업데이트s+g2s + g^2 (누적)βs+(1β)g2\beta s + (1-\beta) g^2 (EWMA)
장기 학습lr 계속 감소 → 결국 멈춤forget → 안정
용도희소 특성, 볼록 문제신경망 일반

언제 유용한가

  • NLP / 희소 특성 (각 단어가 가끔만 등장 → 해당 축의 ss 가 작게 유지 → 큰 스텝)
  • 볼록 최적화에서 이론적 수렴 보장
  • 딥러닝엔 부적합 (lr 과도 감소) → RMSProp/Adam 이 대체

과제

함수 adagrad_step(w, g, s, lr, eps) 를 완성하세요.

  • 입력: w,g,sw, g, s 동일 shape, 스칼라 lr,ϵlr, \epsilon.
  • 반환: (w_new, s_new).
  • 힌트: s_new = s + g**2; w_new = w - lr * g / (np.sqrt(s_new) + eps).

테스트 케이스

#이름검증
1s 업데이트 = s + g²EWMA 아님
2w 업데이트 수식
3eps 보호g=0, s=0 → NaN 없음
4s 단조 증가반복 시 s 가 커짐
5희소 축은 크게 움직임한 축만 gradient 있을 때
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.