study
CS231n 3강 Loss Functions and Optimization 본문
손실 함수
학습을 통해 얻은 데이터의 추정치가 실제 데이터와 얼마나 차이 나는지 평가하는 지표로 쓰인다. 이 값이 크면 클수록 많이 틀렸다는 의미고, 이 값이 0 이라는 것은 '무손실' 즉 완벽하게 추정할 수 있다는 의미가 된다. 해당 강의에서는 SVM loss, Crosentcross entropy 두 가지 손실함수를 소개한다.
Hinge loss(SVM loss)
: Score을 구하는 함수로 식은 사진과 같다( j와 yi가 같다면 0으로 처리해서 계산을 한다)
Sj : 잘못된 lable의 score Syi : 제대로 된 lable score 1 : safety margin
Loss가 0이 나오는 W의 값이 한개가 아니다
그러므로 학습시 Weight 값이 크게 학습되서 과적합의 문제가 발생할 수 있다
이를 해결하기 위해 L2 Regularization을 사용한다
X = [1,1,1,1] 일 때
W1 = [1, 0, 0, 0]
W2 = [0.25, 0.25 0.25, 0.25]
라고 한다면 Data loss를 구하면
W1 Data loss = 1 W2 Data loss = 1
그렇다면 Regularization은 어떤 Weight를 더 선호할까?
바로 W2이다 왜냐하면 모든 input feature를 고려하기 때문이다
Cross entropy
: Softmax를 거쳐 확률 분포를 얻을 수 있고, 바로 해당 클래스일 확률이 되는 것이다(0~무한대의 값을 가진다)
Hinge loss(SVM)와 Cross entropy loss 비교
SVM은 정답 스코어와, 정답이 아닌 스코어 간의 마진을 신경썼다
반면에 Softmax는 확률을 구해서 정답클래스(-log)을 신경을 쓴다
softmax는 최대한 확률을 1로 끌어올리려고 할 것이다
SVM의 경우 일전 선(마진)을 넘기만 하면 더 이상 성능 개선에 신경쓰지 않으므로 둔감하다고 표현한다
어떻게 하면 Loss를 최소화 하는 W를 찾을 수 있을까?
경사하강법
gradient가 음호 기호면 기울기가 내려가는 것이며, 양의 기호의 경우 기울기가 올라가는 것을 의미한다
경사하강법 알고리즘
자세한 내용은 5강에서 설명하도록 하겠습니다
'CS231n' 카테고리의 다른 글
CS231 6강 training neural networks 1 (0) | 2020.12.03 |
---|---|
CS231n 5강 Convolutional Neural Networks (0) | 2020.12.02 |
CS231n 4강 Backpropagation and neural networks (0) | 2020.10.31 |
cs231n 2강 Image classfication pipeline (0) | 2020.10.09 |
CS231n 1강 introduction to CNN (0) | 2020.10.09 |