logistic function과 함께 sigmoid의 대표적인 함수가 바로 $\text{tanh}$임.
- 값이 $[-1,1]$의 range를 가지며, logistic에 비해 기울기가 보다 급격하기 때문에 좀 더 빠른 수렴속도를 보임.
- 하지만, sigmoid의 일종이기 때문에 gradient vanishing에 자유롭지 못함.
- logistic보단 그래도 양호.
- 양 끝단에 갈 경우, 거의 기울기가 0임
- RNN의 activation function으로 많이 이용된다.
- Exploding gradient가 쉽게 발생하는 RNN에서는 ReLU가 적합하지 않음.
- ReLU는 positive영역에서 기울기가 1로 계속해서 고정되면서, 결과값이 항상 0이상의 값으로 나오기 때문에 ,
지나치게 gradient가 커지는 exploding gradient에 자유롭지 못함
(ReLU는 Gradient Vanishing Problem에 강함). - 때문에 아직까지도 RNN에서는 intermediate layers의 activation function으로 사용됨
(단, RNN이 Transformer로 대체되고 있음. Transformer는 ReLU의 변형이 GeLU를 사용).
정의
Hyperbolic tangent의 정의는 다음과 같음.
$$\text{tanh}(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}=2\sigma(2x)-1$$
- $\sigma(x)=\frac{1}{1+e^{-x}}$ : logistic function.
Differentiation
hyperbolic tangent도 결국 $e^x$에 기반한 형태이기 때문에 derivative가 원래 형태를 기반으로 만들어짐.
logistic function $\sigma(x)$를 기반으로 $\text{tanh(x)}$의 derivative를 유도하면 다음과 같음.
$$\begin{aligned}\dfrac{d }{dx}\text{tanh}(x) &= \dfrac{d }{dx}(2\sigma(2x)-1) \\ &= 2 \dfrac{d\sigma(2x)}{dx} \\ &= 2 \sigma(2x) (1-\sigma(2x))\dfrac{d}{dx}(2x) \\ &= 4 \sigma(2x) (1-\sigma(2x)) \\ &= \dfrac{4}{(1+e^{-2x})}\left(1-\dfrac{1}{1+e^{-2x}}\right) \\ &= \dfrac{ 4(1+e^{-2x})-4}{(1+e^{-2x})^2} \\ &= \dfrac{4e^{-2x}}{(1+e^{-2x})^2}\\&=\dfrac{4}{(e^{x}+e^{-x})^2} \\ &= \dfrac{ (e^x+e^{-x})^2 - (e^x-e^{-x})^2}{(e^x+e^{-x})^2} \\ &= 1-\dfrac{(e^x-e^{-x})^2}{(e^x+e^{-x})^2} \\ &= 1-\text{tanh}^2(x)\\&=(1-\text{tanh}(x))(1+\text{tanh}(x))\end{aligned}$$
다음은 $\text{tanh}(x)$와 derivative를 같이 그린 그림임.
DL에서의 Activation Function
- sigmoid보다 훨씬 큰 derivative (최대값이 4배 큼)를 가지기 때문에 logistic에 비해 gradinet vanishing에 저항력이 보다 큼.
- 더욱이 mean이 0.5이며 양수만을 출력하는 logistic function은 bias shift (수의 분포가 0을 중심으로 양과 음이 균형을 이룬 것에서 0.5룰 중심으로 양수 영역으로 분포가 이동)를 가지기 때문에
logistic function을 activation으로 가지는 layer는 output의 variance가 커지는 문제점이 있으나
tanh의 output mean은 0이기 때문에 bais shift가 없음. - RNN등에서는 gradient exploding problem이 발생하는 경우가 많기 때문에 음(negative)의 출력을 가지는 tanh가 보다 효과적임.
이같은 이유들로 인해 RNN, LSTM등에서는 tanh를 activation function으로 사용한다.
더 읽어보면 좋은 자료
2022.12.28 - [.../Math] - [Math] Sigmoid function
[Math] Sigmoid function
S자형 곡선을 갖는 함수. (대표적인 예가 logistic function이나 sigmoid는 다음과 같이 여러 종류가 있음) Artificial Neural Network의 Artificial Neron의 Activation function으로 초창기에 많이 사용되었음. Logistic dist
dsaint31.tistory.com
https://dsaint31.me/mkdocs_site/ML/ch09/weight_initializations/
BME228
Weight Initialization (가중치 초기화) ANN이 1990년대 부활의 싹을 틔우고 있을 때에 가장 큰 문제점은 바로 Gradient Vanishing (and Exploding) Problem이었다. Weight Initialization은 이 문제를 개선하기 위한 방법으
dsaint31.me
https://dsaint31.tistory.com/581
[DL] Softsign : tanh의 유사품
hyperbolic tangent (=tanh)와 유사한 함수. tanh 대신 activation function으로 사용되는 경우도 있음. $$\text{softsign}(x)=\frac{x}{1+|x|}$$ softsign의 derivative는 다음과 같음. $$\dfrac{d}{dx}\text{softsign}(x)=\dfrac{1}{\left(1+|x|\
dsaint31.tistory.com
'Computer' 카테고리의 다른 글
[ML] Time Series 란? (0) | 2023.09.01 |
---|---|
[Keras] 현재의 Learning Rate를 확인하는 Custom Callback (0) | 2023.08.30 |
[Util] ZoomIt (0) | 2023.05.20 |
[CE] 프로그래머를 위한 (Logical) Memory 구조 : Stack, Heap, Code (0) | 2022.12.19 |
[CE] Magnetic Tape (자기테이프) (0) | 2022.12.10 |