
74번 Adam 은 gradient 만 받아 업데이트. L2 정규화 를 쓰면 보통 로 gradient 에 더하는데, Adam의 적응적 스케일링 이 이 항에도 적용되어 가중치 감쇠 효과가 왜곡 됩니다.
AdamW (Loshchilov & Hutter 2019) 해결책: weight decay 를 update 에 직접 더함:
1–4: Adam 과 동일 (). 5:
가중치 감쇠가 로 나누어지지 않음 → 모든 축에 균일하게 적용.
torch.optim.AdamW 는 AdamW 기본.| 항목 | Adam + L2 | AdamW |
|---|---|---|
| g 에 λw 더함? | 예 | 아니오 |
| update 에 λθ 더함? | 아니오 | 예 |
| λ 가 로 나뉨? | 예 | 아니오 |
함수 adamw_step(theta, grad, m, v, t, lr, b1, b2, eps, wd) 를 완성하세요.
wd = weight decay 계수 .(new_theta, new_m, new_v).| # | 이름 | 검증 |
|---|---|---|
| 1 | wd=0 → Adam 과 동일 | 74번 결과 일치 |
| 2 | grad=0, wd>0 → θ 축소 | |
| 3 | m, v 업데이트는 Adam 과 동일 | |
| 4 | 부호 | grad>0, wd>0 둘 다 θ 감소 |
| 5 | shape 유지 |
코드를 작성하고 Run 을 눌러보세요.