값을 0 ~ 1 사이의 값으로 사상시켜주는 함수이다. 이거 말고 비슷한 tanh 함수등이 있지만 이 함수가 가장 많이 알려져 있다.
/XCpujADKjm.png”>/XYCUxb02Fj.png” width=”131″ border=”0″ />
/XdbdX7m5J5.png”>/XE2FDjDacJ.png” width=”240″ border=”0″ />
위 함수가 가장 많이 쓰이는 곳은 역시나 neural network (ANN) 알고리즘일 것이다.
사실 저 수식을 암기하는것보다 위 그래프를 보면서 어떨때 쓰면 좋을까 생각해보는것도 꽤 재밋다. 0 ~ 1 사이의 값을 리턴하기 때문에 y 축에 사상 되는 값들을 확률값으로도 사상시킬 수 있을것이다.
게다가 음수일 경우에 0.5 이하의 확률을 받고 있으니 vector space 기반의 분류기에 쓰면 적당할 것이다.
많은 ML툴에서 보면 SVM이나 Vector Space 기반의 Rocchio classification 의 결과물이 class 예측 정보를 포함하고 있고 동시에 확률 값이 포함되어 이는것을 볼 수 있다.
아마도 그런 확률값은 위와 같은 함수에 의한 결과라고 생각한다.
예전에는 decision function에서 각 class 중심점 까지의 거리를 1로 보고 각 테스트 데이터의 거리를 계산했는데 위 식을 사용하는것도 나쁘지 않을듯 하다.
ps. 딱 이 글을 쓰려 하던 찰라에 tanh함수를 쓰면 좋을거라는 말을 오늘 아침 토론하면서 회사 동료분에게 들었다. 역시나 책을 파는것 보다는 각자의 생각을 내놓고 서로 이야기 하는게 가장 재미있고 얻는것도 많은거 같다. ㅎㅎ
sigmoid 함수를 이용한 확률값 만들기 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.