2014년 11월 2일 일요일

도함수와 역함수 sigmoid 인공지능


신경망 활성함수에 sigmoid 함수를 종종 사용한다. 그래서 여기에서는 sigmoid함수와 도함수와 역함수를 살펴 보도록 하였습니다.

시그모이드 함수는 아래와 같이 표시됩니다.

S(t) = \frac{1}{1 + e^{-t}}.

SigmoidGraph.png


* 역함수 (Inverse Function)
  - y가 x의 함수일 때, 그 역으로 x를 y의 함수로 본 것

* 도함수 (derivative) http://en.wiktionary.org/wiki/derivative
  - 곡선에 그은 접선의 기울기를 나타내는 함수입니다.

신경망 관련 소스코드를 보면 가끔 sigmoid 함수의 함수명을 inverse sigmoid 로 작명해놓은 소스가 있었습니다.

표기법이 비슷해서 혼동한것 같습니다.
역함수 : f^{-1}
도함수 : \, f'(x)
그걸 보고 역함수로 이해하고 작명을 한게 아닌가 싶네요. 퍼셉트론이나 신경망에 나오는것은 도함수입니다. sigmoid 함수의 도함수는 간단하게 y*(1-y) 로 표현이 가능합니다.
http://roboticist.tistory.com/494 참고하세요.


도함수는 곡선에 그은 접선의 기울기를 나타내는 함수입니다.
따라서 '도함수를 알고 있다.'는 것은 곡선 위의 임의의 점에서의 '접선의 기울기를 알고 있다.'는 것과 같습니다.

수학적으로 다음과 같이 표현합니다.
f'(x) = \lim_{\Delta x \to 0} \frac{f(x + \Delta x) - f(x)}{\Delta x}


미분 계수 = 한 지점에서의 순간변화율

Lim-secant.svg왼쪽의 그래프와 같이 변화량 \Delta x 가 0 으로 수렴하는 극한을 취하면 결국 미분계수는 접선의 기울기가 된다.



결론 : 신경망에 나오는 함수는 sigmoid, sigmoid의 도함수를 사용한다.

댓글 없음:

댓글 쓰기