딥러닝
Activation Function - Sigmoid, Tanh, ReLU
토킹감쟈
2022. 12. 24. 13:51
활성화 함수(Activation Function)란?
인공신경망의 은닉층에 사용되는 함수.
인공신경망에서는 이전 레이어에서 출력된 값을 입력으로 받아서 어떠한 함수를 통과시킨 후 그 결과를 다음 레이어로 출력하는 것,
이때 "어떠한 함수"를 "활성화 함수"라고 함.
활성화 함수 종류
- 비선형 활성화 함수
- 선형 활성화 함수
- 이진 활성화 함수
위의 세가지 활성화 함수 종류가 있지만, 비선형 활성화 함수를 사용하는 것이 바람직함.
그 이유는,
- 선형의 경우 → 역전파가 불가능하고, 레이어를 깊게 쌓는것의 의미가 사라짐
- 이진의 경우 → 다중 출력이 불가능함
따라서 어디선가 다 들어본 함수들은 거의 대부분 비선형. 예를들어,
- Sigmoid
- Softmax
- tanh(하이퍼볼릭탄젠트)
- ReLU
- Leaky ReLU
등등등
※직접 쓰면서 공부한 내용들을 다시 정리하는 글이기에 직접 쓰고 그린 내용들이 첨부됩니다※
1. Sigmoid
특징
- 0~1 사이의 값으로 출력함
- zero-centered되지 않음 = 중심값이 0이 아님 = 중심값이 1/2임
- input이 커질수록 output은 1에 가까워지고, input이 작아질수록 output은 0에 가까워짐
- input이 커지거나 작아질수록 gradient(기울기)는 0에 가까워짐
문제점
- gradient가 사라짐(gradient vanishing문제) → 학습성능이 떨어짐
- output값의 중심이 0이 아니기 때문에 학습속도가 느려질 수 있음
- exp() 사용시 연산비용이 커짐
2.Tanh
위의 식은 다음과 같은 간단한 계산으로 유도되는 것
특징
- output값이 -1 ~ 1 사이 값
- output의 중심이 0 = zero-centered
- input값이 작아질수록/커질수록 gradient가 0에 가까워짐
- Sigmoid보다는 학습 성능이 좋음 ← zero-centered하게 만들면서 sigmoid의 최적화 과정이 느려지는 문제를 해결함
문제점
- 기울기 소실 문제가 해결되지 않음(gradient vanishing 문제)
3.ReLU
특징
- input이 0보다 작으면 output값은 0이고, input이 0보다 크면 output값은 x.
- sigmoid와 tanh에 배해 상대적으로 학습속도가 빠름
- 연산비용이 크지 않음
문제점
- output의 중심이 0이 아 = not zero-centered
- x가 0보다 작을때 gradient가 0이 됨