logistic function과 함께 sigmoid의 대표적인 함수가 바로 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의 정의는 다음과 같음.
tanh(x)=ex−e−xex+e−x=2σ(2x)−1
- σ(x)=11+e−x : logistic function.
Differentiation
hyperbolic tangent도 결국 ex에 기반한 형태이기 때문에 derivative가 원래 형태를 기반으로 만들어짐.
logistic function σ(x)를 기반으로 tanh(x)의 derivative를 유도하면 다음과 같음.
ddxtanh(x)=ddx(2σ(2x)−1)=2dσ(2x)dx=2σ(2x)(1−σ(2x))ddx(2x)=4σ(2x)(1−σ(2x))=4(1+e−2x)(1−11+e−2x)=4(1+e−2x)−4(1+e−2x)2=4e−2x(1+e−2x)2=4(ex+e−x)2=(ex+e−x)2−(ex−e−x)2(ex+e−x)2=1−(ex−e−x)2(ex+e−x)2=1−tanh2(x)=(1−tanh(x))(1+tanh(x))
다음은 tanh(x)와 derivative를 같이 그린 그림임.

DL에서의 Activation Function
- sigmoid보다 훨씬 큰 derivative (최대값이 4배 큼)를 가지기 때문에 logistic에 비해 gradinet vanishing에 저항력이 보다 큼.
- 더욱이 mean이 0.5이며 양수만을 출력하는 logistic function은 bias shift를 가지기 때문
- 수의 분포가 0을 중심으로 양과 음이 균형을 이룬 입력( [−∞,+∞])에 대해서
- 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으로 사용되는 경우도 있음. softsign(x)=x1+|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 |