아래의 그림처럼 class가 여러 개 있을 때 예측하는 Multinomial Classification 중,
행렬 계산을 통해 각 클래스 별로 분류를 진행한다.
계산을 통해 나온 결과값을 Softmax Function 를 거쳐, 아래의 그림처럼 0과 1 사이의 확률 값으로 변환시켜 출력하도록 해준다.
Softmax Function을 통과해 나온 class별 확률값들의 총합은 항상 '1'이다.
Softmax 함수는 함수에 들어오는 값들을 확률값으로 바꿔주는 기능을 한다.
① sigmoid와 마찬가지로 0과 1 사이의 값으로 변환
② 변환된 결과에 대한 합계가 1이 되도록 해줌. (≒ 확률)
* softmax를 사용한 logistic regression은 한 번에 하나의 class만 예측.
(추정 확률이 가장 높은 class를 y^으로 도출하기 때문.)
그림으로 살펴보면, 아래 그림의 'one-hot coding' 이라는 과정을 거치기 때문이라는 것을 알 수 있다.
이처럼, one-hot encoding은 softmax를 통해 나온 확률값 중에 가장 높은 클래스를 선택해 해당 클래스만 1로 만들고 나머지는 다 0으로 만들어준다.
수학적 정의에서 sigmoid 함수는 모든 범위의 실수를 취하고 0~1사이의 출력 값을 반환.
Softmax함수는 ‘n’개의 다른 이벤트에 대해 이벤트의 확률 분포를 계산.
일반적으로, 이 함수는 가능한 모든 대상 클래스에 대해 각 대상 클래스의 확률을 계산.
Softmax의 출력값은 0~1범위의 확률값이며, 모든 확률의 합이 1이다.