본문 바로가기

AI

Multinomial Classification

여러개의 Class로 Classification

 기존 logistic classification은 단 두개의 클래스로만 구분이 가능하였다. 여러개의 클래스로 classify를 하게되는 경우를 multinomial classification이라고 한다. 

 

사실 multinomial classification도 logistic classification을 반복적으로 수행함으로써 구현이 가능하다.
예컨데, y = [A, B, C]로 세개의 클래스로 classify를 하게된다면

  1. A인지 아닌지
  2. B인지 아닌지
  3. C인지 아닌지

위의 세 단계를 거쳐서 충분히 A, B, C 세개의 클래스로 구별이 가능하다.

 

 

 예컨데 logistic classification으로 세개의 클래스 a,b,c를 분류한다고 하면 위와 같은 세개의 H(x)를 가지게 될 것이다.

지금은 클래스가 세개밖에 없고 또한 각 클래스의 변수도 세개에 불과하여 사실 수식이 복잡하지 않지만 그 개수가 늘어나면 굉장히 크고 복잡해질 것이다. 따라서, 이를 행렬로 단순화 하여 표현하게 된다.

 

위처럼 행렬로 표현하여 단순화할 수 있다.

 

SoftMax

H(x)에 값을 넣어 나온 y값을 보게 되면 1~0 사이의 값을 갖는 것이 아닐 것이다. 하지만 우리는 해당 인풋이 어떠한 클래스인지를 알기 위해서 각 label들에 대한 확률값을 알아야할 필요가 있고 이를 위해서 softmax를 사용하게 된다.

 softmax도 sigmoid와 유사한 생김새를 가지는 activation funtion이다. 또한 모든 값이 0~1의 값을 가진다.

다만 차이점이라면 softmax는 전체의 총합이 1이 된다는 점이다. 이러한 특성으로 확률값을 계산할 때 유용하다.

이후 one hot encoding을 통해서 확률이 가장 큰값만 1로 남기고 나머지를 0으로 만드는 식으로 활용하곤 한다.

 

Cost Function

 손실함수로는 cross entropy를 사용한다.

 classify 이후 각 label에 대한 확률값을 구하게 될텐데, 이때 cross entropy를 적용하면 예측한 확률이 정답에서 큰 경우 (제대로 예측을 한 경우) 작은 loss값을 갖게 된다. 반면 잘못 예측을 한 경우 큰 loss 값을 가지게 된다.

'AI' 카테고리의 다른 글

Activation function과 Weight initialization  (0) 2024.08.22
Overfitting 방지  (0) 2024.08.20
Logistic Regression  (0) 2024.08.19
Object Detection 알고리즘 별 Label Bounding Box 좌표  (0) 2024.05.14
YOLO(You Only Look Once) 논문 번역 / 리뷰  (0) 2024.05.13