AI

Softmax를 이용한 다중 분류

pullwall 2024. 9. 5. 21:57
728x90
해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.

3x100x100 이미지의 삼중 분류룰 해보자. (강아지, 고양이, 소)

 

정답 label은 강아지 : [1, 0, 0] 고양이 : [0, 1, 0] 소 : [0, 0, 1] 과 같이 정할 수 있다. (one-hot encoding)

 

이때 activation function은 확률 분포를 표현해 주기 위해 softmax를 사용한다.

 

https://www.singlestore.com/blog/a-guide-to-softmax-activation-function/

 

softmax는 위와 같이 여러개를 입력으로 받아 확률 분포를 출력한다. (수식에 의해 당연하게 총합은 1이 된다.)

 

그냥 sigmoid를 거쳐 나오게 할 수도 있지만, 합이 1이 되지 않는다는 문제가 있다.

(그래서 sigmoid는 multi-label classification에 사용된다. 강아지하고 고양이하고 같이 있으면 강아지=1 고양이=1 이라고 출력할 수 있으니까)

 

softmax의 각 출력을 $q_1, q_2, q_3$라고 한다면 likelihood는 $q_1^{y_1}q_2^{y_2}q_3^{y_3}$가 된다.

 

이걸 -log 씌우면 loss함수가 된다.

  • $-\log{ q_1^{y_1}q_2^{y_2}q_3^{y_3}  }$

이걸 전개하면

  • $-y_1\log{q_1} -y_2\log{q_2} -y_3\log{q_3} $ = Cross Entropy

 

 

 

 

728x90