#13 Softmax Function

chiro_J·2022년 8월 9일
0

머신러닝 클리닉

목록 보기
13/29
post-thumbnail

아래의 그림처럼 class가 여러 개 있을 때 예측하는 Multinomial Classification 중,

행렬 계산을 통해 각 클래스 별로 분류를 진행한다.

계산을 통해 나온 결과값을 Softmax Function 를 거쳐, 아래의 그림처럼 0과 1 사이의 확률 값으로 변환시켜 출력하도록 해준다.

Softmax Function을 통과해 나온 class별 확률값들의 총합은 항상 '1'이다.

Softmax 함수는 함수에 들어오는 값들을 확률값으로 바꿔주는 기능을 한다.

① sigmoid와 마찬가지로 0과 1 사이의 값으로 변환
② 변환된 결과에 대한 합계가 1이 되도록 해줌. (≒ 확률)


One-Hot Coding

* softmax를 사용한 logistic regression은 한 번에 하나의 class만 예측.
(추정 확률이 가장 높은 class를 y^으로 도출하기 때문.)

그림으로 살펴보면, 아래 그림의 'one-hot coding' 이라는 과정을 거치기 때문이라는 것을 알 수 있다.

이처럼, one-hot encoding은 softmax를 통해 나온 확률값 중에 가장 높은 클래스를 선택해 해당 클래스만 1로 만들고 나머지는 다 0으로 만들어준다.




Sigmoid vs Softmax

Sigmoid

수학적 정의에서 sigmoid 함수는 모든 범위의 실수를 취하고 0~1사이의 출력 값을 반환.

  • Logistic Regression에서 binary classification에 사용
  • Neural Network에서 activation function으로 사용
  • 통계에서 누적분포 함수로 사용

Softmax

Softmax함수는 ‘n’개의 다른 이벤트에 대해 이벤트의 확률 분포를 계산.

일반적으로, 이 함수는 가능한 모든 대상 클래스에 대해 각 대상 클래스의 확률을 계산.
Softmax의 출력값은 0~1범위의 확률값이며, 모든 확률의 합이 1이다.

  • multi-classfication에서 사용

0개의 댓글