# ML : Softmax Classifier - Cost Function

이전 포스팅에서 다룬 Multinomial Logistic Regression을 그대로 이어가본다.
여러개의 W 값과 X 값으로 구성된 Matrix를 이용한 곱셈을 진행하게 되면 위와 같은 식을 만들어낼 수 있다. 우리는 Sigmoid 함수를 이용해서 결과 값(Prediction, Y^)을 0에서 1 사이의 값으로 구성할 수 있게 된다.
이런 식으로 구성할 수 있게 되는데, 위의 그림은 각각의 결과 값에 따른 비중(더 큰 값)에 대하여 결과를 선정하는 과정을 보여준다. 결국 P(Prediction)가 0.7로 가장 크게 나온 a가 선정되는 것을 보여준다.
Softmax 함수(알고리즘)를 사용하면 위와 같이 0에서 1 사이의 값으로 이루어진, 그리고 총 갑의 합이 1이 되는 결과를 만들어낼 수 있다. Sigmoid와 결합되어 사용된다고 보면 된다.

위의 그림은 Cross Entropy 함수를 이용한 결과 값 도출을 보여준다. 가운데에 있는 L과 log로 이루어진 복잡한 식이 Cross Entropy 함수라고 보면된다.
이제 이 식의 내부에 Logistic Regression을 대입하게 되면 0에서 1 사이의 값으로 나타낼 수 있게 된다. 여기서 만들어진 값이 Cost Function으로 사용되게 되는데, 맞으면(일치하면) 0으로 결과를 보여주고 틀리면(일치하지 않으면) 무한대의 값을 나타낸다.
"무한대의 값을 보임으로써, 값을 맞추지 못한 시스템에게 벌(?)을 준다는 김성훈 교수님의 말씀이 생각이 나는데 굉장히 잔인한 처벌(??)이라고 생각한다."



위 그림은 A, B 각각에 따른 일치도를 Logistic Regression으로 도출해내는 과정을 보인다. 
L (Label)과 일치하는 Y^(Prediction)인 경우 0으로, 일치하지 않는 경우 무한대로 결과를 나타내는 것을 볼 수 있다.
위의 그림은 교수님께서 숙제로 내주신 부분인데, 이건 내가 나중에 확인하고 다시 올려보도록 하겠다. D는 Distance를 의미하는데, 여러 개의 Cost Function 값들에 대하여 평균을 내는 과정을 보인다.
이렇게 나온 결과 값은 Loss(?)로 구한다고 하는데, 아마 거리간 편차를 의미하는 것으로 보인다.
어찌되었든 우리의 마지막 목표는 최소 값의 Cost Function을 만드는 W를 구하는 것이므로, 아래와 같은 그래프를 만들 수 있다. 그래프는 밥그릇모양처럼 만들어지고, 우리는 경사면(미분 값)이 0이 되는 최소 값 부분을 계속 계산하며 구하게 된다.





댓글