프로그래밍/머신러닝

Sigmoid의 문제점 : 왜 Sigmoid는 안될까?

2jun0 2019. 5. 17. 02:19

우연히 YOLO를 공부하다 다음과 같은 동영상을 보게 되었다.

전반적인 퍼셉트론 내용도 다루고 있는데, 거기서 Sigmoid함수를 왜 쓰지 않는지 이유를 알 수 있었다.

https://youtu.be/u0eT7VZAgRw

 

 

출처 : https://datascience.stackexchange.com/questions/30676/role-derivative-of-sigmoid-function-in-neural-networks

이유는 간단하다.

sigmoid함수의 도함수(미분한 것)의 최대값이 1/4인데, (위의 그림 참고)

이것이 하나의 층으로 이루어 진 것이면 괜찮지만, 여러개의 층인 모델의 경우,

input layer쪽으로 역전파 할수록, 1/4 * 1/4 = 1/16 .... 1/16 * 1/4 = 1/64... 이런식으로 점점 영향력이 작아진다는 문제점이 있다.

 

그래서 이런 문제점을 해결하려면 도함수의 최대값이 1인 Activation 함수를 사용해야 한다.

출처 : http://ronny.rest/blog/post_2017_08_16_tanh/

 

relu그래프, 출처 : Semantic Scholar

그런 함수에는 Tanh이나 Relu같은 함수가 있다.