이번에는 여러개의 Class가 있을 때, 그것을 예측하는 Multinomial Classification 중에서도 가장 많이 사용되는 Softmax Classification을 알아보겠습니다.
지난번 포스트에서 Logistic regression classification이라는 것에 대해서 알아봤습니다.
자세한 내용은 지난번 포스트를 참고해주세요.
아무튼 이 Logistic regression classification은 Binary classification에 사용됩니다.
기본적으로 서로 다른 데이터들을 구분하는 것인데,
아래와 같이 생각할 수 있습니다.
이러한 아이디어를 Multinomial classification에 적용을 시킬수 있습니다.
아래와 같은 데이터가 있다고 가정합니다.
여기에서 Binary Classification의 개념을 적용해서 보면,
와 같이 구분을 지을 수 있습니다.
즉 이것은 세번의 학습이 필요합니다.
결국 이것이 새로운 가설이됩니다.
Logistic Classification처럼 이 가설들을 0 ~ 1 사이의 값으로 만들어주기 위해 sigmoid function을 사용해야 합니다.
각각에 sigmoid function을 적용해도 되나, softmax에서는 다르게 적용을 시킵니다.
위와 같이 적용시킨 값을 보면
a가 만들어질 확률이 70%,
b가 만들어질 확률이 20%
c가 만들어질 확률이 10%이라는 것을 알 수 있습니다.
그러나 우리는 그 중의 하나만 알고 싶을 때가 있습니다.
이 때 사용하는 것이 One-hot encoding입니다.
다음으로는 이 가설이 얼마나 실제값과 가까운지 Cost function을 설계하는 것입니다.
Softmax Classifier에서는 Cross-entropy라는 것을 씁니다.
위와 같은 방법으로 Cost function을 설계하는데, 이것에 대해서 알아보겠습니다.
위의 슬라이드에서 보면, 예측한 값이 맞다면 Cost가 0이고 값과 다르다면 Cost가 점점 커지게 됩니다.
사실상 이것은 지난번 Logistic cost와 실제로 같은 것입니다.
위의 Cost function이 적절한지에 대해서 일반화해보도록 하겠습니다.
n개의 범주를 가진 데이터에 대해서 Multinomial classification을 시키기 전에 어느 한 데이터가 k번째의 범주에 속해있다면 실제의 값은 다음과 같습니다.
이 때 예측할 수 있는 값으로는 총 n개의 값이 존재합니다.
모델이 이 데이터를 k'번째의 범주에 속해있다고 예측했을 때,
이 때의 예측값을 one-hot encoding한 값은 다음과 같습니다.
이를 Cross-entropy cost function에 적용시켜보면,
와 같은 함수를 얻을 수 있습니다.
이를 정리해보면,
이라는 결과를 얻을 수 있습니다.
log(0)은 무한대로 발산하고, log(1)은 0이기 때문에
이라고 할 수 있습니다.
따라서 예측값과 실제값이 일치하였을 때는 cost가 0이 되고, 그렇지 않은 경우에는 cost가 무한대로 발산하는 모습을 볼 수 있습니다.
따라서 n개의 범주가 있을 때, Cross-entropy cost function이 일반적으로 사용될 수 있음을 보였습니다.
이것은 지난번 Logistic cost와 실제로 같은 것임을 보이도록 하겠습니다.
Logistic cost는 Binary Classification에 사용되고, 이는 2개 범주의 Multinomial Classification과 같습니다.
그러므로 위에서 보인 Cross-entropy cost function의 일반화에서 n=2인 것을 생각해보겠습니다.
실제로 어느 한 데이터가 다음과 같은 목표값을 가집니다. ( 1<= k <= 2, n = 2)
이 때 예측할 수 있는 값으로는 총 2개의 값이 존재합니다.
모델이 이 데이터를 k'번째의 범주에 속해있다고 예측했을 때,
이 때의 k'는 1번째이거나 2번째 범주에 속해있습니다.
이를 one-hot encoding 하지 않은 예측값으로 표현하면 다음과 같습니다.
이 값을 Cross-entropy cost function에 적용시키면,
가 되고, 이는
로 나타낼 수 있습니다.
즉 이는 앞에서 언급했던 Logistic Cost랑 같습니다.
따라서 Logistic cost가 결국 Cross-entropy cost와 같습니다.
'AI > Lecture notes' 카테고리의 다른 글
[ML lec 08] Deep Neural Nets for Everyone (0) | 2017.07.27 |
---|---|
[ML lec 07] Application & Tips (0) | 2017.07.25 |
[ML lec 05] Logistic Classification (0) | 2017.07.19 |
[ML lec 04] multi-variable linear regression (*new) (0) | 2017.07.17 |
[ML lec 03] Linear Regression의 cost 최소화 알고리즘의 원리 설명 (0) | 2017.07.15 |