목표

- MSE Loss, MAE Loss, Huber Loss 함수를 이해한다.

- 강화학습 관점에서 각 Loss 함수의 장단점을 이해한다. 

 

MSE(Mean Square Error) Loss 함수

- 평균 제곱 오차를 의미한다.

- 아래 그림은 강화학습에서 MSE를 적용했을때  TD error 값을 어떻게 처리했는지 알 수 있다.

- MSE Loss 함수 장점

    - Loss 값이 0에 가까울 수록 경사가 줄어드면서 backpropagation 시 이동시키는 거리가 작아짐으로 수렴을 도와준다.(최적화에 용이) 

- 강화학습에서 MSE Loss 함수의 단점

    - TD error 값의 절대값이 클 수록 Loss 값이 기하급수적으로 커진다. -> 모든 TD error 범위의 값에 대해서 평등한 Loss 계산이 안된다는 뜻이다. (모든 error에 대한 평등한 Loss 값 x)

MAE(Mean Absolute Error)  Loss 함수

- 평균 절대값 오차를 의미한다.

- 아래 그림은 강화학습에서 MAE를 적용했을때  TD error 값을 어떻게 처리했는지 알 수 있다.

- MAE Loss 함수 장점

   - 모든 error 값에 대해서 평등한 Loss 값 제공. (모든 error 값에 대해 공평함)

- 지도학습에서 MAE Loss 함수의 단점

   -  backpropagation시 수렴이 힘듬 (최적화가 힘듬)

Huber Loss 함수

- MSE Loss 함수의 장점과 MAE Loss 함수의 장점을 섞었다.

- 최적화에 용이 + 모든 error 값에 대해서 공평

- delta 라는 임계값을 두고 error 값을 delta 값과 비교하여 MSE Loss 함수와 MAE Loss 함수를 조건에 따라 쓰는 방법이다.

- delta 값이 0 이면 MAE Loss 함수만 쓰고, delta 값이 무한대이면 MSE Loss 함수만 쓰게 된다.

- 보통 delta 값은 1로 두고 사용한다.

 

정리

- 강화학습에서는 Huber Loss가 좋고 delta 값을 1로 두고 사용한다.

- MSE Loss 함수는 모든 error 값에 대해 공평하지 않다.

- MAE Loss 함수는 최적화 기법에 사용하기에는 힘들다.

- Huber Loss 함수는 delta 임계값을 두고 MSE Loss 함수와 MAE Loss 함수를 조건에 따라 바꿔가며 사용한다.

- Pytorch 모듈에는 이미 Huber Loss 함수가 구현되어 있다. [LINK]

+ Recent posts