본문 바로가기
Deep Learning 개념정리

[소프트맥스 회귀] softmax와 cross entropy 이해하기

by inhovation97 2021. 2. 9.

소프트맥스 회귀도 종속 변수 y가 이산형, 다범주일때 쓰는 분류 모델입니다.

데이터를 예시로 설명합니다.

 

y를 확률값으로 바꾸자.

https://wikidocs.net/59427

독립 변수가 4개인 데이터입니다.

w1x1 + w2x2 + w3x3 + w4x4 + b = y 이렇게 회귀식을 세울 수 있습니다. 물론 y는 범주형입니다.

이 문제는 분류 문제이므로 확률로 다가갑니다.

MLE(최대 우도 추정)로 y가 어느 범주일지 확률을 추정하게 됩니다.

max 확률 값을 soft하게 뽑아내어 y를 분류하는게 아이디어인 것이죠.

 

 

 

https://wikidocs.net/59427

이렇게 w1x1 + w2x2 + w3x3 + w4x4 + b의 스코어 값을 각 범주마다 확률 값으로 뱉어내게 해야합니다.

이 과정에서 자연상수 e를 씌어 범주의 스코어값을 스코어 총합으로 나누어서 각 범주마다의 확률값으로 표현하게 되는 것이죠.

 

 

 

왜 자연상수 e를 쓰는가? 

이 부분이 궁금할 수 있습니다.

사실 언제나 자연상수 e를 쓰는 가장 큰 이유는 미분하기에 너무 편하기 때문입니다.

또 softmax 함수의 soft 부분의 이유가 있습니다.

 

아래 블로그에 간결하게 설명이 잘 나와있습니다.

lv99.tistory.com/7

 

우리는 이제 softmax 함수를 통해 확률값을 도출하는 식까지 알아봤습니다. 이제는 확률 값(모수 p)를 최대로 추정해서 정확도가 높은 분류기를 만들어야 하는데, 여기서 Cross entropy를 이용합니다.

 

cross entropy(불확실성)을 줄여 모델의 정확도를 높이자.

https://wikidocs.net/59427

softmax 함수는 cost 함수를 크로스 엔트로피로 채택하여 모델을 최적화합니다.

크로스 엔트로피는 위에서 구한 확률 값 p에 -log를 씌웁니다. (위 그림에서 j는 범주의 개수입니다.)

-log를 씌우는 이유는 p값은 확률인 0~1 사이이므로 log 함수에서는 노란 부분의 범위로 들어갑니다.

그래서 -값을 넣어주고 단조로워진 로그 함수로 쉽게 최대화 시키는 것입니다.

 

log화한 확률의 값을 최대화 = -log화한 확률의 값을 최소화

p값이 작을수록 cost값은 점점 더 커지겠죠?

 

확률 분포로 해석해보면,

https://www.youtube.com/watch?v=B3gtAi-wlG8&list=PLQ28Nx3M4JrhkqBVIXg-i5_CVVoS1UzAv&index=9

우리는 MLE(최대 우도 추정)로 P값을 추정합니다.

p값을 추정하는데(위 그림에서는 P가 실제 레이블 값이고, Q1, Q2가 우리가 추정한 예측값입니다.)

처음에는 Q2로 추정했지만, cost 함수인 Cross entropy 값이 줄이면 줄일수록 점점 더 P분포에 가까워지는 것입니다.

 

간단하게 목적 함수와 비용 함수 위주로 설명했습니다~

댓글