ML

3-2. 편향 보정 (Bias Correction)

마로그래머 2023. 7. 24. 14:18
반응형

Coursera Optimization Algorithm

잘 작동되는 모델을 찾으려고 훈련을 반복해야하는 숙명에 놓여있는 머신러닝.

훈련의 반복이니까 모델을 빠르게 학습시키는 것도 중요하다.

엄청나게 많은 큰 데이터를 훈련하는 것은 엄청 느릴 것인데 그때문에 최적화 알고리즘을 사용하여 효율성을 좋게만들어야한다.



지난 시간에 그 중 하나인 미니배치경사하강법을 알아보다가 더 효율적인 알고리즘을 배우려고 했었는데

그에 앞서서 다음을 알아야한다.

  • Exponentilally weighted average (지수가중평균)
  • Bias Correction (편향 보정)

 

이 포스트에서는 편향 보정에 대해 알아보자.

 

Bias Correction(편향보정)

앞에서 지수가중평균으로 평균을 효율적으로 계산하는 방법을 알아봤는데 편향보정이라고 불리는 기술적인 세부사항으로 평균을 더 정확하게 계산할 수 있다.

앞에서 봤던 지수가중평균법을 실제로 계산해보자.

β는 0.98로 지정했다.

Vt = β*Vt-1 + (1-β)*Θt


V0 = 0
V1 = β*V0 + (1-β)*Θ1
V1 = 0 + 0.02*Θ1

V2 = 0.98*V1 + 0.02*Θ2
V2 = 0.98*(0.02*Θ1) + 0.02*Θ2
V2 = 0.0196*Θ1 + 0.02*Θ2

Θ1 과 Θ2가 양수라고 가정하면 V2는 Θ1 과 Θ2보다 훨씬 작아지게 된다.

시작하는 추정값이 좋지 않아진다. 그래프를 보더라도 앞부분이 뚝 떨어져있다.


이것이 더 나은 값이 될 수 있도록 수정해야한다. 물론 방법은 있다.
특히 추정초기단계를 더 정확하게 보장해주는 방법은 바로바로....

Vt 대신 vt/1-β^t를 사용하는 것이다!

 

현재 알고싶은 t가 2일 때,

t=2 : 1-β^2 = 1-(0.98)² = 0.0396

이 되므로 둘째 날의 온도를 추정한 값은 다음과 같다.

V2 / 0.0396 = 0.0196*Θ1 + 0.02*Θ2 / 0.0396

t가 커질수록 B^t는 0에 가까워질 것이다.

이것은 t가 커질수록 편향보정의 효과가 거의 없어진다는 뜻이다.
그래도 이것으로 초기단계의 학습에서는 더 나은 추정값을 가지게 될 것이다.

 

머신러닝에서는 어떻게 쓰일까?

사실 머신러닝에서 지수가중평균법을 구현하는 경우에 대부분 편향 보정을 거의 사용하지않는다. 지수가중평균법의 초기단계의 추정값이 좀 안좋긴 해도 그 구간만 지나면 괜찮으니까 기다렸다가 편향된 추정이 지나간 후부터 시작해버린다. 그래서 초기단계의 편향이 신경쓰일 때 편향보정을 사용한다.

반응형