← 문제 목록/Bias-Corrected EWMA (Adam 스타일) [medium]
문제 해설

Bias-Corrected EWMA (Adam 스타일) [medium]

최적화 · medium

preview

Bias-Corrected EWMA [medium]

v1 EWMAy0=x0y_0 = x_0 초기화. Adam/RMSprop 옵티마이저는 y0=0y_0 = 0 에서 시작 → 초기 steps 에서 y 가 0 에 편향됨 (under-estimate).

Adam 의 편향 보정

먼저 편향된 1차 moment:

mt=(1α)mt1+αxt,m0=0m_t = (1 - \alpha) \cdot m_{t-1} + \alpha \cdot x_t, \quad m_0 = 0

그리고 보정:

m^t=mt1(1α)t\hat{m}_t = \frac{m_t}{1 - (1 - \alpha)^t}

  • tt 작을 때: (1α)t1(1-\alpha)^t \approx 1 → 분모 작음 → 보정 확대.
  • tt 큼: (1α)t0(1-\alpha)^t \to 0 → 분모 1\to 1 → 보정 없음.

수학적으로 m^t\hat{m}_tE[xt]\mathbb{E}[x_t]unbiased estimator.

v1 과의 차이

v1 EWMAv3 bias-corrected
초기화y0=x0y_0 = x_0m0=0m_0 = 0
첫 step 값x0x_0x0x_0 (같지만 경로 다름)
꼬리동일동일

중간 step 이 다름 → Adam 의 학습 초기 warmup 안정성 기여.

과제

함수 bias_corrected_ewma(x, alpha) 를 완성하세요.

  • 반환: shape (N,) m^t\hat{m}_t 수열.
  • 초기화 m0=0m_0 = 0, 그 다음 mt=(1α)mt1+αxtm_t = (1-\alpha) m_{t-1} + \alpha x_t (t=1..N).
  • 보정: m^t=mt/(1(1α)t)\hat{m}_t = m_t / (1 - (1-\alpha)^t).
  • tt1-indexed (첫 샘플이 t=1t=1).

테스트 케이스

#이름검증
1shape 유지
2첫 step: m^1=x0\hat{m}_1 = x_0
3상수 입력 → m^t=c\hat{m}_t = c 모두수렴
4α=1\alpha = 1m^t=xt\hat{m}_t = x_t 그대로
5편향 보정 효과 검증 (v1 EWMA 대비 더 빠른 수렴)
6수치 예제 (손계산)
7long-run: m^t\hat{m}_t \to v1 EWMA (꼬리 수렴)
코드 작성
Loading...
실행 결과

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