값을 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함수를 쓰면 좋을거라는 말을 오늘 아침 토론하면서 회사 동료분에게 들었다. 역시나 책을 파는것 보다는 각자의 생각을 내놓고 서로 이야기 하는게 가장 재미있고 얻는것도 많은거 같다. ㅎㅎ
ㅎㅎㅎ.. 아침에 제가 말한.. 이야기 인것 같군요..
0-1 사이의 값으로 매핑 시켜 주는 것이..
tanh같은 놈도 있고 위에 시그노이드 함수도 다양하게 있습니다.
저는 일단 SVM에서는 tanh를 사용합니다..
그 이유는.. 다름이 아니라.. 다른 논문에 보니.. 그렇게 사용해서 사용하니..
거의 확율처럼 되더라.. 라는 논문을 본적이 있습니다.
실험을 통해서 했던것 같은 기억이 나구요.. 물론 정확하지는 않습니다만…
그래서 tanh를 종종 사용했었습니다만..
시그노이드는… 생각을 못했네요..
뭐 특별히 문제점은 없을 듯합니다.
다른 문제에서는 오히려 파라메터를 조정함으로써…
기울기를 조정할 수 있는 장점도 있을 듯하네요…
오늘 아침 이야기 재미있었습니다. ^^
페르미 분포에서 자주 보이는 식 패턴이군요
물리학 하시분 분이고, 익명으로 댓글 달 수 있는 분들이 제 주변이 2명이 있는데 페르미 분포는 양자 역학 쪽과 관련이 있으니 1명으로 압축이 되네요. ㅋㅋㅋ
SVM 을 sigmoid 함수에 매핑하는게 어떤건지 상상이 잘 안되네요. SVM은 애초에 이진분류기인데 어떻게 클래스 1에 속할 확률로 바뀔수 있는건지 모르겠습니다. Platt의 논문을 봐도 이해가 잘 안되네요^^;;
Decision Boundary에서 각 점까지의 거리를 구할 수 있다면 이를 sigmoid와 같은 함수에 사영이 가능하겠죠.
이런 종류의 확률 사영 기법은 다소 억지가 있어 보이긴 합니다만 자주 쓰이는 기법입니다.