logistic function과 함께 sigmoid의 대표적인 함수가 바로 $\text{tanh}$임.
- 값이 $[-1,1]$의 range를 가지며, logistic에 비해 기울기가 보다 급격하기 때문에 좀 더 빠른 수렴속도를 보임.
- 하지만, sigmoid의 일종이기 때문에 gradient vanishing에 자유롭지 못함.
- logistic보단 그래도 양호한 편이나
- sigmoid의 일종이기 때문에, 양 끝단에 갈 경우 기울기가 0에 수렴.
- RNN의 activation function으로 많이 이용된다.
- Exploding gradient가 쉽게 발생하는 RNN(Recurrent Neural Network)에서는 ReLU가 적합하지 않음.
- Weight matrix의 eigenvalue (특히, max eigenvalue)가 1보다 클 경우, time series의 길이만큼 여러번 해당 eigenvalue가 곱해지는 형태로 출력이 결정됨.
- 이는 기울기를 매우 심하게 커지게 하여 exploding gradient를 일으킴
- 물론 eigenvalue가 1보다 작으면 이는 vanishing gradient로 이어짐.
- RNN이 모든 Time Step에서 동일한 가중치 행렬을 공유하기 때문으로 각 layer의 weight matrix가 한 iteration에서 한 번만 영향을 주는 CNN등과의 차이점임.
- ReLU는 positive영역에서 기울기가 1로 계속해서 고정되면서, 결과값이 항상 0이상의 값으로 나오기 때문에 ,
지나치게 gradient가 커지는 exploding gradient에 자유롭지 못함
(ReLU는 Gradient Vanishing Problem에 강함). - 때문에 아직까지도 RNN에서는 intermediate layers의 activation function으로 사용됨
(단, RNN이 Transformer로 대체되고 있음. Transformer는 ReLU의 변형이 GeLU를 사용).
- Exploding gradient가 쉽게 발생하는 RNN(Recurrent Neural Network)에서는 ReLU가 적합하지 않음.

정의
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을 중심으로 양과 음이 균형을 이룬 입력( $[-\infty, +\infty]$)에 대해서
- 0.5를 중심으로 하는 양수 영역($[0,1]$)으로 분포가 이동함.
- 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
2024.02.26 - [.../Math] - [Math] Function의 분류: 작성중
[Math] Function의 분류: 작성중
1. Elementary Functions and Special FunctionsFunction은 크게"Elementary Functions"와"Special Functions"로 나뉜다.기본적인 수학 연산 등에서 활용되는 Elementary Functions에 대해서는 보다 세분화된 분류를 이해하는 게
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 |