← 문제 목록/SGD + Momentum 한 스텝
문제 해설

SGD + Momentum 한 스텝

최적화 · easy

preview

SGD + Momentum 한 스텝

경사하강법(5번)관성을 추가한 고전 옵티마이저. 이전 이동 방향이 "속도" 로 쌓여 지그재그를 덜 하고 최적점에 더 부드럽게 도달합니다. 신경망 학습 초창기의 워크호스.

업데이트 규칙 (PyTorch 관례)

vt=βvt1+gtv_{t} = \beta \, v_{t-1} + g_t wt=wt1ηvtw_{t} = w_{t-1} - \eta \, v_t

  • vv: 속도 (velocity). 0으로 초기화.
  • β\beta: 관성 (보통 0.9)
  • η\eta: 학습률 (lr)
  • gg: 이번 스텝의 gradient

왜 잘 되나

Gradient가 매번 흔들려도 v 가 이를 평활해 일관된 방향으로 이동. Ravine(깊은 골짜기) 형태의 손실 표면에서 특히 유용.

과제

함수 momentum_step(w, g, v, lr, beta) 를 완성하세요.

  • 모두 NumPy 배열 (또는 스칼라).
  • 반환: (w_new, v_new) 튜플.
  • v 업데이트 → w 업데이트.

테스트 케이스

#이름검증
1v_new = β·v + g
2w_new = w - lr·v_new
3β=0 → plain SGDw_new = w - lr·g
4shape 유지벡터 입력
5여러 스텝 누적v 가 g 방향으로 쌓임
코드 작성
Loading...
실행 결과

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