활성화 함수의 역할과 종류

반디·2023년 9월 21일
0

ML/DL

목록 보기
5/5

활성화 함수란?

신경망에서 퍼셉트론은 입력 신호를 받아 이를 조합하고, 다음 퍼셉트론으로 신호를 보낼지의 여부와 신호의 강도를 결정하게 됩니다. 이 때, 신호의 강도를 결정하는 방법이 활성화 함수입니다.

더불어, 딥러닝은 여러 계층의 신경망을 구성하여 보다 복잡한 함수를 만들고, 이를 통해서 다량의 데이터가 가지고 있는 복잡한 패턴도 포착할 수 있도록 하는 것입니다. 이러한 측면에서, 활성화 함수는 신경망의 복잡도를 높이는 아주 중요한 요소이기도 입니다.

로지스틱 함수와 시그모이드 함수

시그모이드 함수 일반적으로는 σ\sigma는 입력값을 0과 1 사이로 보내는 함수로 다음 성질을 만족하는 함수입니다.
1. 0<σ(x)<10 < \sigma(x) < 1 for all xRx \in \mathbb{R}
2. σ(0)=0.5\sigma(0) = 0.5
3. 단조 증가 함수 (a<bσ(a)<σ(b)a < b \rightarrow \sigma(a) < \sigma(b))
4. 연속 함수
5. 모든 점에서 미분 가능한 함수

로지스틱 함수는 시그모이드 함수의 예시로 대표적인 활성화 함수입니다.

로지스틱 회귀분석

로지스틱 회귀분석에 대해 잠시 알아보겠습니다. 로지스틱 회귀는 주로 분류 문제에 이용됩니다.
예측하고자 하는 값이 범주형 변수일 경우, 선형 회귀 모델을 적용할 수 없음을 보완하고자 (범주형 변수의 크기는 해당 변수가 가지는 의미와 상관관계가 없으므로) 제안된 모델이기도 합니다. 따라서, 로지스틱 회귀 모델에서는 입력값이 주어졌을 때, 해당 입력값이 특정 범주에 속할 확률을 반환하게 됩니다.

다음 포스팅에서 좀 더 정확히 설명해주고 있습니다. 로지스틱 회귀분석은 독립변수의 선형결합으로 종속변수인 "어떠한 사건이 발생할 확률"을 표현하고자 제안된 방식입니다.
해당 포스팅의 예시처럼, 1일 흡연하는 담배 개비 수(x)(x)과 폐암 발생확률(y)(y) 사이에 y=0.02x+0.1y = 0.02x+0.1이라는 선형 관계가 있다고 가정하겠습니다.

yx=0=0.1y_{x=0} = 0.1 이고, dy/dx=0.02dy/dx = 0.02이기 때문에, 비흡연자가 폐암에 걸릴 확률은 0.1이고 하루에 담배를 1개비씩 더 피울 때마다 폐암에 걸릴 확률이 2%씩 증가한다고 생각할 수 있습니다. 그러나, yx=60=1.3y_{x=60} = 1.3이므로, 하루에 60개의 담배를 피우는 사람은 무조건 폐암에 걸린다는 결론이 나옵니다. 확률이 1이 넘어가는 상황이므로, 확률의 공리에 어긋나는 결론입니다.

따라서, 확률의 공리에 어긋나지 않으면서 최대한 선형 모델의 성격을 띄는 모델을 찾은 것이 로지스틱 회귀분석입니다. 왜 로지스틱 회귀분석이 generalized linear model인지는 추후 정리하도록 하겠습니다.

로지스틱 함수의 형태는 다음과 같습니다.

g(x)=ex1+exg(x) = \frac{e^x}{1+e^x}

결과값이 0과 1 사이로, 확률값을 표현할 수 있습니다. (단, 로지스틱 함수 자체는 선형 함수가 아닙니다!)

활성화 함수의 종류

대표적으로 사용하는 활성화 함수인 시그모이드 함수, 하이퍼볼릭 탄젠트 함수, ReLU, Leaky ReLU에 대해 알아보겠습니다.

  1. 시그모이드 함수

σ(wx+b)=ewx+b1+ewx+b\sigma(wx+b) = \frac{e^{wx+b}}{1+e^{wx+b}}

초기에 많이 사용되었으나 vanishing gradient 문제가 있어서 잘 사용되지 않는 추세입니다.

  • vanishing gradient 문제: 층이 깊어지면서 gradient 값이 점점 소실되는 문제입니다. 시그모이드는 함수값이 0이나 1에 가까워지는 구간에서는 gradient(미분값)값이 0에 매우 가까워집니다. 따라서, 층이 깊어지면 0에 매우 가까운 기울기값을 계속 곱하는 형태가 되기때문에 기울기가 소실되는 문제가 발생할 수 있습니다.
    또한, 가중치 ww의 값이 커서 처음 시작하는 σ(wx+b)\sigma(wx+b)의 값 자체가 크다면, 역전파를 통해 ww을 업데이트할 때, ww 값 자체가 크게 변하지 않아 학습이 제대로 이루어지지 않을 수 있습니다.

  • 함수의 중심값이 0이 아니라는 문제: 시그모이드 함수의 중심값은 0.5이며, 함수값이 모두 양수입니다. 이러한 경우, 모수 추정이 어렵다는 단점이 있습니다.

  1. 하이퍼볼릭 탄젠트(tanh) 함수

tanh(x)=e2x1e2x+1tanh(x) = \frac{e^{2x}-1}{e^{2x}+1}

tanh 함수는 시그모이드와 달리 함수의 중심값이 0이므로 시그모이드보다 최적화가 빠르다는 장점이 있습니다. 그렇지만 그래프 계형에서 확인할 수 있듯이, vanishing gradient 문제가 여전히 남아있습니다.

  1. ReLU 함수

vanishing gradient 문제를 해결하기 위해 제안된 함수입니다. x=0x=0을 기준으로 해당 뉴런의 활성화 여부를 결정하기 때문에 연산량 부담이 적으나 dying ReLU 문제가 있습니다.

  • dying ReLU: 입력이 음수이면 모두 0으로 만들기 때문에, 네트워크에서 다수의 뉴런을 비활성화 상태로 만들 수 있습니다.
    dying ReLU 문제를 막기 위해 learning rate가 크지 않도록 조절해볼 수 있습니다.
  1. LeakyReLU

f(x)={xif x0axotherwisef(x) = \begin{cases} x & \text{if } x \ge 0 \\ ax & otherwise \end{cases}

(aa는 학습을 통해 결정)

dying ReLU 문제를 해결하기 위해 제안된 구조입니다. x값이 0 미만이어도 gradient 값이 0이 아니기 때문에 dying ReLU 문제에서 벗어날 수 있습니다.

참고문헌

profile
꾸준히!

0개의 댓글