본문 바로가기

Development/Deep Learning

[Deep Learning] 활성화 함수(Activation Function)란?

728x90

딥러닝에서 중요한 활성화 함수에 대해 정리하겠습니다.

간단하게 말하면, 입력을 받아 출력값이 활성화가 될지, 비활성이 될지를 결정하는데 사용되는 함수입니다.

활성화 함수는 어떤 것을 사용하느냐에 따라 그 출력 값이 달라지기 때문에, 적절한 활성화 함수를 사용하는 것이 중요합니다.

 

Neural Network Structure

 

데이터들의 흐름을 보면 Inputs -> Activation Function -> Output 로 이루어져 있습니다. 

활성화 함수의 종류에는 여러가지가 존재합니다.

입력 값에 따라 출력 값의 모양이 어떠한가에 따라 선형과 비선형으로 나눌 수 있습니다.

 

Kinds of Activation Function

 

그러나 신경망에서는 활성화 함수로 선형함수가 아닌 비선형함수를 사용해야 합니다.

Hidden Layer를 여러 개 다층으로 구성하고 활성화함수로 모두 선형함수를 이용하는 경우 단층으로 구성한 것과 동일하게 구성된다.

그러므로 무의미하다.

따라서 깊게 망을 구성하려면 1개 이상의 비선형함수를 이용하여야 한다.

 

Major Functions

 

활성화 함수는 크게 4가지의 부류로 나눌 수 있습니다.

1. identity

2. binary step

3. soft step (= Logistic)

4. ReLU

sigmoid class

 

Sigmoid 계열은 모두 S형태로 되어 있습니다.

모두 입력값이 증가함에 따라 결과값이 증가하는 것을 알 수 있습니다.

이를 단조 증가(Monotonic)하다고 표현합니다.

그러나 위 그래프들을 미분해보면 기울기가 계속 증가하지 않음을 알 수 있습니다.

기울기가 점차 증가하다가 0 부근에서 기울기가 점차 감소함을 알 수 있습니다.

이러한 경우 어떤 입력 값의 기울기는 증가와 감소 구간이 있어 경향은 알 수 없다로 해석합니다.

 

ReLU class

 

ReLU 계열에서 양수 입력에 대한 결과값은 모두 같습니다.

그러나 음수 입력에 대한 결과값은 다릅니다.

ReLU는 모두 0이고, Leaky ReLU는 알파값에 따라 기울기가 달라집니다.

ELU는 음수값이 0에 가까울 때는 변화가 크고, 아래처럼 0에서 멀어질수록 거의 변화가 없게 됩니다.

 

참고 자료

http://blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221017173808

728x90

'Development > Deep Learning' 카테고리의 다른 글

[Deep Learning] 데이터 표현  (0) 2020.01.19