본문 바로가기

인공지능

[코스모스 9주차] LOSS

모델의 목표는 손실함수를 최소화 함으로써 실제와 비슷한 결과값을 내는 모델을 만들어 내는 것이다!

회귀는 연속형 수치인 y를 바로 예측해야한다. 

그래서! 회귀에서 자주 사용하는 손실함수는

1. MAE

 

예측 값과 정답 값의 차이에 절댓값을 씌운 후 전부 더해서 개수 N으로 나눠서 평균을 낸 값이다. 이는 그냥 절댓값을 평균 낸것이어서 전체 데이터의 학습된 정도를 파악할 수 있다. 그런데 이제 절대값 때문에 어떤 식으로 오차가 발생했는지, 음수인지 양수인지 판별이 불가능하다. 

0을 기준으로 각각 일차함수가 대칭이라서 이동거리가 일정하기 때문에 최적의 값에 수렴하기 어렵다. 

 

2. MSE

 

예측 값과 실제 값의 차를 제곱하여 개수 N으로 나눠서 평균을 낸 값이다. 제곱 연산으로 인해서 차이가 커질 수록 더 값이 뚜렷해지고, 양수든 음수든 누적 값을 증가시킨다. 하지만 제곱으로 인해 1 미만의 값은 더 작아지고 이상의 값은 더 커진다. 함수가 convex 형태여서 최적 값 수렴에 용이하다. 

 

3. RMSE

 

MSE에서 값을 제곱해서 생기는 왜곡이 줄어들며 오차를 보다 직관적으로 보여주게 된다. 

 

이제 분류에서 손실함수를 보도록 하겠다. 

이는 모델링을 통해서 확률을 통해 y가 어떤 label에 속해있는 애인지를 예측하여 구하는 과정이다. 

 

실제 확률분포를 알지 못하는 상태에서 모델링을 통하여 구한 확률 p를 통하여 y가 0인지 1인지 혹은 여러 레이블 중 하나에 속하는지를 예측하는 것이다. 

이때 엔트로피는 정보이론에서 불확실성을 나타내고, 높다는 것은 정보가 맞고 확률이 낮다는 것을 의미한다. 

 

원래의 cross entropy는 실제 분포인 q를 모르고 예측 모델링을 통해서 구한 분포를 p라고 했을 때 두 확률 분포의 차이를 구하기 위하여 사용된다. 실제 데이터의 확률 분포와 학습된 모델이 계산한 확률 분포의 차이를 구하는데 q와 p가 모두 들어가서 크로스 엔트로피라고 한다. 그리고 KL Divergence는 서로 다른 분포의 차이를 측정하는데 사용하는데, cross entropy의 개념에 대입하게 된다면 두 entropy의 차이가 될 것이다. 이때 실제 데이터의 분포는 고정이 되어있기 때문에 그냥 데이터의 분포를 실제 분포에 맞게 만드는 것이 KL Divergence를 최소화하는 것이라고 할 수 있다.

 

Binary cross-entropy는 이진 분류에 사용되고 Categorical cross-entropy 같이 분류해야 할 클래스가 3개 이상인 경우!이다.