[네부캠] Week2 - Linear Classifier과 손실 함수
학습 내용
Linear Classifier
- Linear Classifier은 말그대로 선형으로 어떤 대상을 분류하여 주는 알고리즘을 이야기한다.
- input image의 모든 픽셀, 채널 값의 가중 합으로 클래스의 점수를 계산하는 방식을 이용한다.
매개변수적 접근 (Parametric Approach)
- 모든 데이터를 저장하는 것이 아니라 파라미터 값만 저장하는 방식이다.
- 해당 방식을 적용한 가장 간단한 모델의 형태가 Linear Classifier이다.
- 반대로 모든 데이터를 저장하는 방식은 non parametric approach로 이전 포스트에서 다룬 NN Classifier 등이 있다.
Parameter들의 Shape
- input image가 있을 때 10개의 클래스 중에서 알맞은 클래스로 분류하기로한다면, 10개의 클래스 각각에 해당하는 점수를 출력하여 가장 높은 점수를 받은 클래스가 input image의 class로 예측될 것이다.
- input image는 (32,32,3)의 shape을 가지고 있다. 해당 이미지를 (3072,1)의 shape을 가진 하나의 열벡터로 재구성하여 준다.
- f(x,W)=Wx+b의 함수에 넣어주면 10개의 클레스에 해당하는 점수가 (10, 1)의 shape을 가지는 결과값으로 출력되어야 한다.
- W는 (분류하고자 하는 클래스의 수, 입력 이미지의 픽셀수)의 shape를 가지는 가중치 행렬이 될 것이다. 즉, (10, 3072)의 shape를 가져야 한다.
- Wx의 연산 결과 (10, 1)의 shape을 가지는 결과값이 완성된다.
- b는 bias로 데이터 셋이 균형잡히지 않고 특정 클래스에 편향되어 있을 경우, 기존 데이터 셋과 무관하게 특정 클래스에 우선권을 부여하는 상수이다.
- bias trick이라는 것은 bias를 W 가중치 행렬에 포함시켜 구조를 단수한게 만들어 이해를 돕는 것을 이야기한다. 하지만 CV에서는 잘 사용하지 않는 편이라고 한다.
- Linear Classifier에서 Convolution 파트로 넘어갈 때 매끄럽지 않다.
- 파라미터들을 초기화 혹은 정규화할 때 가중치와 bias를 따로 보는 것이 유리한 경우가 있다.
매개변수적 접근의 장점
- 학습이 완료되면 가중치 W만 있으면 된다. (bias Trick을 사용하지 않으면 W,b 필요하다.)
- 모든 데이터를 기억하고 저장하지 않고, 가중치 행렬만 있으면 되므로 공간 효율성이 높다.
- 테스트 시에 행렬과 벡터 곱(Wx)만으로 예측값 도출이 가능하다.
- 모든 훈련 데이터와 비교하는 것보다 훨씬 빠르다.
Linear Classifier의 한계
- 예측값으로 나오는 클래스에 대한 점수는 제한이 없다. -> 커질 수 있다.
- 해석하기에 어렵다. 점수에 제한이 없기 때문에 예시로 437.9라는 점수가 해당 클래스가 이미지와 얼마나 일치하는지 알 수 없다.
Sigmoid, Softmax
- Linear Classifier의 점수를 직관적인 해석이 힘든 실수 값으로 출력된다. 그렇기 때문에 이러한 점수를 확률로 변환하여 모델의 출력을 보다 직관적으로 해석할 수 있다.
- Sigmoid 함수는 이진 분류 문제에서 자주 사용된다.
σ(z)=1+e−z1
- Softmax 함수는 다중 클래스 분류 문제에서 자주 사용된다.
softmax(zi)=∑jezjezi
손실 함수
- 손실함수는 해당 머신 러닝 모델이 얼마나 좋은지, 혹은 나쁜지를 정량화한다.
- 실제값과 예측값이 어떻게 다른지에 따라 모델에 패널티를 주는 양수를 출력한다.
- 같은 경우 : 모델에 패널티를 주지 않으므로 손실은 약 0이 되어야 한다.
- 유사한 경우 : 모델에 패널티를 주어 미세 조정이 가능해야 한다.
- 격차가 큰 경우 : 크게 페널티가 주어져야지 조정이 가능하다.
차별적(Discriminative) 설정
- 이진 분류의 경우, 예측값이 0보다 크면 positive class, 그렇지 않다면 negative class로 분류한다.
- 손실은 yy^에 따라 결정된다. 부호가 같으면 손실이 작거나 0이되고, 부호가 다르면 손실이 커진다.
- yy^의 절대값이 1에 갈까울 수록 자신있는 예측이며, 0에 가까울 수록 자신없는 예측이다.
0/1 손실
- 모델이 잘못 분류하면 일정한 손실이 발생한다.
- 제대로 분류하면 손실이 없다.
- 가장 단순한 손실 함수이지만, 단점으로 yy^ 값이 0일때 미분이 불가능하다.
Loss=yy^
로그 손실
- 예측이 정확할수록 패널티가 작아진다.
- 로그 함수는 연속 함수이므로 어느 시점에서나 미분이 가능하다.
Loss=log(1+e−yy^)
지수 손실
- 로그 손실과 비슷하지만, 잘못된 경우에는 더 많은 패널티를 부여하고 올바른 경우에는 적게 부여한다.
- 어느 지점에서나 미분이 가능하다.
Loss=e−yy^
Hinge 손실
- 오류에 대한 패널티가 선형적으로 증가한다.
- 오차 범위 내에서 정답인 경우에도 약간의 패널티를 받는다.
- 더 자신있는 예측을 하는 모델을 만들기 위함이다.
Loss=Max(0,1−yy^)
비교
- 지수 손실은 이상치에 매우 큰 패널티를 부여하기 때문에 이상치의 영향을 강하게 받는다.
- 힌지 손실과 로그 손실을 자주 사용된다.
- 힌지 손실(SVM)이 계산적으로 더 효율적이다.
- 로그 손실(로지스틱 회귀)은 출력을 확률로 볼 수 있기 때문에 해석이 더 용이하다.