티스토리 뷰
2. Neural Networks / L1. Introduction to Neural Networks - Softmax
chrisysl 2018. 6. 26. 23:20Multi-Class Classification and Softmax
- 지금까지 우리는 yes or no의 리턴값 또는 파랑과 빨강 중 더 가까운 방향에 대한 확률로 리턴하는경우를 다뤄봤는데,
- 만약 우리가 리턴해서 얻고자 하는 값이 R, G, B와 같은 컬러값 또는 강아지, 고양이, 새 와 같은 대상이라면??
The Softmax Function
- 우리가 본것이 어떤 동물인지에 대한 모델을 구현해본다 가정하자.
- 오리, 비버, 왈루스 중 위에 할당된 확률에 따라 판단하는 모델을 구현하고, 전체 확률을 합한 값은 당연하게 1이 된다.
- input으로는 부리가 달렸는지, 이빨의 개수, 털의 종류 등등이 되겠다.
- Score로 오리는 2, 비버는 1, 왈루스는 0을 할당해주고 그 다음 설정해 줘야할것은
- 이 Score를 어떻게 확률로 변경할 것인지에 대한 점이다.
- 우리가 확률로 변경을 하려면
- 가장 먼저, 전체의 합이 1이 되어야하는데, 현재 Score를 모두 합친 값은 1이 되지 않는다.
- 그다음, 오리가 비버보다, 비버가 왈루스보다 점수가 높기때문에 그 순서에 맞게 확률이 할당되어야 한다.
- 이러한 확률을 작성하고자 Score의 전체 합인 3으로 각 score들을 나누려고 시도하였으나
- Score가 음수가 할당된 경우 제대로 된 값을 얻지 못하는 경우가 발생한다.
- 우측 상단 예시에서처럼 분모가 0이 되어버릴수도 있어 이 방법대로는 어렵다.
- 따라서 모든 수를 양수로 만드는 함수는 지수함수이다!
- 지수함수는 모든 input에 대해 양수를 리턴한다.
- 그러므로 e를 밑으로 모두 취해 확률을 구해보면 정확히 합이 1인 확률이 나온다.
- 이와같은 방법을 Softmax Function 이라 하고, 이는 다음과 같다
- n개의 클래스가 존재하고, z1부터 zn까지의 Score를 리턴하는 일차방정식이 있다고 하면,
- 클래스 i에 대한 확률 P 는 위와같이 e를 진수로, Score를 지수로하여 계산할 수 있다.