← 문제 목록/AMSGrad (수렴 보장 변형) [medium]
문제 해설

AMSGrad (수렴 보장 변형) [medium]

최적화 · medium

preview

AMSGrad [medium]

Adam 의 이론적 수렴 문제: 특정 sparse gradient 시나리오에서 v^\hat{v} 가 감소 해서 step size 가 커지고 발산 가능. Reddi et al. (2018) 은 "Adam 은 수렴 못하는 케이스" 반례 를 제시 + AMSGrad 수정안 제시.

AMSGrad 수식

m_t &= \beta_1 m_{t-1} + (1 - \beta_1) g_t \\ v_t &= \beta_2 v_{t-1} + (1 - \beta_2) g_t^2 \\ \hat v_t &= \max(\hat v_{t-1}, v_t) \quad \text{← max 를 유지!} \\ w_t &= w_{t-1} - \eta \, \frac{m_t}{\sqrt{\hat v_t} + \epsilon} \end{aligned}$$ ## 핵심 차이 - **Adam**: $\hat{v}_t = v_t$ (현재 값, 감소 가능). - **AMSGrad**: $\hat{v}_t$ 는 **역사상 최대값** — **monotonically non-decreasing**. 이 제약이 step size 를 단조 감소시켜 수렴 보장. ## 실전 - 이론적 개선이지만 실제 큰 차이 ≒ 없음 (대부분 작업에서 Adam 이 충분). - 특정 비정상적 케이스에서만 AMSGrad > Adam. - PyTorch `torch.optim.Adam(amsgrad=True)` 로 간단 전환. ## 과제 함수 `amsgrad_step(w, g, m, v, v_hat, t, lr, beta1, beta2, eps)` 를 완성하세요. - 상태: `m`, `v`, `v_hat` (세 번째 추가!). - 반환: `(w_new, m_new, v_new, v_hat_new)`. - `v_hat_new = max(v_hat, v_new)` (원소별 max). - **Bias correction 없음** (원 AMSGrad 논문 형식). - $w_{new} = w - \eta \cdot m_{new} / (\sqrt{\hat v_{new}} + \epsilon)$. ## 테스트 케이스 | # | 이름 | 검증 | |---|---|---| | 1 | 반환 4-tuple (w, m, v, v_hat) | | | 2 | m, v 업데이트 공식 | | | 3 | v_hat 단조 증가: `v_hat_new ≥ v_hat_old` | 각 원소 | | 4 | v 감소해도 v_hat 유지 | | | 5 | Adam 과 다름 (v 감소 시) | | | 6 | shape 유지 | | | 7 | torch.optim.Adam(amsgrad=True) 일치 | |
코드 작성
Loading...
실행 결과

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