입력 신호의 총합을 출력 신호로 변환하는 함수를 활성화 함수(Activation function)라고 한다.
활성화 함수로 주로 비선형(non-linear) 함수를 사용한다.
선형(linear) 함수만 이용해서 deep하게 신경망 모델을 구현해도 결국 선형함수이다.
선형함수를 비선형함수로 바꾸기 위해서 활성화 함수를 사용하는 것이다.
활성화 함수들을 하나씩 살펴보자.
0. Step function
0보다 크면 1, 작으면 -1의 함수값을 갖는 함수
1. Sigmoid
0 ~ 1사이의 함수값을 갖는다.
output이 0 또는 1인 binary classification에서는 sigmoid를 출력 뉴런에 사용하는 것이 일반적이다.
backpropagation을 수행할 때 미분을 사용하는데 그래프가 뾰족하면 미분이 어렵다. 따라서 굴곡진 그래프인 sigmoid를 activation함수로 사용한다.
2. tanh (Hyperbolic Tangent)
sigmoid함수를 y축으로 늘렸다고 생각하면 된다.
-1에서 1사이의 함수값을 갖는다. (-1 < y < 1)
sigmoid함수보다 더 학습이 잘 된다.
z가 너무 크거나 너무 작으면 backpropagation시 gradient가 너무 작아서 효과적으로 모델을 학습시키지 못하는 vanishing현상이 발생할 수 있다.
3. ReLU
gradient가 사라지는 문제를 해결해주는 activation 함수이다.
z가 0보다 작으면 a값은 0, 0보다 크다면 a값은 z이다.
activation 함수로 가장 많이 활용된다.
4. Leaky ReLU
ReLU와 매우 비슷하지만 derivative(도함수)만 0.01로 다르다.
z가 0보다 작으면 a값은 0.01z, 0보다 크다면 a값은 z이다.
5. Softmax
output layer에서 classifier를 위해서 사용하는 함수
총 k개의 차원으로 이뤄진 tensor에서 각각의 분포를 normalize등을 통해서 분포의 총합이 1이 되게 한다.
최대한 분포의 차이를 크게 한다.
앞의 활성화 함수들은 입력으로 실수를 받아서 출력값으로 실수를 내놓는다.
Softmax 활성화 함수의 특징은 정규화를 하기 위해서 입력값과 출력값이 모두 벡터라는 것이다.
'🤖AI > 딥러닝' 카테고리의 다른 글
[딥러닝] Overfitting을 완화시키는 방법(1) - Regularization (0) | 2021.04.15 |
---|---|
[딥러닝] Bias와 Variance (0) | 2021.04.13 |
[딥러닝] Logistic Regression (0) | 2021.04.13 |
End-to-end deep learning (0) | 2021.04.13 |
[딥러닝] train/dev/test sets (0) | 2021.04.13 |