Activation function은 신경망의 출력을 결정하는 식으로, 활성화 함수는 보통 비선형 함수를 사용하는데 이 비선형 함수를 MLP(Multi-Layer Perceptron) 안에 포함시키면서 모델의 표현력을 좋아지게 합니다.
1. Sigmoid
Sigmoid 함수는 모든 실수 입력 값을 0보다 크고 1보다 작은 미분 가능한 수로 변환하는 특징을 갖습니다. 모든 입력에 대하여 sigmoid는 S와 같은 형태로 미분 가능한 0~1 사이의 값을 반환하기에 Logistic Classification과 같은 분류 문제의 가설과 Cost Function에 많이 사용됩니다. Sigmoid의 반환 값은 확률형태이기 때문에 결과를 확률로 해석할 때 유용합니다.
현재는 Sigmoid보다 ReLU 함수를 많이 사용하는데 그 이유는 다음과 같습니다.
- Vanishing Gradient 현상 발생
- backpropagation을 진행하는 과정에서 기울기값이 사라지는 문제
- sigmoid 미분계수는 전체 range가 1 밑으로 gradient vanish 문제가 상당히 빠르게 일어나게 된다.
- exp 함수 사용 시 비용이 크다
2. Tanh
tanh의 특징은 다음과 같다.
- tanh 함수는 함수의 중심값을 0으로 옮겨 sigmoid의 최적화 과정이 느려지는 문제를 해결
- sigmoid 보다는 미분계수의 range가 sigmoid 보다는 낫지만, vanishing gradient 문제는 여전히 존재하게 된다.
3. ReLU
ReLu는 Rectified Linear Unit의 약자로 해석해보면 정류한 선형 유닛이라고 해석할 수 있다.
1. Sparse activation : 0이하의 입력에 대해 0을 출력함으로 부분적으로 활성화 시킬수 있다.
2. Efficient gradient propagtion : gradient의 vanishing이 없으며 gradient가 exploding 되지 않는다.
3. Efficient computation : 선형함수이므로 미분 계산이 매우 간단하다.
4. Scale-invariant : max(0, ax) = a max(0, x)
참고자료
http://taewan.kim/post/sigmoid_diff/
https://mongxmongx2.tistory.com/25
'Aiffel > Fundamental' 카테고리의 다른 글
경사하강법(Gradient Descent) (0) | 2022.01.21 |
---|---|
손실함수 (Loss Function) (0) | 2022.01.21 |
Parameter, HyperParameter (0) | 2022.01.18 |
Class 상속 (0) | 2022.01.10 |
클래스 변수와 인스턴스 변수 (0) | 2022.01.10 |
댓글