Deep Learning/CS231N

[CS231N] Loss function & Optimization (1)

언킴 2021. 7. 5. 14:03
반응형

image를 분류하는 과정에서 여러가지 문제점이 발생할 수 있다.

1. Camera pose : 카메라의 위치에 따라서 image의 값들이 달라질 수 있다.

2. illumination : 조명에 의해 색이 바뀌는 문제가 발생할 수 있다.

3. Deformation : 원래 형상이 아닌 다른 형상으로 image가 생성될 수 있다.

4. Occlusion : 일부가 없어져 보일 수 있다.

5. Background clutter : 배경과 분류하고자 하는 image가 비슷하여 구분하기가 어려울 수 있다.

6. intraclass variation : 같은 종류의 image라도 색상, 모양 등이 다름에서 문제가 발생할 수 있다.

 

이번 파트에서는 우리가 작성한 score function 이 얼마나 데이터를 잘 평가하는가에 대한 loss function 을 정의하고 그 loss function의 값이 낮게 나오도록 최적화 하는 과정을 다룰 예정이다. ( Multiclass SVM loss, Softmax loss )

 

Multiclass SVM loss

xi 는 image  yi 는 label 이 된다. score vector : s = f(xi,W)

Li=Σjyimax(0,sjsyi+1)

 

여기서 j는 정답이 아닌 case에 대해 하나씩 반복하게 된다. sj는 오답일 때의 score이고 syi는 정답일 때의 score이고 +1은 svm의 margin을 나타낸다. 마지막으로 0과 비교하여 큰 값을 해당 class의 loss로 정의한다. margin보다 작은 score변화는 loss에 영향을 주지 않는다. 각 정답이 아닌 class마다 평가하면서 얼마나 정답을 못맞췄는지 계산하여 전체의 학습 데이터의 수 만큼 나누어 평균을 취한다. 

 

L=1NΣi=1NLi

 

CS231n에는 위와 같은 5가지 질문이 있습니다.

Q1. 만약 yi 까지 포함하여 계산하면 결과가 어떻게 나오는가?

A1. yi를 넣는다고 하더라도 Li=max(0,syisyi+1) 로 1씩 추가가 된다.

 

Q2. sum이 아니라 mean 을 사용하면 어떻게 되나 ?

A2. 이 부분은 자유롭게 결정하면 되는 부분이다. 큰 상관 X

 

Q3. loss 부분에 squared를 한다면?

A3. 특정 데이터에서는 squared로 한 값이 더 좋은 값이 나올 수도 있다. 

 

Q4 : loss가 같는 최댓값과 최솟값은?

A4 : 정답에 가까울수록 loss는 0에 가까워지고, 정답과 멀어질수록 loss는 커진다. 

 

Q5 : w가 아주작은 값을 가지고 있을 때, score ~=0가 되는데 이 경우 loss값은 어떻게 되는가?

A5 : loss 는 각각 class에 대해 1값을 가지게 된다. 하지만 syi는 제외하기 때문에 1n1이 되게 된다. 

 

 

loss function 은 다음과 같이 정의할 수 있다.

def Loss_vec(x, y, w):
    delta = 1.0 # margin
    score = np.dot(w, x)
    loss = np.maximum (0, score - score[y] + delta) # score = 오답 / score[y] = 정답인 경우의 loss
    loss[y] = 0
    loss_i = np.sum(loss)
    return loss_i

loss function 을 구했을 때 loss 가 0이 되는 값을 가지게 할 수 있는 w가 유일한가? 그렇다라고 할 수 없다. 

s=Wxs=2Wx 두배 증가시킨다 하더라도 loss값은 모두 0이 되는 것을 알 수 있다.

이렇기 때문에 Weight Regularization 이 필요하다.

L=1NΣi=1NΣjyimax(0,f(xi;W)jf(xi;W)yi+1)+λR(W) 

λ : Regularization Strength ( Hyperparameter )  

x=[1,1,1,1], w1=[1,0,0,0], w2=[0.25,0.25,0.25,0.25] 일때 wiTx가 모두 1로 나올 때 w2 의 가중치가 더 좋은 평가가 된다. 그러한 현상 때문에 L2 Regularization 이 출현하게 되었다.