티스토리 뷰

머신러닝

소프트맥스(SoftMax)

느린 개미 2017. 11. 22. 02:44
반응형

머신러닝 김성훈 교수님 강의를 들으며 많이 사용했던 소프트맥스. 개념이 헷갈려 정리해본다. 



소프트맥스(SoftMax) 는 입력값을 가지고 해당 식을 바탕으로 출력값으로 0~1 사이의 값으로 나타낸다. 

그 출력값의 총합은 항상 1이 되는 특성을 가진다. 가장 큰 출력값을 부여받은 항목이 가장 큰 확률을 가진다.


예를 들어, [1 , 1, 2]  를 입력 시, 그 출력값은 반올림 하여 [0.2, 0.2, 0.6] 이다. 



해당 식 




아래와 같이 파이썬으로 구현해보았다. 



출력이 [0.25, 0.25, 0.5]가 아닌 [0.2, 0.2, 0.6] 가 되는 이유는 

의 특성 때문이다. 입력값이 클수록 기울기가 증가한다.  그래프로 표현하면 아래와 같다. 




SoftMax의 출력값을 가지고 One hot encoding 을 해준다. 이렇게 되면 가장 큰 입력만 True, 나머지는 False 로 변환한다. 

                         


                                   softmax                   One hot encoding



반응형