NLP/AI/Statistics

[cs231n] Note 2: Linear Classification (Loss function) 본문

Stanford Lectures : AI/CS231n

[cs231n] Note 2: Linear Classification (Loss function)

Danbi Cho 2020. 12. 9. 15:47

이전 글에서 이미지 픽셀 값으로부터 각 라벨 별 score를 나타내는 방법에 대하여 설명하였으며, 

 

$f = Wx + b$의 공식에서 $W$와 $b$는 hyperparameter로써 정의가 가능하다고 하였다. 

 

특히 초기화된 $W$는 모델 내에서 업데이트를 통해 최적의 score를 나타내는 $W$를 구하도록 한다.

 

즉, 예측 값과 실제 값의 차이인 Loss를 최소화하는 $W$를 찾는 것이 목적이 된다.

 

이러한 loss를 구하는 함수를 loss function (cost function, objective 라고도 한다. - 손실함수, 목적함수)라고 한다. 

 

> Multiclass Support Vector Machine loss (SVM loss)

 

Loss function은 여러가지 방식으로 정의되는데, 크게 SVM에서 주로 사용되는 hinge loss와 softmax를 통한 분류기에서 주로 사용하는 cross-entropy 방법이 있다. 

 

그중 hinge loss는 Multiclass Support Vector Machine loss라고도 한다. 

 

#. SVM은 support vector와 decision boundary 간의 차이인 margin $\Delta$을 최대화하는 것을 목적으로 하는 대표적인 분류모델이다. 

 

Hinge loss는 $i$번째 이미지 데이터 $x_{i}$와 그에 대한 라벨 $y_{i}$이 있을 때, 

 

score function을 통해 $s_{j} = f(x_{i}, W)_{j}$와 같이 각 라벨에 대한 예측 값을 구하고 이를 활용하여 아래와 같이 loss를 계산한다.  (이 때 $j$는 $j$번째 라벨을 의미한다.)

 

$$L_{i} = \sum_{j != y_{i}} max(0, s_{j}-s_{y_{i}} + \Delta$$

 

즉, $j$번째 라벨의 score인 $s_{j}$와 실제 라벨의 예측 score인 $s_{y_{i}}$의 차이에서 $\Delta$를 뺀 값과 0 중의 큰 값을 loss로 정의한다. 

 

예를 들어, [강아지, 고양이, 곰]의 라벨 값이 있을 때 실제 '고양이' 이미지인 데이터에 대하여 각각의 score = [13, -7, 11], $\Delta$를 10이라고 가정한다. 

 

이 때 hinge loss는 다음과 같이 계산된다. 

 

$$L = max(0, -7-13+10) + max(0, 11-13+10)$$

 

위의 식은 쉽게 말해 (강아지 score - 고양이 score + $\Delta$) + (곰 score - 고양이 score + $\Delta$)이다. 

 

loss를 계산하는 과정에서 주의해야할 점은, (고양이 score - 고양이 score + $\Delta$)와 같이 실제 라벨의 score에 대한 loss는 수식에 포함하지 않는다는 것이다. 

 

이는 자신의 값을 빼고 나면 해당 loss값은 $max(0, \Delta)$가 되는데, 이는 무의미한 loss를 취하여 loss가 오히려 증가시키는 문제를 가져온다. 

 

위의 식을 score function과 합하여 다음과 같이 정의할 수 있다. 

 

$$L_{i} = \sum_{j != y_{i}} max(0, w_{j}^{T}x_{i} - w_{y_{i}}^{T}w_{i} + \Delta)$$

 

이러한 hinge loss에서 사용되는 margin $\Delta$는 모델이 잘못 예측하는 경우에 대하여 약간의 오차는 허용한다는 의미로써 사용된다. 

 

즉, 완전히 적합해야 loss가 0으로써 최적의 모델이 될 수 있지만 $\Delta$만큼의 오차는 허용해준다는 것이다. 

대부분의 SVM 연구에서는 $\Delta$를 1로 정의하지만 이 역시 hyperparameter이기 때문에 조정이 가능하다.

 

 

> Regularization

 

모델에 적합한 $W$를 찾다보면 학습 데이터에 너무 최적화된 모델의 가중치 값이 생성될 수 있다. 

 

하지만 최적의 $W$가 유일한 값이라고 할 수는 없다. 

 

loss가 0이라는 가정하에, 최적의 가중치 $W$에 특정 배수를 곱한 $\lambda W$ 또한 loss는 0으로 나타난다. 

 

이처럼 최적의 loss (=0)을 나타내는 $W$는 유일하지 않다.

 

이러한 모호성을 완화시키기 위해 $W$를 정규화시키는 작업이 수행된다. 

 

이를 regularization penalty $R(W)$라고 하며, 기존의 loss function에 특정 regularization 항을 추가하여 계산된다.

 

$$L = \frac{1}{N}\sum_{i} L_{i} + \lambda R(W)$$

 

regularization penalty로 L1, L2 norm을 주로 사용하는데, 그 중에서도 많은 연구에서는 L2 norm을 사용하는 사례가 대표적이다. 

 

$$R_{L2}(W) = \sum_{k} \sum_{l}W_{k,l}^{2}$$

$$R_{L2}(W) = \sum_{k} \sum_{l}|W_{k,l}|$$

 

위의 loss 식에 L2 norm 수식을 적용하면 아래와 같다.

$$L = \frac{1}{N}\sum_{i}\sum_{j!=y_{i}} [max(0, f(x_{i};W)_{j} - f(x_{i};W)_{y_{i}} + \Delta)] + \lambda \sum_{k}\sum_{l} W_{k,l}^{2}$$

 

#. $N$은 학습 데이터의 수이다.

#. regularization 항에서의 $\lambda$는 hyperparameter이며 $\lambda$를 크게 하면 할수록 페널티를 많이 준다는 의미이다. 다만, 어떠한 값이 가장 최적의 값인지에 대한 정답은 없으며 $\lambda$ 값을 너무 크게 줄 경우 underfitting되는 문제가 발생할 우려가 있다. 

 

reguralization penalty는 모델의 과적합(overfitting) 문제에도 효과적이다. 

 

 

> Softmax Classifier

 

이제 softmax classifier에서의 loss function에 대하여 설명하고자 한다. 

 

softmax classifier에서는 svm classifier와 다른 loss function을 사용하는데, 이를 cross-entropy loss 라고 한다. 

 

softmax classifier는 확률값을 기반으로 loss를 평가하기 때문에 svm classifier보다 직관적인 특성이 있다. 

 

softmax classifier에서는 정규화되지 않은 log 확률로 각 class 별 score에 대한 loss를 표현한다.

 

$$L = -log(\frac{\exp^{f_{y_{i}}}}{\sum_{j} \exp^{f_{j}}}$$

 

#. 이진 분류 문제에서 negative log likelihood를 loss function으로 사용하는 것을 cross-entropy라고 할 수 있다. 

 

이 때 $f_{j}(z) = \frac{\exp^{z_{j}}}{\sum_{k} \exp^{z_{k}}}$는 softmax function이다. 

 

위의 식을 정보이론 관점에서 보면 KL-Divergence와 함께 아래와 같이 표현된다.

 

$$H(p, q) = H(p) + D_{KL}(p||q)$$

$$H(p, q) = -\sum_{x} p(x)log q(x)$$

 

#. $p$ = true distribution, $q$ = estimated distribution

#. KL-Divergence에 대한 개념은 [참고] KL-Divergence를 통해 공부하면 좋을 것 같다.

 

 

[참고] KL-Divergence hyunw.kim/blog/2017/10/27/KL_divergence.html

 

초보를 위한 정보이론 안내서 - KL divergence 쉽게 보기

사실 KL divergence는 전혀 낯선 개념이 아니라 우리가 알고 있는 내용에 이미 들어있는 개념입니다. 두 확률분포 간의 차이를 나타내는 개념인 KL divergence가 어디서 나온 것인지 먼저 파악하고, 이

hyunw.kim

참고) cs231n.github.io/linear-classify/#loss-function

 

CS231n Convolutional Neural Networks for Visual Recognition

Table of Contents: Linear Classification In the last section we introduced the problem of Image Classification, which is the task of assigning a single label to an image from a fixed set of categories. Morever, we described the k-Nearest Neighbor (kNN) cla

cs231n.github.io

 

Comments