RECORD AI
Derivatives Of Activation Functions 본문
반응형
Derivatives Of Activation Functions
신경망의 back propagation를 구현하려면 활성화 함수의 도함수를 구해야 하며
그 함수의 기울기는 어떻게 구하는지에 대해 알아보자.
Sigmoid 활성화 함수
- 선을 그었을 때 삼각형의 높이를 너비를 나눈 값이다.
$g(z) = \frac{1}{{1 + e^{-z}}}$ 가 시그모이드 함수 일 때
- g(z)의 함수 기울기는 $\frac{d}{{dz}}g(z)$가 된다
- 이 기울기 값은 $\frac{1}{{1 + e^{-z}}}(1 - \frac{1}{{1 + e^{-z}}})$ 공식과 같으면, 이 값은 g(z)(1-g(z))와 같아진다
예시
- z가 굉장히 큰 값인 10일 때
- g(z)의 값이 1에 가까워지는데 이 값을 함수 기울기인$\frac{d}{{dz}}g(z)$에 대입한 결과 0에 가까워지고,
똑같이 그 결과값을 g(z)(1-g(z)) 공식에도 대입한 결과 0에 가까워지는 것을 확인 할 수 있어 두개의 공식이 같아 진다고 할 수 있다
- z가 아주 작은 값이 -10일 때
- g(z)의 값이 0에 가까워지는데 이 값을 함수 기울기인$\frac{d}{{dz}}g(z)$에 대입한 결과 0에 가까워지고,
똑같이 그 결과값을 g(z)(1-g(z)) 공식에도 대입한 결과 0에 가까워지는 것을 확인 할 수 있어 두개의 공식이 같아 진다고 할 수 있다
- z가 0일 때
- g(z)는 $\frac{1}{{2}}$가 된다
- 도함수 $\frac{1}{{4}}$가 되고, 기울기 혹은 도함수의 값과 정확히 일치
추가 설명
- 도함수 $\frac{d}{{dz}}g(z)$ 대신 g'(z)라고 쓴다
- g'(z)는 입력 변수 z에 대한 g의 도함수를 의미 한다
- 신경망에서 a는 g(z)와 같고, a(1-a)로 간소화 할 수 있다.
- g'(z)가 a(1-a)와 같기 때문에 a(1-a)라고 표시 할 수 있다
장점
이미 a의 값을 계산했다면 이 공식을 써서 g'의 값을 빠르게 계산 할 수 있다
Tanh 활성화 함수
- g(z)의 함수 기울기는 $\frac{d}{{dz}}g(z)$가 된다
Tanh함수 공식
tanh(z)를 정의 하면 $\frac{e^{z}-e^{z}}{e^{z}+e^{z}}$로 할 수 있다
도함수 $\frac{d}{{dz}}g(z)$ 대신 g'(z)라고 쓴다
공식 확인
3-1 z가 10일 때
- tanh(z)는 1에 가까워 지고, tanh는 -1 ~ 1까지 범위의 값을 갖는다
- g'(z)는 0에 가까워 진다
3-2 z가 -10일 때
- tanh(z)는 -1에 가까워 진다
- g'(z)는 1에서 -1의 제곱을 뺀 0에 가까워 진다
3-3 z가 0일 때
- tanh(z)는 0이 되고, 기울기가 1이 된다
요약
a가 g(z)인 tanh(z)일 때 도함수는 g'(z) = $1 - a^2$가 된고, a의 값을 이미 계산했다면
이 공식을 사용하여 도함수도 빠르게 계산할 수 있다
ReLU and Leaky ReLU
ReLu
g(z)는 max(0,z)가 된다
z가 0보다 작을때 1
z가 0보다 크면 1
z가 0일 때
g'은 활성화 함수 g(z)의 서브 경사이기 때문에 도함수를 1이라고 표기하여 미분을 하지 않는다
Leaky ReLU
g(z)는 max(0.01z,z)가 된다
g'(z)가 0보다 작을때 0.01
g'(z)가 0보다 크면 1
z가 0일 때
g'을 0.01 이나 1 둘 중에 아무렇게 설정해도 괜찮기 때문에 도함수가 정의를 하지 않는다
참조 1
반응형
'Deep Learning > basic Neural Networks' 카테고리의 다른 글
Backpropagation Intuition (0) | 2022.12.26 |
---|---|
Gradient Descent For Neural Networks (0) | 2022.12.26 |
Why Non-linear Activation Functions (0) | 2022.12.26 |
Activation Functions (활성화 함수) (0) | 2022.12.26 |
Explanation For Vectorized Implementation (0) | 2022.12.26 |
Comments