AI-Study

Deep Learning : Activation Function(활성화 함수) 종류

황소의일격 2021. 6. 17. 21:17

활성화 함수 : 딥러닝 네트워크에서는 노드에 들어오는 값들에 대해 곧바로 다음 레이어로 전달하지 않고 주로 비선형 함수를 통과시킨 후 전달한다. 이때 사용하는 함수를 활성화 함수(Activation Function) 이라 부른다. 여기서 주로 비선형 함수를 사용하는 이유는 선형함수를 사용할 시 층을 깊게 하는 의미가 줄어들기 때문이다.

 

"밑바닥부터 시작하는 딥러닝" 에서 인용
"선형함수인 h(x)=cx 를 활성화함수로 사용한 3층 네트워크를 떠올려 보세요. 이를 식으로 나타내면 y(x)=h(h(h(x))) 가 됩니다. 이는 실은 y(x)=ax와 똑같은 식입니다. a=c3이라고만 하면 끝이죠. 즉, 은닉층이 없는 네트워크로 표현할 수 있습니다. 뉴럴네트워크에서 층을 쌓는 혜택을 얻고 싶다면 활성화함수로는 반드시 비선형 함수를 사용해야 합니다."

 

(1) Sigmoid

활성화 함수는 붉은 색 그래프, 활성화 함수의 미분값은 푸른색 그래프
특징: 입력 값을 0과 1 사이의 값으로 변환하여 출력한다. 
사용처: 로지스틱 리그레션, 바이너리 클래시피케이션 등에 사용된다.
한계점: 미분 함수의 최대 값이 0.5가 된다. 때문에 레이어가 깊어질 수록 그라이언트가 전달되지 않는 vanishing gradient 문제가 발생할 가능성이 있다. 이후 ReLU에 의해 많이 대체된다.

 

(2) Hard Sigmoid

활성화 함수는 붉은 색 그래프, 활성화 함수의 미분값은 푸른색 그래프
특징: 시그모이드 함수를 직선 형태로 핀 형태를 갖는다. 미분 함수가 단순하기 때문에 그라디언트 계산 속도가 빠른 장점이 있다.
사용처: 시그모이드를 적용해야 하지만 빠른 연산 속도가 필요할 때 사용한다.

 

(3) ReLU(rectified linear unit)

활성화 함수는 붉은 색 그래프, 활성화 함수의 미분값은 푸른색 그래프
특징:  0 이하의 값은 다음 레이어에 전달하지 않는다. 0이상의 값은 그대로 출력한다.
사용처: CNN을 학습시킬 때 많이 사용된다.
한계점: 한번 0 활성화 값을 다음 레이어에 전달하면 이후의 뉴런들의 출력값이 모두 0이 되는 현상이 발생합니다. 이를 dying ReLU라 부른다. 이러한 한계점을 개선하기 위해 음수 출력 값을 소량이나마 다음 레이어에 전달하는 방식으로 개선한 활성화 함수들이 등장한다.
개선한 ReLU 활성화 함수
▶LeakyReLU
▶PReLU(parametric rectified linear unit) : 설명 생략
▶ThresholdReLU(thresold rectified linear unit) : 설명 생략

 

(4) LeakyReLU

활성화 함수는 붉은 색 그래프, 활성화 함수의 미분값은 푸른색 그래프
특징: ReLU와 거의 비슷한 형태를 갖는다. 입력 값이 음수일 때 완만한 선형 함수를 그려준다. 일반적으로 알파를 0.01로 설정한다. (위 그래프에서는 시각화 편의상 알파를 0.1로 설정하였다.)
사용처: Rectifier Nonlinearities Improve Neural Network Acoustic Models

 

(5) ELU(exponential linear unit)

활성화 함수는 붉은 색 그래프, 활성화 함수의 미분값은 푸른색 그래프
특징: ReLU와 거의 비슷한 형태를 갖는다. 지수 함수를 이용하여 입력이 0 이하일 경우 부드럽게 깎아준다. 미분 함수가 끊어지지 않고 이어져있는 형태를 보인다. 별도의 알파 값을 파라미터로 받는데 일반적으로 1로 설정된다. 그 밖의 값을 가지게 될 경우 SeLU(scaled exponential linear unit)이라 부른다. 알파를 2로 설정할 경우 그래프는 아래와 같은 모습을 보인다.
사용처: Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs)

 

(6) tanh(hyperbolic tangent)

활성화 함수는 붉은 색 그래프, 활성화 함수의 미분값은 푸른색 그래프
특징: 하이퍼볼릭 함수란 쌍곡선 함수를 의미한다. 하이퍼볼릭 싸인, 하이퍼 볼릭 코싸인 함수 역시 존재한다. 하이퍼볼릭 함수에 대한 설명은 생략한다(찾기 쉽다). 아무튼 탄젠트에 해당하는 하이퍼 볼릭 함수를 tanh라 부른다.
사용처: RNN, LSTM 등을 학습시킬 때 사용된다.

 

지금까지 다양한 활성화 함수들을 살펴보았다. 우리가 흔히 알고 있었던 시그모이드, 렐루를 변형한 함수들이 많이 눈에 띄었다. 사실 이보다 더 많은 활성화 함수들이 있다. 여기에서는 "대략적으로 활성화 함수가 이런 것이다" 라는 정도에서이해하고 넘어가기를 바란다.

 

 

반응형