AI/Deep Learning

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

byunghyun23 2023. 6. 2. 11:07

활성화 함수는 뉴럴 네트워크(neural networks)에서 이전 층(layer)의 결괏값을 다음 층으로 전달하는 역할을 합니다.

아래 그림은 네트워크에서 활성화 함수의 위치와 역할을 나타냅니다.

이러한 활성화 함수가 필요한 이유는 네트워크의 복잡도를 올려 비선형 문제를 해결하기 위함입니다.

DNN에서 활성화 함수는 비선형 함수를 사용하는데, 그 이유는 비선형 활성화 함수 없이 은닉층을 쌓는 것만으로는 비선형 문제를 해결할 수 없기 때문입니다.

그 이유는 은닉층의 수가 3이고 출력 함수를 y(x)라고 할 때, 활성화 함수 h(x)가 선형이면 합성 함수 1차 함수의 합성 함수 형태이며 이것은 1층으로 구성된 모델과 동일하기 때문입니다.

 

활성화 함수에는 여러 종류가 있지만 가장 자주 쓰는 3가지를 알아보겠습니다.

 

1. 시그모이드(sigmoid)

시그모이드는 출력값이 0~1사이의 출력값을 가지는 함수이며, 로지스틱 회귀와 같은 이진 분류에도 사용됩니다.

시그모이는 층이 많아질수록 오차역전파 수행 시 기울기가 소실되는 기울기 소실(gradient vanishing) 문제를 가지고 있습니다.

아래 그림의 왼쪽은 시그모이드 함수이며, 오른쪽은 기울기 소실과 관련된 내용입니다.

오른쪽 시그모이드 미분함수 x=0에서 최댓값 0.25를 가지고, 입력값이 점점 작거나 커질수록 기울기가 0에 수렴하여 가중치가 업데이트 되지 않기 때문에 학습에 더 이상 진전이 없어집니다. 이것을 기울기 소실 문제라고 부릅니다.

 

2. 하이퍼볼릭 탄젠트(hyperbolic tangent)

하이퍼볼릭 탄젠트는 시그모이드 함숫값의 중심을 0으로 맞추기 위해 개선된 함수로, -1~1사이의 출력값을 가집니다.

따라서 시그모이드 함수보다 학습 효율성이 좋지만, 여전히 기울기 소실 문제가 있고 지수 함수 연산이 시그모이드 함수보다 많아서 속도가 떨어집니다.

 

3. 렐루 (ReLU: Rectified Linear Unit)

렐루는 입력값이 양수인 경우만 그 값을 출력으로 가지는 함수입니다.

시그모이드, 하이퍼볼릭 탄젠트와 달리 렐루는 출력값의 범위가 넓기 때문에 특정 양수 값에 수렴하지 않습니다.

또한 양수인 경우에 입력값 자체를 반환하기 때문에, 기울기 소실 문제가 발생하지 않고, 시그모이드와 하이퍼볼릭 탄젠트보다 가중치 업데이트 속도가 매우 빠릅니다.

LeakyReLU, ELU와 함께 많이 사용되는 활성화 함수 중 하나입니다.