본문 바로가기

Learning/Optimizer

Loss Function

반응형

Loss Function(손실 함수)이란, 모델에서 생성된 값과 실제 데이터의 값이 차이나는 정도를 나타내는 함수입니다. 머신러닝 모델은 이 Loss function 값을 최소화하도록 학습합니다. Neural Network 또한, Backpropagation(역전파)을 이용해서 Loss function의 값을 최소화할 수 있도록 parameter 값을 바꾸는 방법으로 학습합니다.

 

2-1. Linear regression (MSE, Mean Square Error)

 

(1) 정의

 

image

(2) 특징

주로 regression 문제에 사용합니다.

(3) regression에 MSE를 쓰는 이유

 

Classification 과 같은 경우, 맞다/아니다가 판별이 가능하지만, 주식 가격 예측과 같은 수치 판단은 애매한 경우가 많습니다.

예를 들어 Ground Truth(GT) 값이 100,000원이고 모델의 output이 95,000원이라고 합시다. output이 GT와 동일하진 않기 때문에, 이 모델이 얼마나 잘 예측을 했는지 나타낼 기준이 필요합니다. 이 때 실제 값과 예측값의 차이로 오차를 탄단할 수 있습니다.

MSE 값이 작은 바람직한 추정량이란, 불편성과 효율성을 만족하는 값을 의미합니다.

  • 불편성(unbiasedness): 추정량의 평균이 가능한 한 모수의 평균에 근접
  • 효율성(efficiency): 추정량의 분산이 동시에 작아야 함

MSE는 정답셋과의 평균적인 차이 뿐만 아니라 각각의 출력값이 정답과 얼마나 차이가 크게 나는지도 반영한다.

2-2. Cross-Entropy Error (CEE)

 

(1) 정의

 

주어진 확률 변수 X에 대해, 확률 분포 p를 찾아봅시다. 확률 분포 p를 예측한 근사 분포 q를 생각해 봅시다. q의 파라미터들을 update하면서 q를 p에 근사할 수 있습니다. 두 확률 분포의 차이를 측정하는 $KL(p|q)$가 최소가 되는 q를 찾으면 됩니다.

스크린샷 2020-03-08 오후 6 23 01

두번째 항은 확률 분포 p에만 연관이 있으므로 항상 동일합니다. 즉, q가 있는 첫 번째 항을 최소화해야 KL Divergence를 최소화할 수 있습니다. 이 첫 번째 항을 Cross-entropy Error라고 부릅니다.

스크린샷 2020-03-08 오후 6 23 05

  • $p_i$: 실제 확률 분포
  • $q_i$: p를 근사한 분포

(2) 특징

classification(분류문제)에는 ACE(Average cross-entropy)를 사용합니다.

(3) classification에 ACE(Average cross-entropy)를 사용하는 이유

Model X, Y가 있고, class는 A,B,C 3개가 있다고 합시다.

Model X의 output

 

output       label A B C correct?
  0.3 0.3 0.4   0 0 1 Y
  0.3 0.4 0.3   0 1 0 Y
  0.1 0.2 0.7   1 0 0 N

1, 2는 겨우 맞췄고 3은 완전히 틀렸습니다.

Model Y의 output

 

output       label A B C correct?
  0.1 0.2 0.7   0 0 1 Y
  0.1 0.7 0.2   0 1 0 Y
  0.3 0.4 0.3   1 0 0 N

1, 2는 확실히 맞췄으나 3은 아쉽게 틀렸씁니다.

[단순 분류 오차]
* model X : 1/3 = 0.33
* model Y : 1/3 = 0.33
[분류 정확도]
* model X : 2/3 = 0.67
* model Y : 2/3 = 0.67

단순 분류 오차만으로는 두 모델의 성능을 비교할 수 없습니다. 두 모델 모두 틀린 개수는 하나 뿐이기 때문입니다. output 값을 고려하여, 얼마나 많이 틀렸는지 확인할 필요가 있습니다.

cross entropy로 계산할 경우

model X

  • 첫 번째 sample: $-( (ln(0.3)*0) + (ln(0.3)*0) + (ln(0.4)*1) ) = -ln(0.4)$
  • 3개 sample 모두에 대한 계산 및 ACE (Average cross-entropy):  $-(ln(0.4) + ln(0.4) + ln(0.1)) / 3 = 1.38$


model Y

  • 3개 sample 모두에 대한 계산 및 ACE (Average cross-entropy): $-(ln(0.7) + ln(0.7) + ln(0.3)) / 3 = 0.64$

Model X보다 Y가 오차가 더 작습니다. 모델이 얼마나 틀렸는지까지 확인이 가능하므로, 모델 X보다 모델 Y의 성능이 더 좋다는 것을 확인할 수 있습니다.

MSE로 계산할 경우

model X

  • 첫번째 sample : $(0.3 - 0)^2 + (0.3 - 0)^2 + (0.4 - 1)^2 = 0.09 + 0.09 + 0.36 = 0.54$
  • 3개 sample 모두에 대한 계산 및 MSE(Mean squared error): $(0.54 + 0.54 + 1.34) / 3 = 0.81$

model Y

  • $(0.14 + 0.14 + 0.74) / 3 = 0.34$

MSE는 틀린 sample에 대해 더 집중합니다.

 

ACE와 MSE 비교 (activation을 softmax로 했을 경우)

backpropagation 중에 label에 따라 output을 1.0 또는 0.0으로 설정하려고 한다.

MSE를 사용할 경우

  • 가중치 계산에서 기울기 값에 $(output) * (1 - output)$이라는 조정 요소가 포함됩니다다.
  • 계산 된 출력이 0.0 또는 1.0에 가깝거나 가까워짐에 따라 $(output) * (1 - output)$의 값은 점점 작아집니다.
    • ex) output = 0.6이라면 $(output) * (1 - output) = 0.24$이지만 출력이 0.95이면 $(output) * (1 - output) = 0.0475$ 입니다..
  • 그렇게 되면 조정 요소가 점점 작아지면서 가중치 변화도 점점 작아지고 학습 진행이 멈출 수도 있습니다.

ACE를 사용할 경우

  • (output) * (1 - output) 항이 사라집니다.
  • 따라서 가중치 변화는 점점 작아지지 않으므로 학습이 멈추는 일이 발생하지 않습니다.

2-3. Logistic regression (binary cross-entropy)

 

2-4. Hinge Loss

 

SVM 등에서 Maximum-margin classification에 사용하기 위한 Loss function입니다.

2-5. Ranking Loss

 

Reference

 

 

반응형

'Learning > Optimizer' 카테고리의 다른 글

Initializer  (0) 2020.04.12
Optimizer  (0) 2020.04.12