본문 바로가기
AI/[DLBasic]모두의 딥러닝(딥러닝의 기본)

[DLBasic] 6-2. Softmax Classifier's cost function

by 쵸빙 2020. 1. 16.

     저번 시간에는 category가 여러 개인 multinomial classification을 해결하기 위한 softmax function을 배웠다.

weight matrix를 길게 늘임으로써 하나의 행렬로 계산할 수 있었다.

 

    이렇게 y의 값을 0~1 사이의 값으로 바꾸기 위해 sigmoid를 사용하는 것이 우리의 목표였다.

이것을 하기 위해 softmax 함수를 사용하게 되었다. 

Softmax function

      위의 그림은 softmax 함수를 간단하게 정리해놓은 것이다. sigmoid 함수를 거친 각각의 결과값은 0에서 1 사이여야하고, 그들의 합은 1이 된다. 즉, 각각을 확률로 볼 수 있게 된다.

     argmax를 이용해서 One-Hot Encoding을 하고 나면 가장 큰 것 하나만 1로, 나머지는 0으로 만든다.

그렇게 나온 결과값, 1이 된 값을 정답으로 인식하는 것이다.

     위까지 어떻게 예측을 할지를 결정했고, 이제는 우리가 예측한 값과 실제의 값이 얼마나 차이가 나는지 계산하는  cost function을 어떻게 만들지 알아보겠다. 이 때 사용하는 식 D를 Cross Entropy라고 한다. L(Label)은 실제의 값, 즉 정답이고 (Y라고 하기도 함), S(y)는 y hat이라고도 표현되고, softmax 함수를 통해서 예측한 값이다. 가운데의 식, log를 한 뒤 L을 곱해서 다 더한 것이 이 경우의 cost function이 되겠다.

B가 정답일 때 cost function 계산 과정
A가 정답일 때 cost function 계산 과정

     Binary Classification에서 사용했던 logistic cost와 Multinomial Classification에서 사용한 cross entropy는 결국 같은 것이 된다고 한다.

 

     training set이 여러 개가 있을 경우에는 전체의 거리, 또는 차이를 구한 다음 합해서 전체의 개수로 나눠서 평ㄱㄴ을 구한다. 결과는 전체의 loss, cost function값을 구할 수 있다.

 

Gradient Descent

     cost function을 최소화하는 값, W 벡터를 구하기 위해서 여기에서도 Gradient Descent를 사용한다.

여기서 cost function이 복잡해졌기 때문에 직접 미분을 하는 것은 알아보지 않고, 계산기를 통해 구하라고 한다.

 

다음 시간에는 ML의 실용과 몇가지 팁을 배우도록 하겠다.