본문 바로가기

머신러닝 읽어주는 남자

[오직 핵심]Softmax와 아이들

반응형

Softmax


수학적 의미

multi class linear classifier(multinomial Logistic Regression)


실제적 의미

K개의 클래스중에 특정 클래스에 속할 점수를 멋있게 확률 값으로 바꿔줌 

(참고! 확률 값의 특징: 양수, 합이 1)


수식 

\sigma (\mathbf {z} )_{j}={\frac {e^{z_{j}}}{\sum _{k=1}^{K}e^{z_{k}}}}



Softmax는 그냥 한 클래스에 속할 확률을 나타내줄뿐이므로 학습을 위하여 cost function 이 필요하다

대표적인 2개의 cost function은 아래 두개 이다.


Classification는 기본적으로 정답 클래스은 한개 이다.


Hinge loss

기본 개념

정답스코어보다 오답 스코어가 1이상 작은 경우에는 loss = 0

1이상의 차이가 안 날 경우 그만큼을 cost로 여김


즉! 정답과 일정 이상의 점수가 낮아지도록 학습함


예시

정답: [1 0 0 0], 예측 결과: [0.8, 1.7, -5, 0.3]

cost = 0 + (1.7-0.8+1) + 0+ (0.3-0.8+1) = 0.9+ 0.5 = 1.4



Cross Entropy


기본 의미

정답의 확률를 최대화 한다. 그럼 자연스래 다른 확률은 낮아짐

이걸 그냥 하면 섭섭하니 - log를 붙여서 negative log 최소화하는 방향으로 학습한다.


간단한 수식

수식은 사실 위와 같이 잘 이해안되게 써있지만 내용은 단순하다.

y가 one-hot encoding이면 하나만 1이고 나머지는 0이다. 그러므로 정답을 제외하고는 다 사라진다.


수식은 다음처럼 정리된다.


k는 바로 정답의 인덱스가 된다.

그러므로 정답의 확률를 최대화하는 기법이라고 생각하면된다. (그러면 나머지 확률은 자연스레 낮아질테니)



반응형