1. Activation function이란?
activation function(활성화 함수)은 딥러닝에서 자주 볼 수 있는 단어로, network 내의 node(노드)의 출력값을 결정하는 식입니다.
노드의 입력이 모델의 prediction(예측)과 연관이 있는지를 확인하여 노드의 활성화/비활성화를 결정합니다.
따라서 이 활성화를 통해 network가 prediction에 필요한 정보를 학습합니다.
2. Activation의 종류
2.1. Linear activation function (선형 활성화 함수)
선형 활성화 함수는 이름 그대로 선형성을 가지고 입력한 값의 특정 상수배만큼의 값을 출력합니다.
위와 같은 수식들의 함수로 모두 1차 함수이며 직선 모양입니다.
0 혹은 1과 같이 출력되는 Binary step function과 비교했을 때, 입력값에 따라 다중값을 출력할 수 있다는 장점이 있습니다.
그러나 선형 활성화 함수도 문제점이 있는데요.
1) Back-propagation(역전파) 가 불가능합니다.
역전파는 학습 시 활성화 함수를 미분하며 weight를 업데이트하면서 loss를 줄이는데,
선형 함수를 미분하면 상수만 남기 때문에 입력값과는 상관이 없는 결과가 출력됩니다.
2) hidden layer로부터 얻을 수 있는 정보가 제한됩니다.
여러 개의 hidden layer의 node에서 activation function을 사용합니다.
그러나 선형 함수의 경우, 여러 번을 사용하더라도 한 번 사용하는 것과 동일한 결과를 가지기 때문에
network의 층이 깊어지는 의미가 없습니다.
이러한 단점들로 인해, 딥러닝의 network에서는 주로 Non-linear activation function(비선형 활성화 함수)을 사용합니다.
2.2. Non-Linear activation function (선형 활성화 함수)
2.2.1) sigmoid (시그모이드)
sigmoid 함수는 logistic(로지스틱) 함수라고도 불리며, s자의 형태의 함수입니다.
sigmoid는 0에서 1사이의 값을 출력하며, 역전파 시 그래디언트가 너무 커져서 학습이 제대로 이뤄지지 않는 exploding gradient 문제를 방지합니다.
또한 미분이 가능하도록 0과 1사이를 연속적으로 이어줍니다.
그러나, 미분값이 거의 0에 수렴하는 Gradient vanishing 문제가 발생하며 함수값의 중심이 0이 아닙니다.
또한 exp 연산으로 인하여 비용이 큽니다.
2.2.2) tanh (Hyperbolic tangent function)
sigmoid의 단점을 보완하기 위해 sigmoid를 transformation한 하이퍼볼릭 탄젠트를 사용하였습니다.
tanh 함수의 경우 0이 가운데인 zero-centered이기 때문에 sigmoid의 단점을 해결할 수 있으나,
이 문제를 제외한 한계점(Gradient vanishing)은 여전히 해결되지 않았습니다.
2.2.3) ReLU (Rectified Linear Unit)
개선 선형 함수라고 생각될 수 있는 ReLU는 sigmoid와 tanh 함수의 Gradient Vanishing 문제를 해결합니다.
ReLU는 sigmoid와 tanh 함수에 비하여 수렴 속도가 약 6배 이상 빠르며,
모양 자체는 선형이지만 비선형 함수로 back-propagation이 가능합니다. 또한 0이상의 값이 1이 되지 않습니다.
그러나 0이하의 값에 대해서는 gradient가 0으로 무시되기 때문에 학습하지 못합니다.
이 문제를 "Dying ReLU" 라고 합니다.
2.2.4) Leak ReLU (Rectified Linear Unit)
Leaky ReLU는 Dying ReLU 문제를 해결하기 위해 제안된 함수로, 음수 쪽에 0.01을 곱하여 적은 상수라도 남길 수 있습니다.
그러나 ReLU보다 항상 좋은 성능을 보이지는 않습니다.
2.2.5) ELU (Exponential Linear Unit)
ELU는 ReLU의 모든 장점을 포함하며 Dying ReLU 문제 역시 해결합니다.
출력값이 거의 zero-centered에 가깝다는 장점이 있습니다.
그러나 ReLU에 비해 exp를 연산해야해서 그에 대한 비용이 발생합니다.
2.2.6) softmax
softmax 함수는 입력값을 0~1사이의 값으로 모두 정규화하며 출력하고, 출력값의 총합은 항상 1이 되는 특성을 가집니다.
출력 값이 여러개이기 때문에 다중 분류 문제에서 사용할 수 있는 함수라서 출력층에서 많이 사용됩니다.
(분류하고싶은 클래스의 개수만큼 출력으로 구성합니다.)
틀린 점 있으면 댓글로 말씀해주세요.
그림 출처 및 참고 : https://missinglink.ai/guides/neural-network-concepts/7-types-neural-network-activation-functions-right/
7 Types of Activation Functions in Neural Networks: How to Choose?
Understand the evolution of different types of activation functions in neural network and learn the pros and cons of linear, step, ReLU, PRLeLU, Softmax and Swish.
missinglink.ai
'ML | DL' 카테고리의 다른 글
[Review] Automated detection of third molars and mandibular nerve by deep learning (0) | 2020.12.18 |
---|---|
[Review] LS-Net : Fast Single-Shot Line-Segment Detector (0) | 2020.07.29 |
[ML] Decision Tree : 의사 결정 나무 (1) (0) | 2020.07.21 |
[Keras] fit vs fit_generator (0) | 2020.07.15 |
[Keras] Sequential vs Functional (0) | 2020.07.15 |