
Bias-Corrected EWMA [medium]
v1 EWMA 은 y0=x0 초기화. Adam/RMSprop 옵티마이저는 y0=0 에서 시작 → 초기 steps 에서 y 가 0 에 편향됨 (under-estimate).
Adam 의 편향 보정
먼저 편향된 1차 moment:
mt=(1−α)⋅mt−1+α⋅xt,m0=0
그리고 보정:
m^t=1−(1−α)tmt
- t 작을 때: (1−α)t≈1 → 분모 작음 → 보정 확대.
- t 큼: (1−α)t→0 → 분모 →1 → 보정 없음.
수학적으로 m^t 는 E[xt] 의 unbiased estimator.
v1 과의 차이
| v1 EWMA | v3 bias-corrected |
|---|
| 초기화 | y0=x0 | m0=0 |
| 첫 step 값 | x0 | x0 (같지만 경로 다름) |
| 꼬리 | 동일 | 동일 |
중간 step 이 다름 → Adam 의 학습 초기 warmup 안정성 기여.
과제
함수 bias_corrected_ewma(x, alpha) 를 완성하세요.
- 반환: shape
(N,) m^t 수열.
- 초기화 m0=0, 그 다음 mt=(1−α)mt−1+αxt (t=1..N).
- 보정: m^t=mt/(1−(1−α)t).
- t 는 1-indexed (첫 샘플이 t=1).
테스트 케이스
| # | 이름 | 검증 |
|---|
| 1 | shape 유지 | |
| 2 | 첫 step: m^1=x0 | |
| 3 | 상수 입력 → m^t=c 모두 | 수렴 |
| 4 | α=1 → m^t=xt 그대로 | |
| 5 | 편향 보정 효과 검증 (v1 EWMA 대비 더 빠른 수렴) | |
| 6 | 수치 예제 (손계산) | |
| 7 | long-run: m^t→ v1 EWMA (꼬리 수렴) | |