[Deep Learning] 활성화 함수(Activation function)
CS/Deep Learning

[Deep Learning] 활성화 함수(Activation function)

[Deep Learning] 활성화 함수(Activation function)

 

활성화 함수(Activation Function)란 입력 신호의 총합을 출력 신호로 변환하는 함수이다. 즉 입력 값들을 받아서 출력값의 활성화를 일으키게 할 것이냐를 결정하고 그 값을 부여하는 함수이다.

 

활성화 함수를 사용하는 이유는 data를 비선형으로 바꾸기 위해서이다. 선형 시스템을 망에 적용하면 망이 깊어지지 않는다(=layer 층이 많아지지 않는다.). 다시 말해 망이 아무리 깊어지더라도, 1층의 hidden layer로 구현이 가능하다.

망이 깊어지는 것의 장점은 아래와 같다.

  1. 매개 변수가 줄어진다는 것 : 망이 깊어지면 같은 수준의 정확도의 망을 구현하더라도 매개변수가 더 적게 필요하다.
  2. 필요한 연산의 수가 줄어든다는 것 : 망을 깊게 만들면 연산 횟수가 줄얻르면서도 정확도를 유지하는 결과를 낸다.

이렇게 망이 깊어질수록 효과를 내기 때문에 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)

 

 

 

 

참고

 

https://m.blog.naver.com/PostView.nhn?blogId=worb1605&logNo=221187949828&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

 

728x90
반응형