건조젤리의 저장소

6-1. Softmax classification: Multinomial classification 본문

공부 기록/모두를 위한 딥러닝 (Basic)

6-1. Softmax classification: Multinomial classification

건조젤리 2019. 11. 7. 12:18

김성훈 교수님의 강의내용을 정리한 내용입니다.

출처 : http://hunkim.github.io/ml/

 

모두를 위한 머신러닝/딥러닝 강의

 

hunkim.github.io


지금까지 2개의 결과로 분류하는 선을 찾는 방법을 알아보았다.

그렇다면 2개 이상의 결과로 분류하기 위해서는 어떻게 해야 하는가?

3개의 선으로 구분이 가능하다!

이는 3개의 Classifier로 표현이 가능하다.

3개의 구분선을 표현하기 위해서 행렬을 이용하면 다음과 같이 나타낼 수 있다.


출력해낸 결과를 이용해 가장 높은 확률을 가지는 값이 무엇인지 알아내야 한다.

Sigmoid를 사용한다면 출력값은 0~1 사이값이 나오게 될 것이다.

하지만 이 출력값들을 확률적으로 비교하기는 어렵다.

 

Softmax 함수를 이용하면 출력값들의 합이 1인 확률로 출력값이 나오게 된다.

Softmax함수의 출력값


Softmax함수의 출력값과 One-Hot Encoding결과값을 어떻게 비교할까?

Cost Function은 어떻게 구성해야 할까?

Log함수를 이용하여 Cost Function을 계산한다.

 

만약 Y가 0일경우 Log 부분은 무한으로 수렴하게 될 것이고

1일 경우 0이 될 것이다.

 

위의 예시는 이러한 Cost Function이 어떻게 동작하게 되는지 알려준다.

값이 정확히 일치하게 되면 Cost는 0이 될 것이고, 값이 틀릴 경우 Cost는 매우 커질 것이다.

logistic cost 부분이 잘못나옴, 수식 앞에 마이너스(-)가 추가되야 함

교수님의 설명에서는 Logistic cost와 Cross entropy가 동일하다고 하셨다.

처음엔 이해가 잘 가지 않았지만 교수님의 힌트에 따라 출이해보면 다음과 같다.

 

logistic 에서는 y값이 0 또는 1, 이를 one-hot encoding 벡터로 바꿔서 cross entropy를 적용한다면...

(0=>[1, 0], 1=>[0, 1])

 

Logistic cost의 y에 0을 대입한다면: 0*log(H(x)) - 1*log(1-H(x)) = -log(1-H(x))

cross entropy의 L에 [1, 0]을 대입한다면: -1*log(S0) - 0*log(S1) = -log(S0)

 

S1은 H(x)이고, S0는 1-H(x)와 같으므로!

결과적으로 동일한 값이 나온다!

 

Cost function은 위와 같다.

Comments