sigmoid 함수를 이용한 확률값 만들기

값을 0 ~ 1 사이의 값으로 사상시켜주는 함수이다. 이거 말고 비슷한 tanh 함수등이 있지만 이 함수가 가장 많이 알려져 있다.

 

/XCpujADKjm.png”>c681ea98a754c7f47276e7733d37c847/XYCUxb02Fj.png” width=”131″ border=”0″ />

 

/XdbdX7m5J5.png”>320px-Logistic-curve.svg/XE2FDjDacJ.png” width=”240″ border=”0″ />

sigmoid function

 

위 함수가 가장 많이 쓰이는 곳은 역시나 neural network (ANN) 알고리즘일 것이다.

 

사실 저 수식을 암기하는것보다 위 그래프를 보면서 어떨때 쓰면 좋을까 생각해보는것도 꽤 재밋다. 0 ~ 1 사이의 값을 리턴하기 때문에 y 축에 사상 되는 값들을 확률값으로도 사상시킬 수 있을것이다.

게다가 음수일 경우에 0.5 이하의 확률을 받고 있으니 vector space 기반의 분류기에 쓰면 적당할 것이다.

 

많은 ML툴에서 보면 SVM이나 Vector Space 기반의 Rocchio classification  의 결과물이 class 예측 정보를 포함하고 있고 동시에 확률 값이 포함되어 이는것을 볼 수 있다.

아마도 그런 확률값은 위와 같은 함수에 의한 결과라고 생각한다.

예전에는 decision function에서 각 class 중심점 까지의 거리를 1로 보고 각 테스트 데이터의 거리를 계산했는데 위 식을 사용하는것도 나쁘지 않을듯 하다.

 

ps. 딱 이 글을 쓰려 하던 찰라에 tanh함수를 쓰면 좋을거라는 말을 오늘 아침 토론하면서 회사 동료분에게 들었다. 역시나 책을 파는것 보다는 각자의 생각을 내놓고 서로 이야기 하는게 가장 재미있고 얻는것도 많은거 같다. ㅎㅎ  

CC BY-NC 4.0 sigmoid 함수를 이용한 확률값 만들기 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.