본문 바로가기
AI/Basic

대표적인 Activation Function (Sigmoid, tanh, ReLU, Leaky ReLU, ELU, PReLU, Softplus, Swish)

by 컴돈AI 2023. 11. 21.

 

 

목차

     

     

    활성화 함수(Activation Function) 정의

    • 활성화 함수(Activation Function)는 신경망에서 입력 신호의 결과에 비선형성을 추가해 변환하는 함수입니다.
    • 활성화 함수는 신경망에 필수적인 비선형성을 추가해 주어서 신경망이 더 복잡한 문제를 풀 수 있게 해 줍니다.
    • 활성화 함수(Activation Function)이라고 말하는 이유는 특정 임계값을 넘어서는 신호를 받았을 때 활성화되어 신호를 전달하는 뇌의 뉴런처럼 신경망의 각 뉴런이 어떤 입력에 대해 활성화되어야 하는지를 결정하는 중요한 역할을 하기 때문에 활성화 함수라고 부릅니다.

    활성화 함수(Activation Function) 종류

    Sigmoid Function(시그모이드 함수)

    • Sigmoid Function(시그모이드 함수)
      • 수식
      •  특징
        • 시그모이드 함수는 출력값을 0과 1 사이로 압축합니다.
        • 특히 이진 분류 문제에서 출력층의 활성화 함수로 자주 사용합니다.
      • 단점
        • 깊은 신경망에서는 그래디언트 소실(Vanishing Gradient) 문제를 일으킬 수 있습니다.

    Tanh Function(하이퍼볼릭 탄젠트 함수)

    • Tanh Function(하이퍼볼릭 탄젠트 함수)
      • 수식
      • 특징
        • tanh 함수는 출력값을 -1과 1 사이로 압축합니다.
        • 이 함수는 시그모이드 함수와 비슷하지만, 0을 중심으로 대칭이라는 점에서 차이가 있습니다.
      • 단점
        • 시그모이드 함수와 마찬가지로 깊은 신경망에서 그래디언트 소실 문제를 일으킬 수 있습니다.

    ReLU Function(렐루 함수)

    • ReLU Function(렐루 함수)
      • 수식
      • 특징
        • ReLU(Rectified Linear Unit) 함수는 비선형 함수 중 가장 간단하면서도 효과적인 함수입니다.
        • 가장 많이 쓰이는 활성화 함수입니다. 은닉층에서 어떤 활성화 함수를 써야 할지 잘 모르겠다면 그냥 ReLU를 사용하면 됩니다.
        • 음수 입력에 대해서는 0을, 양수 입력에 대해서는 그대로 값을 출력합니다.
        • 그래디언트 소실 문제를 상당 부분 해결하고, 계산 효율성이 좋습니다.
        • 0일 때 미분 불가능하니까 못쓰는 거 아닌가라고 생각할 수 있습니다. 하지만 컴퓨터에서 정확히 0이 될 확률은 굉장히 낮고, 만약 0이 된다고 하더라도 z가 0일 때 도함수가 1이나 0이라고 가정하면 잘 작동합니다.
      • 단점
        • 일부 뉴런이 죽을 수 있는 'Dying ReLU' 문제가 있습니다.
          • 순전파(Forward Propagation) 동안의 문제: 특정 뉴런이 계속해서 음수 입력만 받게 되면, ReLU 활성화 함수에 의해 해당 뉴런의 출력은 항상 0이 됩니다. 이는 뉴런이 활성화되지 않는 상태, 즉 '죽은' 상태를 의미합니다. 이러한 상태의 뉴런은 신경망의 순전파 과정에서 더 이상 유용한 기여를 하지 못하게 됩니다.
          • 역전파(Back Propagation) 동안의 문제: ReLU 함수에서 음수 입력에 대한 기울기는 0입니다. 따라서, '죽은' 뉴런에 대해서는 역전파 과정에서 가중치가 업데이트되지 않습니다. 이는 해당 뉴런의 학습이 정지됨을 의미하며, 결과적으로 신경망 전체의 학습 능력에 영향을 미칠 수 있습니다.

    Leaky ReLU Function(리키 렐루 함수)

    • Leaky ReLU Function(리키 렐루 함수)
      • 수식
        • α 는 하이퍼파라미터입니다. 하지만 일반적으로 0.01을 많이 사용합니다. (위 그래프는 LeakyReLU의 특징을 보여주기 위해 0.1로 표현하였습니다.)
      • 특징
        • ReLU의 변형으로, 음수 입력에 대해 아주 작은 기울기를 부여하여 'Dying ReLU' 문제를  어느 정도 해결합니다.
        • ReLU의 장점을 대부분 유지하면서 죽은 뉴런을 다시 활성화시킬 수 있는 기회를 제공합니다.

    ELU Function(지수 선형 단위 함수)

    • ELU Function(지수 선형 단위 함수)
      • 수식
        • 입력값이 작아질수록 출력값이 α에 점점 가까워지게 만듭니다. 즉, ELU의 출력값은 일정한 음수 값으로 포화됩니다.
        • α는 하이퍼파라미터입니다. 일반적으로 1을 사용합니다.
      • 특징
        • ELU(Exponential Linear Unit) 함수는 양수 입력에 대해서는 그대로 값을 출력하고, 음수 입력에 대해서는 지수적 감소를 통해 출력값을 제공합니다. 
        • 음수 입력에 대한 지수적 감소를 통해 'Dying ReLU' 문제를 해결합니다.
        • 큰 음수 입력값에 대해 Leaky ReLU는 점점 더 작은 값을 출력하는 반면, ELU는 일정한 값( α )으로 포화되는 차이가 있습니다.

    PReLU(Parametric ReLU)

    • PReLU(Parametric ReLU)
      • 수식
        • 여기서 알파는 Leaky ReLU와 달리 고정된 값이 아닌 학습이 가능한 파라미터입니다.
        • 따라서 알파는 학습을 통해 조정됩니다. (초기값 0.01)
      • 특징
        • Dying ReLU 문제를 개선합니다.
        • 학습 데이터에 따라 값을 조정하여, 네트워크의 성능을 향상시킬 수 있습니다.
      • 단점 
        • 학습해야 할 파라미터가 추가되므로, 모델의 복잡성이 증가합니다.

    Softplus

    • Softplus
      • 수식
      • 특징
        • ReLU의 부드러운 버전으로, 출력이 점진적으로 증가합니다.
        • 양수 입력에 대해서는 점진적으로 증가하며, 매우 큰 양수에서는 ReLU와 비슷하게 작동합니다.
        • 음수 입력에 대해서는 부드럽게 0에 근접합니다.
        • 모든 범위에서 미분 가능합니다.
      • 단점
        • 계산 복잡도가 ReLU에 비해 높습니다.

    Swish

    • Swish
      • 수식
        • 는 시그모이드 함수, 는 학습 가능한 파라미터 또는 고정된 값 (초기값 1)
        • βx가 시그모이드 입력으로 들어가고, 그 값에 x를 곱해줍니다.
        • 베타 없이도 사용이 가능합니다. ( β=1인 경우 )
      • 특징
        • ReLU보다 부드러운 곡선을 가지며, 음수 입력에 대해 작은 값을 유지합니다.
        • 넓은 범위의 입력에 대해 효과적으로 작동합니다.
        • 시그모이드 함수에 x를 곱한 아주 간단한 형태입니다.
        • 깊은 레이어를 학습시킬 때 ReLU보다 더 뛰어난 성능을 보여준다고 합니다.
      • 단점
        • 계산 복잡도가 높습니다.
        • 학습 가능한 파라미터 를 사용할 경우, 모델의 복잡성이 증가합니다.

    'AI > Basic' 카테고리의 다른 글

    신경망 기초  (0) 2023.11.10
    경사 하강법(Gradient Descent)  (1) 2023.09.28
    손실 함수(Loss Function)  (0) 2023.09.28
    손실 함수(Loss function) vs 비용 함수(Cost function)  (0) 2023.09.28
    로지스틱 회귀(Logistic Regression)  (0) 2023.09.28