활성함수

활성화 함수(Activation Function)는 인공 신경망에서 뉴런의 출력을 결정하는 함수로, 입력 신호를 받아 특정 기준에 따라 출력을 변환합니다.

활성화 함수는 입력 신호가 뉴런을 통과할 때 그 신호를 비선형적으로 변환해주며, 이를 통해 신경망이 복잡한 패턴을 학습하고, 비선형적인 문제를 해결할 수 있게 도와줍니다.

활성화 함수의 역할

  • 비선형성 도입: 인공 신경망이 단순한 선형 결합 이상의 복잡한 패턴을 학습할 수 있도록 비선형성을 도입합니다. 만약 활성화 함수가 없거나 선형 함수라면, 여러 층을 쌓아도 신경망 전체가 여전히 선형 함수가 되어버려, 복잡한 문제를 해결하기 어렵습니다.
  • 출력 범위 제한: 활성화 함수는 뉴런의 출력을 제한된 범위 내로 조절해줍니다. 예를 들어, 시그모이드 함수는 출력을 0과 1 사이로, 하이퍼볼릭 탄젠트 함수는 -1과 1 사이로 제한합니다. 이는 신경망의 안정성을 유지하는 데 도움을 줍니다.
  • 신경망의 결정 경계 형성: 활성화 함수는 신경망이 데이터를 분류할 때 결정 경계를 형성하는 데 중요한 역할을 합니다.

주요 활성화 함수 종류

단위 계단 함수 (Unit Step Function)

  • 입력이 0 이상이면 1, 그렇지 않으면 0을 출력합니다.
  • 퍼셉트론과 같은 단순한 모델에서 사용됩니다.
  • 비선형 함수지만 미분 불가능하여 현대 딥러닝에서는 잘 사용되지 않습니다.

시그모이드 함수 (Sigmoid Function)

  • 출력값을 0과 1 사이로 제한하는 S자형 함수입니다.
  • 수식: σ(x)=1+e−x1​

      σ(x)=11+e−x\sigma(x) = \frac{1}{1 + e^{-x}}

  • 비선형성을 도입하며, 주로 이진 분류 문제에서 사용됩니다.
  • 그러나 기울기 소실(vanishing gradient) 문제가 발생할 수 있습니다.

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

  • 출력값을 -1과 1 사이로 제한하는 S자형 함수입니다.
  • 수식: tanh(x)=ex+e−xex−e−x​

      tanh(x)=ex−e−xex+e−x\text{tanh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}

  • 시그모이드 함수와 비슷하지만, 출력이 0을 중심으로 대칭적이어서 기울기 소실 문제를 일부 완화할 수 있습니다.

ReLU 함수 (Rectified Linear Unit)

  • 입력이 0보다 크면 그대로 출력하고, 0보다 작으면 0을 출력하는 함수입니다.
  • 수식: f(x)=max(0,x)

      f(x)=max⁡(0,x)f(x) = \max(0, x)

  • 계산이 간단하고, 깊은 신경망에서도 잘 작동하기 때문에 현재 가장 널리 사용되는 활성화 함수입니다.
  • 그러나, 입력이 음수일 때 기울기가 0이 되어 뉴런이 학습하지 못하는 죽은 ReLU 문제가 발생할 수 있습니다.

Leaky ReLU 함수

  • ReLU 함수의 변형으로, 입력이 음수일 때도 작은 기울기를 유지하여 죽은 ReLU 문제를 완화한 함수입니다.
  • 수식: f(x)=max(αx,x), 여기서 α는 작은 상수입니다 (예: 0.01).

      f(x)=max⁡(αx,x)f(x) = \max(\alpha x, x)

      α\alpha

소프트맥스 함수 (Softmax Function)

  • 출력층에서 주로 사용되는 활성화 함수로, 여러 클래스 중 하나를 선택하는 다중 클래스 분류 문제에서 사용됩니다.
  • 각 출력값을 확률로 변환하여, 모든 출력의 합이 1이 되도록 만듭니다.
  • 수식: Softmax(xi​)=∑j​exj​exi​​

      Softmax(xi)=exi∑jexj\text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}}

활성화 함수 선택 기준

  • 문제 유형: 이진 분류에서는 시그모이드, 다중 클래스 분류에서는 소프트맥스를 주로 사용합니다.
  • 네트워크 깊이: 깊은 신경망에서는 기울기 소실 문제를 피하기 위해 ReLU나 그 변형을 선호합니다.
  • 출력 값의 범위: 출력 값이 필요한 범위에 맞는 활성화 함수를 선택합니다 (예: 0-1 범위에서는 시그모이드).

← Go home