데이터사이언스

활성함수의 역할과 종류 이해하기

ghtis1798 2021. 3. 3. 20:20

활성 함수

📈활성 함수의 역할

activation function은 출력값을 변환해주는 역할을 하는 함수입니다.

이렇게 할 경우 input에 대한 결과값을 얼마나 출력할 지를 조절할 수 있습니다.

또한 비선형 함수를 사용하여 여러 개의 층을 쌓을 수 있도록 만들어 줍니다.

📌왜 비선형함수일까?

선형 함수를 사용할 경우 층을 쌓는 의미가 사라집니다.

그 이유를 예를 들어 보겠습니다.

$h(x)=cx$라는 선형함수 식을 활성함수로 사용할 경우

$y(x)=h(h(h(x)))$로 여러 층을 쌓은 결과가 $y=c^3x$가 됩니다.

$c^3$을 $a$로 치환하면 $y=ax$인 선형 함수로 돌아와 버립니다.

따라서 층을 구성하는 의미가 없게 되므로 반드시 비선형함수를 사용해야 합니다.

📈활성 함수의 종류

activation function의 대표적인 종류로 step, sigmoid, tanh, ReLu 등이 있습니다.

1. Step function

Step function

def step(x):
    if x > 0:
        return 1
    else:
        return 0

 

계단 함수는 0보다 크면 무조건 1, 작으면 0이 반환되는 것처럼 특정 값을 기준으로 명확하게 값이 분류되는 함수입니다.

2. Sigmoid function

Sigmoid function

$$y = \frac{1}{(1+e^{-x}))}
$$

시그모이드 함수의 특징은 다음과 같습니다.

  1. 0과 1사이의 값을 반환
  2. 함수의 평균값 0.5
  3. input이 클수록 1에 가깝고, 작을수록 0에 가까워짐

2번의 경우 파라미터 학습 속도를 낮추는 원인이 되고 tanh 함수가 대안으로 나오게 됩니다.

또한 미분 했을 시 0~0.3 값이 나오기 때문에 Gradient vanishing 문제가 발생합니다.

3. Tanh function

Tanh function

$$y = \frac{1-e^{-x}}{1+e^{-x}}$$

하이퍼블릭 탄젠트 함수는 다음의 특징을 가집니다.

  1. -1과 1사이의 값 출력
  2. 함수의 평균값 0
  3. input이 클수록 1, 작을수록 -1에 가까워짐

기울기를 보면 1과 -1로 수렴하는 속도가 Sigmoid보다 빠른 것을 알 수 있습니다.

하지만 미분 했을 경우 0~1 사이의 값을 갖기 때문에 Gradient vanishing 문제는 존재합니다.

4. ReLU function

LeRU function

$$y=max(0,x)$$

ReLU 함수는 기울기 소실 문제를 해결하기 위해 나온 함수입니다.

이 문제를 해결 할 수 있는 이유는 0이상의 값은 그대로 출력하되, 0이하의 값은 0으로 만듭니다.

이상으로 활성함수의 역할과 종류별 특징에 대해 알아보았습니다.