이번 글에서는 여러 개의 Category(class)에 대해 각 category가 일어날 가능성을 예측하는 Multinomial classification에 주로 사용되는 Algorithm인 Softmax에 대해 다뤄보도록 하겠습니다. Multinomial classification이 필요한 상황은 아래와 같이, 공부 시간과 출석 횟수를 알 때 (input 2가지) 성적이 어떻게 나올지 예측하는 경우(category 3가지(A, B, C))를 예로 들 수 있습니다.
x1 (공부 시간) | x2 (출석 횟수) | y (성적) |
15 | 11 | A |
13 | 8 | A |
10 | 6 | B |
7 | 7 | B |
9 | 1 | C |
먼저 Binary classification에 사용되는 Logistic regression에서는, 아래의 식을 통해 어떤 한 가지 상황이 발생할지, 발생하지 않을지에 대한 확률을 output으로 출력했습니다. (https://alifestudy.tistory.com/56에서 표시했던 Transpose는 편의상 생략했습니다). 이해를 돕기 위해 그림과 행렬을 추가하였습니다. (Ῡ(Y hat) 은 실제값 Y의 예측값임을 의미합니다)
한 가지 상황에 대해 예측하려고 할 때 위처럼 한 개의 process가 필요하다면, 여러 Category (예를 들어 3가지)에 대해 각 상황이 일어날 확률을 예측하려면 아래 그림처럼 위의 process 여러 개를 합쳐서 표현하면 될 것 같습니다.
이 경우, 각 Category Y_1, Y_2, Y_3 에 대해 Binary classification을 적용한 것으로 볼 수 있습니다. (사실 Softmax는 이렇게 적용되지 않습니다.) 이와 같은 경우는, Y_1, Y_2, Y_3 category가 모두 아닌 상황도 예측 가능하도록 하기 위한 경우 사용할 수 있습니다. (Y_1 hat, Y_2 hat, Y_3 hat 모두 0에 가까운 값이 나오는(총 합이 1이 되지 않는) 경우도 표현 가능)
하지만 위와 같은 경우가 아닌, 어떤 한 Category에 반드시 분류되어야 하는 경우를 예측하려고 한다면 아래와 같이 Softmax를 사용할 수 있습니다. (Sigmoid를 적용하지 않은 y_1 hat에 Softmax를 적용한 것이 차이점입니다.)
위 식과 같이 Y_1 hat에 대한 Softmax를 표현할 수 있으며, Softmax를 식으로 정의하면 아래와 같이 표현할 수 있습니다. (이해를 돕기 위해 계산 예시 그림을 함께 추가했습니다)
이처럼 Softmax를 적용하면, 각 Y_k hat 값은 전체 중 특정 k category에 속할 확률을 나타내게 됩니다 (각 Y_k hat 값의 총 합은 1이 됩니다).
다음 글에서는, Softmax의 Cost function(Cross entropy)에 대해 다뤄보도록 하겠습니다.
참고한 자료1: https://hunkim.github.io/ml/
'딥러닝 기초' 카테고리의 다른 글
5-2. Softmax의 Cost function (Cross entropy) (0) | 2023.08.20 |
---|---|
4-2. Logistic regression의 Cost function, Gradient descent (0) | 2023.08.15 |
4-1. Logistic regression (0) | 2023.08.13 |
3. 여러 개의 변수를 갖는 Linear regression (0) | 2023.08.06 |
2. Linear regression의 cost 함수를 최소화하는 방법 (0) | 2023.07.30 |