멀티 클래스 분류 문제

앞서서 본 아달린과 퍼셉트론은 분류에 유용했다. 하지만 오직 0과 1의 분류 밖에 하지 못한다는 한계가 존재한다.


만약 내가 주어진 이미지를 [개, 고양이, 소]로 분류하도록 내 시스템을 훈련시키고 싶다면 어떻게 해야할까? 이러한 문제를 멀티 클래스 분류 문제라고 부른다.


그림1에는 3개의 결정 경계가 그려져 있다.

이를 해결하는 방법은 그림1과 같다. 개를 분류하는 퍼셉트론, 고양이를 분류하는 퍼셉트론, 소를 분류하는 퍼셉트론을 다 따로따로 만들어서 훈련시키면 된다. 이러한 경우 내 모델은 예측값으로 벡터를 출력한다.

예를 들자면:

입력된 x에 따라서, 개 = [1, 0, 0], 고양이 = [0, 1, 0], 소 = [0, 0, 1]이 나오도록 하면 된다.


그림2에선 다변수 함수의 입력인 벡터들이 모든 퍼셉트론을 방문하는 것을 알 수 있다.

이렇게 하면 여러 가지의 분류를 하는 머신러닝 시스템을 만들 수 있다.


소프트 맥스 함수

소프트 맥스 함수는 임계 함수이다. 수식은 다음과 같다:

Softmax = ez1 / ∑ ezn

오일러 숫자 e와 익숙하지 않다면 걍 수식을 건너뛰고 다음과 같이 생각하자: 소프트 맥스는 [0.1, 0.2, 0.4]의 배열을 [0.1, 0.2, 0.7]의 일종의 백분율 꼴로 바꾸어준다.


멀티 클래스 분류를 이해했다면, 딥러닝과는 바로 코앞에 있는 것이나 다름 없다. 딥러닝은 이러한 멀티 클래스 분류기를 레이어화 시킨 것으로 볼 수 있기 떄문이다.