※ 본 내용은 stanford에서 제공하는 cs231n 강의, 강의자료를 바탕으로 작성하였습니다.

 

lecture3 에서는 loss function과 optimization(train) 에 대해 다루고 있다.

 

<Loss Function>

Loss Function은 현재 모델이 얼마나 좋은지 알려준다. (= 얼마나 오류가 있는지)

 

Loss Function

앞서 다룬 Linear Classifer의 예측 결과가 위와 같다고 할 때, 현재 모델의 성능은 우측 하단의 Loss Function과 같이 나타낼 수 있다. 

 

이번 강의에서는 SVM, Softmax loss function에 대해 다루고 있다.

 

- SVM loss function

SVM Loss Function

$ s_{y_i}$는 정답 class의 score를 의미한다. 즉, (정답 class의 score) - (정답이 아닌 class의 score + 1)의 합이 Loss 가 된다.

여기서 '+1'은 임의의 수로, 다른 값이 사용될 수 있다. 정답 class의 score가 다른 class보다 넉넉하게 클 때 penalty가 없는 원리이다

 

SVM Loss 계산

실제 계산 과정을 확인해볼 수 있다. 

 

● Regularization

SVM Loss를 0으로 만드는 weight를 찾았을 때, 그러한 W는 유일하지 않다. 

그러나 우리는 모델이 간단하기를 (Weight가 작기를) 바라기 때문에 Loss function에 regularization 항인 $ \lambda R(W)$ 을 더해준다.

W가 커지는 것에도 penalty를 준다고 이해하면 된다. ( $ \lambda $는 regularization strength로 hyperparmeter이다.)

 

Regularization에도 L1과 L2 regularization이 존재한다. 

 

어떠한 regularization을 사용하는지에 따라 weight가 다르게 학습될 수 있다.

예를 들어,

$ x = [1, 1, 1, 1]$, 

$ w1 = [1, 0, 0, 0]$ 과 $ w2 = [0.25, 0.25, 0.25, 0.25]$ 두 개의 weight가 존재한다고 하자.

$ w^T_1x = w^T_2_x = 1$이지만 어떠한 regulaization을 사용하는지에 따라 선호되는 weight가 다르다. 

L2 regularization을 사용한다면 w2가 선호될 것이고, L1의 경우 두 weight 중 명확히 선호되는 값은 없을 것이다. 

 

그 외에도 여러 regularization 기법은 존재하고 이후에 계속하여 다룰 것이다. 

 

<Softmax Classifier>

 

Softmax Classifier

Softmax loss의 계산은 위와 같다. 먼저 모델에서 나온 score에 대해 exponential을 취해주고,

정답 (class의 score)/ (전체 score의 합) 에 -log를 취해준 값이 loss이다.

(이때 log를 취하기 전 값은 확률의 의미를 갖는다.)

 

-log 그래프는 0에 가까울 수록 무한대로 발산하고, 1에 가까울 수록 0에 수렴한다.

즉, 정답 class를 1에 가깝게 예측할수록 penalty를 적게 준다는 의미이다.

 

Softmax 와 SVM 차이

Softmax와 SVM의 차이에 대해 정리하면, 여러 차이가 있겠지만 대표적으로 다음과 같은 차이가 있다.

Softmax는 이미 맞게 예측하고 있다면 score가 약간 변하는 정도로는 loss가 변하지 않지만,

SVM은 조금이라도 차이가 발생하면 loss도 변한다.

 

<Optimization>

Weight를 optimzation하는 과정, 즉 train 과정은 Gradient Descent 기법을 이용한다. 

$ W := W - \alpha \frac{dL}{dW}$

 

그렇다면 어떻게 미분을 계산할까.

 

- Numerical Method

미분의 개념을 이용해서 미분을 수행하는 방법이다. 

 

silly한 방법이라고 소개하고 있다. 기본적으로 계산이 많이 필요하다.

 

- Analytic Method

Loss function은 W의 함수라는 점을 이용하여, 일반적인 미분식을 이용하는 방법이다.

 

 

앞서 말한 것처럼 Numerical method는 잘 사용하지 않고, Analytic method를 사용한다.

그러나 검증 차원에서 Numerical meethod를 계산해보는 것은 권장된다. (gradient check 라고 한다.)

 

- Stochastic Gradient Descent(SGD)

실제로 머신러닝에서는 매우 큰 데이터를 다루게 되고, 전체 데이터의 loss를 계산하는 것은 expensive하다.

따라서 minbatch를 이용하여 loss를 계산하고 학습하는 SGD가 자주 사용된다. 

 

- Image Feature

Image로부터 feature(색의 분포, 모서리 추출 등)를 추출하는 과정을 거친 후, 해당 feature에 대해서 학습을 진행하는 방식도 존재한다.

반면 이번 강의에서 다루려는 CNN 같은 경우는 데이터 그 자체로 학습을 하고, feature도 학습 중에 찾아낸다. 

'Computer Vision > cs231n' 카테고리의 다른 글

[Lec 4] Backpropagation and Neural Network  (0) 2021.12.30
[Assignment1 - Q3] Softmax  (0) 2021.12.30
[Assignment1 - Q2] SVM  (0) 2021.12.30
[Assignment 1 - Q1] KNN  (0) 2021.12.29
[Lec2] KNN, Linear Classifier  (0) 2021.12.29

+ Recent posts