[Deep Learning] 활성화 함수(Activation function)
활성화 함수(Activation Function)란 입력 신호의 총합을 출력 신호로 변환하는 함수이다. 즉 입력 값들을 받아서 출력값의 활성화를 일으키게 할 것이냐를 결정하고 그 값을 부여하는 함수이다.
활성화 함수를 사용하는 이유는 data를 비선형으로 바꾸기 위해서이다. 선형 시스템을 망에 적용하면 망이 깊어지지 않는다(=layer 층이 많아지지 않는다.). 다시 말해 망이 아무리 깊어지더라도, 1층의 hidden layer로 구현이 가능하다.
망이 깊어지는 것의 장점은 아래와 같다.
- 매개 변수가 줄어진다는 것 : 망이 깊어지면 같은 수준의 정확도의 망을 구현하더라도 매개변수가 더 적게 필요하다.
- 필요한 연산의 수가 줄어든다는 것 : 망을 깊게 만들면 연산 횟수가 줄얻르면서도 정확도를 유지하는 결과를 낸다.
이렇게 망이 깊어질수록 효과를 내기 때문에 Deep Learning이라고 부른다.
활성화 함수의 종류에는 step function, sigmoid function, ReLU function, Softmax 등이 있다.
(Before_layer = activation function을 거치기 전
After_layer = activation function을 거친 후)
1. Sigmoid 함수
활성화 함수로 많이 사용되며, 모든 실수값을 0과 1 사이의 값으로 변환시킨다. 보통 1/2미만은 0, 1/2이상은 1에 대응되도록 한다.
after_layer = tf.sigmoid(before_layer)
단점: vanishing 문제 -> 해결: ReLU 함수
2. ReLU 함수
after_layer = tf.nn.relu(before_layer)
3. softmax 함수
after_layer = tf.nn.softmax(before_layer)
참고
728x90
반응형
'CS > Deep Learning' 카테고리의 다른 글
[Deep Learning] 손실 함수(Cost function) (0) | 2020.04.05 |
---|---|
[Deep Learning] Cross-entropy (0) | 2020.04.05 |
[Deep Learning] MLP(Multi-layer perceptrons) (0) | 2020.03.28 |
[Deep Learning] MNIST (0) | 2020.03.24 |
[Deep Learning] Tensorflow 설치 및 기본 사용법 (0) | 2020.03.24 |