이미지 x가 (이미지 크기x채널수)크기의 열 벡터로 바뀌어 w와 만나서 각 클래스에 대한 점수를 나타내는 클래스 갯수만큼의 숫자를 출력
위의 그림을 보면 3개의 이미지에 대해, 특정 W값을 통해 예측된 클래스 점수가 나타남
여기서 우리는 해당 정답 클래스의 점수가 가장 높기를 원하면서, 동시에 손실함수가 최소가 되길 원함 => 선형 분류가 잘되었다
손실함수가 최소화되는 파라미터를 찾아야함
=> 손실함수는 해당 분류기가 얼마나 좋은지 알려주는 척도
yi가 정답인 카테고리만 빼고 모든 카테고리 y에 대해 하나하나 비교하여 손실을 구함
0과 어떤 값 중에 최대값을 취하는 스타일의 손실함수는 위와 같은 힌지손실(hinge loss)스타일을 가짐
x축 = S_yi(정답 클래스 점수), y축 = 손실
=> 정답 클래스 점수가 증가하면, margin에 다다를 때까지 손실은 선형으로 줄어들다가 0이 됨
cat 클래스에 대한 손실값
최종적으로 5.27만큼의 손실 발생 => 해당 분류기에 성능에 대한 정량적 측정값
Q1. 손실의 최소/최대값?
최소 손실은 모든 클래스에 정답 점수가 크다면 손실값은 0
최대 손실은 정답 점수가 매우 큰 음수로 간다면 손실값은 무한대
Q2. 자동차 점수가 조금 바뀐다면 손실에 어떤 일이 벌어지나?
자동차 클래스의 정답 점수가 꽤 크다면 손실은 변하지 않는다.
SVM Loss는 정답 클래스 점수가 틀린 점수보다 1 이상 큰지에 관심
자동차 클래스 정답 점수가 다른 점수보다 꽤 크다면 여전히 1 이상 마진이 남는다.
Multiclass SVM Loss는 점수에 대해 해석을 하지않고, 정답 클래스의 점수가 틀린 클래스보다 크기만 하면 됨
SoftMax Loss는 점수에 대해 지수화하여 양수로 만들고 이를 정규화하여 확률 분포를 얻음
=> 정답 클래스에 대한 확률이 1에 가까워지는 w를 찾는 것이 목표
SoftMax Loss = 정답 클래스의 음수 로그
=> 0.89만큼의 손실 발생 => 해당 분류기에 성능에 대한 정량적 측정값
Q1. 손실의 최소/최대값?
최소 손실은 모든 클래스에 정답 점수가 1의 값을 갖는다면 -log(1) = 0이 되어 손실값은 0
그러나 지수화, 정규화를 갖고 있기에 1의 확률을 갖는것은 불가능하고, 유한한 정밀도만 갖음
최대 손실은 모든 클래스에 정답 점수가 0의 값을 갖는다면 -log(0) = 양의 무한대가 되어 손실값은 양의 무한대
그러나 지수화, 정규화를 갖고 있기에 0의 확률을 갖는것은 불가능하고, 유한한 정밀도만 갖음
Q2. 자동차 점수가 조금 바뀐다면 손실에 어떤 일이 벌어지나?
바뀐 점수가 그대로 확률값에 적용되므로 손실에도 변화가 생긴다
SVM Loss와 비교해보면 softmax가 데이터에 민감하다
Loss가 최소화되는 지점을 찾아나가는 것
W를 임의 샘플링하고, 모든 Loss를 계산하여 어떤 W가 좋은지 판단
loss함수를 최소값이 있는 오목한 함수라고 생각할 때,
각 지점에서 미분하여 구한 기울기가 더 작은 점이 찾으려고 하는 최소 loss를 갖는 최종 W와 더 가까운 점이라 판단
=> W Gradient Descent가 증가하는 반대방향으로 움직임
GD방법은 모든 데이터를 이용하여 계산하기 때문에 느리다는 단점
SGD는 매 학습마다 한 개의 샘플을 무작위로 선택하고 그 샘플에 대한 gradient를 계산
SGD의 한계를 보완하기 위한 다양한 Optimizer들이 존재
이는 1차 세미나에서 확인 가능함