
TODO
1. 훈련 데이터의 score에 대해 불만족하는 정도를 정량화하는 loss function을 정의한다.
2. loss function을 최소화하는 파라미터들을 효율적으로 찾는 과정 (optimization)
- Loss Function

1. SVM을 활용한 Hinge loss

고양이에 대한 Hinge loss 값을 구해보면
max(0, 5.1-3.2+1) + max(0, -1.7-3.2+1) = 2.9+0 = 2.9 가 된다.


이제 loss값들을 더해 총클래스의 수로 나눠주면 (2.9+0+10.9)/3 = 4.6을 도출해낼 수 있다.
Q: what if the sum was instead over all classes? (including j = y_i)
고양이 클래스를 예시로 들면
max(0, 5.1-3.2+1) + max(0, -1.7-3.2+1) + max(0, 3.2-3.2+1) = 2.9+1+0 = 3.9
-> loss값이 1 늘어나게 된다. -> 평균 loss값도 1 늘어나게 된다.
Q2: what if we used a mean instead of a sum here?
큰 의미는 없을 것..
Q3: what if we used?

non-linear 한 방식이므로 차이가 존재..
Q4: what is the min/max possible loss?
최저값은 0이 된다. 최댓값은 무한대
Q5: usually at initialization W are small numbers, so all s ~= 0. What is the loss?
max(0, 0-0+1) + max(0, 0-0+1) ~= 2
loss는 2가 될 것 이다. 일반화를 하면 class-1 값이 초기의 loss 값이 될 것이다.
이를 통해 초기의 학습이 잘 진행되고 있는지 확인할 수 있다. (sanity check)


다음과 같은 loss에서 사실 bug가 존재한다. loss 0을 만족하는 W를 찾았다고 하였을 때 W는 유일하지 않다.

유일한(unique)한 Weight값을 결정해주기 위해서 regularization이라는 개념을 도입한다.

A way of trading off training loss and generalization loss on test set
Data Loss = > 학습용 데이터들의 최적화 담당
Regularization loss => 테스트 데이터들의 일반화 담당
=> Data에도 가장 fit 하고 가장 최적화(작은) W값을 추출하게 됨.
일반적으로 사용되는 Regularization 방법

다음과 같이 결과가 1로 같지만, L2 Regularization은 w_2를 선호하게 된다.(Weight를 최대한 Spread out)
-> diffuse over everything

2. Softmax를 활용한 Cross entropy loss

계산을 따라가며 확인해보면

Q: What is the min/max possible loss L_i?
확률의 범위 (0~1), -log(0) = 무한대, -log(1) = 0 이기 때문에 (0~무한대)의 범위를 가진다.
Q5: usually at initialization W are small numbers, so all s ~= 0. What is the loss?
e^0 = 1이 되고, normalize 하면 0.33이 되면 -log(0.33)이 된다.


Q: Suppose I take a datapoint and I jiggle a bit (changing its score slightly). What happens to the loss in both cases?
A : svm에는 +1 (safety margin)이 있어 robustness를 만족하게 된다. 따라서 loss가 동일하지만, softmax에서는 모든 수들을 고려하여 loss를 만들기 때문에 변화하게 된다.
정리

- Optimization
strategy #1 : Random search
정확도 15.5%... 최악이다.,
strategy #2: Follow the slope

Numerical gradient 계산 과정

장점 : 코드로 작성하기에는 쉽다.
단점 : 근사치를 가지게 된다. 평가 시간이 매우 길다.
사실 loss는 W의 함수이기 때문에 미분만 구하면 쉽게 구할 수 있다. => Analytic gradient

장점 : 정확하고 빠르다.
단점 : 코드로 작성하면 에러가 날 가능성이 있다.
실제 사용할 때는 Analytic gradient를 사용하고 체크할 때에만 numerical gradient를 사용하면 된다. 이를 gradient check라고 한다.
- Gradient Descent ( Full-batch Gradient Descent)


- Mini-batch Gradient Descent


mini-batch Gradient Descent의 대표적인 예로는 stochastic gradient descent가 있다.
파라미터를 업데이트하는 방식으로는 Gradient Descent만 있는 것이 아니라
momentum, Adagrad, RMSProp, Adam,... 등이 있다.
- Aside : Image Features
전통적인 방법 : 이미지 -> 특징 추출 -> linear classifer 적용
특징 추출 방법
1. color (Hue) Histogram
2. HOG/SIFT features
8x8 픽셀로 구성되어 있는 구역 내에 edge의 방향을 특징으로 추출
3. Bag of Words
딥러닝 접근 방법 : 특징 추출을 하지 X, 이미지 자체를 모델에 넣어 결과를 반환해줌
'컴퓨터비전' 카테고리의 다른 글
[CS231n 2016] 7강 Convolutional Neural Network (0) | 2022.07.11 |
---|---|
[CS231n 2016] 6강 Training NN part 2 (0) | 2022.07.05 |
[CS231n 2016] 5강 Training NN part 1 (0) | 2022.07.04 |
[CS231n 2016] 4강 Backpropagation and NN part 1 (0) | 2022.07.01 |
[CS231n 2016] 2강 Image classification pipeline (0) | 2022.06.28 |