Logistic regression과 같은 개념이지만, 0과 1처럼 2가지로 구분하는 것이 아니라 3개 이상인 경우에 사용한다.
원-핫 인코딩(One-Hot encoding)
원-핫 인코딩은 선택해야 하는 선택지만큼의 차원을 갖으며, 각 선택지의 인덱스에 해당하는 원소에는 1을 나머지에는 0을 부여하는 표현 방식이다. 아래와 같이 원-핫 인코딩으로 표현된 벡터를 원-핫 벡터(One-Hot Vector)라고 한다.
원-핫 인코딩은 Multinomial Logistic을 해결하기 위한 필수적인 수단은 아니지만, 대부분의 Multi-Classification 문제에서 각 클래스 간의 관계가 균등하기 때문에 적절한 수단이다. 물론 직관적으로 1,2,3 이런 식으로 레이블을 해볼 수도 있다. 하지만, Loss Function에서 문제가 발생할 수 있다.
- 정수로 레이블링 했을 때
- 핫 인코딩으로 레이블링을 했을 때
하지만, 30대 20대 10대 이런 식으로 Class의 순서가 의미를 갖고 있는 경우는 원-핫 인코딩이 부적절할 수도 있다. 원-핫 인코딩의 핵심은 각 Class들 간의 관계를 동일하게 본다는 것이다.
다중 클래스 분류(Multi-class Classification)
앞서 배운 Logistic Regression이 이중분류였다면, 이제는 class가 여러 개인 분류이다. Logistic Regression에서는 두 가지 class를 가장 잘 분류하는 직선을 찾아 sigmoid 함수를 이용하여 분류하였다.
Softmax Regression에서는 Logistic Regression과 비슷한 방식으로 접근을 한다. Softmax Regression에서는 확률의 총합이 1이 되는 아이디어를 이용하여 분류에 적용한다. 어떠한 Input이 있을 때 우리의 가설을 통해 각 Class가 될 확률을 계산하는 것이다. 그 후 가장 높은 확률의 Class로 분류를 하는 것이다.
Softmax Function
Softmax Function은 k개의 분류 기준이 있을 때, k차원의 벡터를 입력받아 각 Class에 대한 확률을 추정하는 것이다.
아래는 4차원의 벡터를 입력받아 3가지 중 하나로 분류를 하는 경우이다.
먼저 4차원의 Input 값을 받는다. 이를 3차원으로 축소를 해야 하는데, 축소하는 방법은 각 Input 값에 가중치들을 부여하는 것이다. 초기에는 무작위로 가중치를 설정하여서 차원을 축소하지만, 점점 오차를 줄여가는 방향으로 진행된다.
그 후 우리는 Softmax 함수를 통해, 각 Class일 경우의 확률을 추정한다.
추정된 확률 값을 통해 오차를 구하고 가중치를 업데이트할 것인데, 이때 오차를 구하기 위해 사용하는 비용함수가 Cross Entropy 함수이다.
Cost Function
Softmax Regression에서는 비용함수로 Cross Entropy 함수를 사용한다.
Cross Entropy 함수는 위와 같으며, \(y_i\)는 실제값 원-핫 벡터의 \(j\)번째 인덱스를 의미하며,\(P_j\)는 샘플 데이터가 \(j\)번째 클래스일 확률이다.
우리 가설이 정확하게 분류에 성공했을 때를 가정해본다면, \(y\)가 [0,1,0]일 때 \(P\)가 [0,1,0]이 될 것이다. 이를 위 함수에 대입하면, \(-1log(1)=0\)이 나오게 된다. 즉, 우리의 예측 값이 정확하게 예측한다면 Cross Entropy 값은 0이 된다. 따라서 우리는 Cross Entropy 값이 0이 되는 방향으로 가중치들을 수정해나가야 한다.
n개의 전체 데이터에 대한 평균을 구하면, 최종 비용 함수는 아래와 같이 된다.
'DL Study' 카테고리의 다른 글
Backpropagation(역전파) (0) | 2022.09.02 |
---|---|
다층 퍼셉트론(MultiLayer Perceptron, MLP) (0) | 2022.09.01 |
Perceptron(퍼셉트론) (0) | 2022.08.31 |
Logistic Regression(로지스틱 회귀) (0) | 2022.08.29 |
Linear Regression(선형회귀) (0) | 2022.08.25 |