AI & BigData/모두를 위한 딥러닝(정리)

머신러닝(ML) #7_ Multinomial classification의 개념

Tigercow.Door 2018. 3. 20. 13:38


안녕하세요.

이번 포스팅에서는 Multinomial classification의 개념대해 알아보도록 하겠습니다.


* 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.

관련한 상세 내용은 아래 링크를 참고해주세요.

https://hunkim.github.io/ml/



1. Multinomial classification 이란?


앞으로 몇개의 포스팅에서 우리는 여러개의 클래스가 있을때 그것을 예측하는 Multinomial clssification, 그리고 그 중에서도 가장 많이 사용되는 softmax classification에 대해서 알아봅니다.

먼저 Multinomial classification 이란 무엇일까요?


우리는 지난 포스팅을 통해 Logistic regression에 대해서 알아보았습니다.

이때, 단순히 Hypothesis를 H(x) = WX 라는 식으로 세운다면 결과 값이 0 또는 1이 아닌 값이 나올 수 있기 때문에 우리는 z = H(x), g(z) 라는 식으로 두고 g(z)를 sigmoid 함수로 둠으로써 0과 1내의 값으로 결과가 나오도록 하였습니다.


이러한 과정을 간단하게 도식으로 표현해보면 다음과 같습니다.



그리고 우리는 이러한 것을 바탕으로 아래 그래프에서 ㅁ와 x를 구분하는 선을 그려냅니다.



그럼, Multinomial classification이란 무엇일까요?

Multinomial classification이란 단순히 0 또는 1로써 구별하는 것을 넘어, 다양한 것으로 분류하는 것입니다.



위의 그래프는 A, B, C 세개의 종류로 구별하는 것인데, 이를 하기 위해 3개의 선을 그었습니다.

위의 그래프와 같이 우리가 학습했던 Logisitc Regression 여러개를 이용한다면 이러한 Multinomial classification 구현이 가능합니다.


그리고 이러한 것들을 도식화해서 나타내 본다면 아래 그림과 같을 것 입니다.



여기서 아래 행렬을 통해 y hat 값을 얻을 수 있습니다.



이런 y hat 값들은 도식화된 그림에서의 z에 대응되는 데이터이기 때문에 다시 각각의 y hat에 sigmoid함수를 적용해야 합니다. 하지만 각각의 y hat에 sigmoid 함수를 적용하는 것보다 보다 효율적인 방법이 존재합니다.

이러한 방법에 대해서는 다음 포스팅에서 알아보도록 하겠습니다.

728x90