← 문제 목록/Bias-corrected EWMA (Adam)
문제 해설

Bias-corrected EWMA (Adam)

최적화 · easy

preview

Bias-corrected EWMA (Adam 스타일)

70번 EWMA 는 초기값 y0=x0y_0 = x_0 로 시작했지만, Adam 옵티마이저y0=0y_0 = 0 으로 시작하기 때문에 초기 스텝에서 값이 0 쪽으로 편향 됩니다:

yt=βyt1+(1β)xt,y0=0y_t = \beta \cdot y_{t-1} + (1 - \beta) \cdot x_t, \quad y_0 = 0

t=1t=1: y1=(1β)x1y_1 = (1-\beta) x_1x1x_1 에 비해 작음. 지수 가중 합이 k=1t(1β)βtk=1βt\sum_{k=1}^t (1-\beta)\beta^{t-k} = 1 - \beta^t 뿐이기 때문.

편향 보정

y^t=yt1βt\hat y_t = \frac{y_t}{1 - \beta^t}

  • tt 가 작을 때 분모 <1< 1y^t\hat y_t 를 키워줌.
  • tt \to \infty: 분모 1\to 1 → 보정 없음.

이게 Adam의 m^t=mt/(1β1t)\hat m_t = m_t / (1 - \beta_1^t)v^t=vt/(1β2t)\hat v_t = v_t / (1 - \beta_2^t) 수식의 정체.

과제

함수 ewma-v1_bias_corrected(x, beta) 를 완성하세요.

  • 1D 배열 x, 스칼라 β(0,1)\beta \in (0, 1).
  • t=1Tt = 1 \dots T 에 대해:
    • yt=βyt1+(1β)xty_t = \beta \, y_{t-1} + (1-\beta) \, x_t (초기 y0=0y_0 = 0)
    • y^t=yt/(1βt)\hat y_t = y_t / (1 - \beta^t)
  • 반환: 길이 TTy^\hat y 배열.

테스트 케이스

#이름검증
1첫 값 = x[0]bias 보정의 핵심
2상수 신호 → 상수 출력정상상태에서 bias 없음
3β=0 → x 그대로smoothing 없음
4t→∞ 에서 일반 EWMA 와 수렴
5shape 유지
코드 작성
Loading...
실행 결과

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