최적화·연습 문제

Bias-Corrected EWMA (Adam 스타일)

문제 설명PROBLEM

preview

Bias-Corrected EWMA (Adam 스타일)

EWMA(70번)y0=x0y_0 = x_0 로 시작해 잘 동작합니다. 하지만 Adam 옵티마이저는 관례상 y0=0y_0 = 0 에서 출발 — 초반에 0 쪽으로 편향됩니다. Adam은 매 스텝마다 편향 보정을 적용:

업데이트 규칙

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-based step number)

초기 스텝에서 mtm_t 가 작게 나오는 걸 정확히 상쇄합니다 — 충분한 시간 후엔 1(1α)t11 - (1-\alpha)^t \to 1 이므로 보정 계수가 1로 수렴.

과제

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

  • 초기값 m = 0 (x[0] 아님!).
  • t = 1, 2, ... 에서 업데이트 후 보정값을 출력에 저장.
  • 반환: (N,) — 보정된 m̂_t 들.

테스트 케이스

#이름검증
1상수 입력상수 x 에 대해 m̂_t → x (장기)
2α=1매 스텝 m̂ = x (보정계수 = 1)
3shape 유지
4알려진 값손계산
5초반 편향 없음m̂_1 ≈ x_1 (편향 제거 확인)
개념 노트와 실수 포인트

최적화 (옵티마이저)

  • GD/SGD/모멘텀/Adam. ⚠️ 학습률: 너무 크면 발산, 너무 작으면 느림.
  • 파라미터 -= lr * gradient. 모멘텀/Adam 은 과거 기울기 활용.