MY MEMO

[MACHINE LEARNING - Sung Kim] Softmax classification 본문

MACHINE LEARNING/Sung Kim - 이론

[MACHINE LEARNING - Sung Kim] Softmax classification

l_j_yeon 2017. 4. 5. 15:56

Lecture 6-1,2

softmax classification : Multinomial classification


이 전에 우리는 Logistic regression을 공부했습니다.

데이터를 바탕으로 일차함수를 찾았는데 우리는 이 일차함수가 가장 큰값이 1 작은 값이 0으로 가게 만들고 싶어서

Logistic 함수를 썼습니다.


multinomial classification



A,B,C학점을 부여하고 싶을 때 위와 같은 좌표를 그릴 수 있다.




왼쪽부터 좌표를 1,2,3이라고 가정하면 1번 좌표에서 그래프를 그렸을 때, C학점을 찾을 수 있다.

2번째 좌표는 B학점을 찾을 수 있고, 3번째는 A학점을 찾을 수 있다.


위를 계산하기 위해서는 아래와 같은 방법을 이용해야한다.



matrix로 나타내면 위와 같이 되고 위는 matrix의 곱으로 쉽게구할 수 있다.



그럼 sigmoid는 어떻게 구할까?

위의 식으로부터 나온 Xa Xb Xc에 Sigmoid함수의 모듈을 곱하여 나타낼 수 있다.


+) sigmoid를 구한다?

 => matrix의 곱으로부터 나온 결과값의 범위가 0부터 1사이로 나오도록 만드는 것이 sigmoid를 구한다고 말한다.


위처럼 결과값의 합이 0부터 1사이이며 세개의 합이 1이 나오도록 하는 것을 원한다.




하지만 sigmoid모듈을 곱하지 않고 더 쉽게 값을 구하는 방법은 없을까?

그 방법이 바로 softmax이다!



softmax를 사용하면 결과값이 바로 우리가 원하는 0부터 1사이의 값으로 나타내어진다.

이렇게 0부터 1사이로 나온 값을 우리는 확률로 볼 수 있다

즉 모든 수를 더하면 1이 나오는 것이다.


+) 이중에서 하나만 나타내줘! => one hot encoding (아래에서는 가장 큰 0.7값을 1로 바꾸어 나타냈다)


softmax의 cost function



왼쪽 (우리가 예측한) 값과 오른쪽 (정답,실제) 값의 차이가 얼마나 되는지 위의 함수로 추측할 수 있다.

(Si즉 우리가 예측한 값은 softmax를 통과하는 값이기 때문에 항상 0에서 1사이를 유지한다.)


왜 이 함수가 적합한 함수일까?



위의 식을 보자.

정답값이 즉 실제값이 L이고 우리가 추측한 값이 Y라고 하면

첫번째 Y값은 실제값과 동일하고 두번째 값은 실제값과 차이가 있다.

위를 cost function에 넣어보면 첫번째 Y값의 cost function은 0 두번째 Y의 cost function은 무한대로 나타내어진다.

따라서 위의 식은 알맞게 계산이 된다.


+) 시그마 Li뒤의 *은 각각의 element를 곱해준다는 뜻이다.

   즉 matrix의 곱이 아닌 각각의 element끼리의 곱이라는 의미이다.



위의 식을 보면 결국 logistic cost와 cross entropy의 식은 같다는 것을 알 수 있다.


여러개의 training set이 있을 때 cost function의 식을 나타내보면 아래와 같다.



cost function을 알아봤으면 당연 gradient descent도 살펴보아야한다.



위의 step밑의 식을 이용해서 step을 구할 수 있다.

식이 복잡해졌고 미분또한 복잡해져 현재는 계산하지 않지만 직관적으로 미분은 기울기를 의미한다는 것을 알 수 있다.

Comments