on
Sigmoid & Relu함수
Sigmoid & Relu함수
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId;=handuelly&logNo;=221824080339
위 블로그를 바탕으로 필사하며 공부
* 활성화 함수
딥러닝 네트워크에서 노드에 입력된 값들을 비선형 함수에 통과시킨 후
다음 레이어로 전달하는데, 이 때 사용하는 함수를 활성화 함수라고 한다.
- 종류
1. Sigmoid 함수
- logistic 함수라고도 불리며, x의 값에 따라 0~1의 값을 출력하는 S자형 함수
sigmoid 함수 정의
- 하지만 sigmoid 함수는 음수 값을 0에 가깝게 표현하기 떄문에 입력 값이 최종 레이어에서 미치는 영향이 적어지는
Vanishing Gradient Problem이 발생하게 된다.
- sigmoid 도함수 그래프에서 미분 계수의 최대값은 0.25이다.
- 딥러닝 학습 시 Back-propagation을 계산하는 과정에서 활성화 함수의 미분 값을 곱하는 과정 이 포함되는데,
sigmoid 함수의 경우 은닉층의 깊이가 깊으면 오차율을 계산하기 어렵다는 문제가 발생하기 때문에, vanishing gradient problem이 발생하게 된다.
- 다시 말해, x의 절대값이 커질수록 gradient backpropagation시 미분 값이 소실될 가능성이 크다는 단점이 있다.
- 또한, sigmoid 함수의 중심이 0이 아닌데, 이 때문에 학습이 느려질 수 있다는 단점이 있다.
2. Relu함수
- ReLU(Rectified Linear Unit, 경사함수)
ReLU 정의
- x가 0보다 크면 기울기가 1인 직선, 0보다 작으면 함수 값이 0
- 이는 0보다 작은 값들에서 뉴련이 죽을 수 있는 단점을 야기
- but, 간단하면서 좋은 성능 야기
ReLU 함수 그래프
- tf.keras.actiavtsion ---> sigmod, tanh, relu, elu, selu
- tf.keras.layers ---> leaky relu
- leaky relu : 0보다 작은 음수의 값을 가질 때 0.01x의 값을 가짐
Leaky ReLU 정의
from http://yeon22.tistory.com/108 by ccl(A) rewrite - 2021-10-24 19:00:37