Home 머신러닝 다중분류 로지스틱 작동 원리 Multinomial Classification
Post
Cancel

머신러닝 다중분류 로지스틱 작동 원리 Multinomial Classification


Multinomial Classification 기본적인 작동 원리

익숙했던 “맞다/아니다”와 같은 이진분류 회귀 기법의 연장선인 다중 분류에 대해 다뤄보려고 한다.

가장 큰 차이점은 “맞다/아니다”가 아닌, [일번, 이번, 삼번] 등과 같이 선택지가 세개 이상인 것으로 바뀐점이다.

이렇게만 보면 “음 그렇구나” 싶을 수 있겠지만, 내용적인 측면에서 상당히 복잡해진다.

사용했던 loss 함수, 그리고 분류 선택지가 추가될수록 logistic regression의 개수, 행렬곱을 위한 가중치 및 바이아스의 행렬/배열 사이즈 변화 등등 많은 부분에서 변화가 일어난다.

간단하게 그림으로 살펴보자!

multinomial

그림에서 볼 수 있는 가장 큰 차이점은 데이터를 가르는 선이 한개에서 세개가 되었다는 부분이다.

시험으로 예를 들어보자면, 최초 binary logistic regression같은 경우에는 [ 합격 / 불합격 ] 여부로만 판단했다면 그 기준을 가르는 선이 하나 필요했다.

하지만 multinomial logistic부터는 성적이 [ A / B / C ] 로 나뉘며, A인지 아닌지 판단하고, B인지 아닌지 판단하며 마지막으로 C인지 아닌지 구분해서 알려준다. 그렇기 때문에 위 그림에선 세개의 선이 필요했다.

이렇듯 class가 하나씩 증가할 때마다 복잡도가 증가한다는 것을 대충 알수 있으리라 믿는다.

위 예제를 다시한번 사용하며 말해보자면, 마찬가지로 매트릭스 연산에서도 조금은 복잡해지는데.. 기존에는 연산을 한번만 하면 되었다면, 같은 연산을 다른 가중치로 넣어 두번 더 하게 된다. A, B, C 각각 한번씩. (왜냐고? 로지스틱 리그레션을 세번하니깐!). 그렇기 때문에 최종 결과 매트릭스의 사이즈가 더 커진다는 것을 인지하도록 하자.

logistic의 sigmoid 또한 모습이 바뀌게 되는데, 기존의

$ y = \frac{1}{1 + e^{-(WX+b)}} $ 에서 $ f(x_i) = \frac{e^{x_i}}{\sum^K_{k=1}e^{x_k}} $ 로 바뀌게 된다.

이를 softmax라고 부른다.

이에 따라 loss 함수의 모양도 조금 바뀌게 되는데 cross entropy라는 이름은 동일하게 쓰인다.

마지막으로 label의 형태를 바꿔주어야 한다.

observationlabel 값………………바뀐 label 값 [ A B C]
1A………………[ 1 0 0 ]
2B………………[ 0 1 0 ]
3A………………[ 1 0 0 ]
4C………………[ 0 0 1 ]
5C………………[ 0 0 1 ]
….………………

이렇게 [ A, B, C] 라는 형태로 label의 값을 받게 된다. 쉽게 생각하면 기존에 숫자 또는 문자였던 값이 리스트 형태로 바뀌어서 그 문자 또는 숫자가 위치한 곳에 1이라는 값이 들어간다고 생각하면 쉽다.

이를 테면,

1
2
3
4
5
6
7
[A B C]  있다.

예제: A가 정답임 --> [True False False] 
		이걸 숫자로 치환하면 --> [1 0 0]
    
예제: C가 정답임 --> [False False True]
     이걸 숫자로 치환하면 --> [0 0 1]

이런 식으로 생각하면 도움이 되지 않을까 싶다.

아무쪼록 이런 원리를 인지하고 다중회귀기법을 배우길 바란다.

그럼 끄읏.

👋

This post is licensed under CC BY 4.0 by the author.

Kaggle Machine Learning Titanic

-

Comments powered by Disqus.