Activation Functions (활성화 함수)

1. 개요

신경망의 뉴런이 입력값을 받아 계산한 뒤, 다음 뉴런으로 보낼 값을 결정하는 함수다. 형태를 띤다.

핵심 역할: 비선형성(Non-linearity)

활성화 함수가 없다면 아무리 깊은 신경망(Deep Network)을 쌓아도 결국 **하나의 거대한 선형 함수(Linear Transformation)**와 같아진다. 복잡한 문제를 풀기 위해선 비선형 함수인 가 필수적이다.

2. 발전 흐름

초기에는 인간의 뉴런을 모방한 Sigmoid가 쓰였으나, 학습 문제(Vanishing Gradient)로 인해 ReLU가 표준이 되었고, 최근 LLM에서는 더 부드러운 GELU/Swish가 대세다.


graph LR
    Gen1["1세대: Sigmoid / Tanh<br/>(확률/대칭)"] --> Problem["문제: Vanishing Gradient<br/>학습이 멈춤"]
    Problem --> Gen2["2세대: ReLU<br/>(단순함/효율성)"]
    Gen2 --> Problem2["문제: Dying ReLU<br/>일부 뉴런 사망"]
    Problem2 --> Gen3["3세대: Leaky ReLU / GELU / Swish<br/>(스무딩/음수 허용)"]
    
    style Gen1 fill:#E0E0E0,stroke:#757575
    style Gen2 fill:#FFF176,stroke:#FBC02D
    style Gen3 fill:#81C784,stroke:#2E7D32

3. 고전적 활성화 함수 (S-Curve)

3.1. Sigmoid Function 입력을 0과 1 사이로 압축한다.

  • 장점: 출력이 확률()로 해석될 수 있다.
  • 단점 (치명적):
    1. Vanishing Gradient: 입력이 아주 크거나 작으면 기울기(미분값)가 거의 0이 되어, 역전파 시 학습이 소멸된다.
    2. Not Zero-centered: 출력이 항상 양수라 학습 경로가 지그재그로 불안정해질 수 있다.

3.2. Hyperbolic Tangent (Tanh)

Sigmoid를 중심점 0으로 이동시킨 형태다.

  • 장점: 중심이 0이므로 Sigmoid보다 편향(Bias) 문제가 적다.
  • 단점: 여전히 양 끝단에서 기울기가 소실되는 문제는 남는다.

4. 현대적 활성화 함수 (Rectifiers)

4.1. ReLU (Rectified Linear Unit)

딥러닝 혁명을 이끈 가장 대중적인 함수다.

  • 장점:
    1. 계산 효율: 지수 연산()이 없어 매우 빠르다.
    2. Gradient 보존: 양수 구간에서 미분값이 1이므로 깊은 망에서도 학습이 잘 된다.
  • 단점 (Dying ReLU): 음수 입력이 계속 들어오면 기울기가 0이 되어 해당 뉴런이 영구적으로 죽어버릴 수 있다.

4.2. Leaky ReLU

ReLU의 “죽은 뉴런” 문제를 해결하기 위해 음수 구간에 약간의 기울기를 줬다.

  • 특징: 음수일 때도 학습이 아주 조금씩 일어난다.

4.3. Swish (Self-Gated Activation)

Google Brain(2017)이 자동 탐색(NAS)을 통해 찾아낸 함수다. “ReLU보다 깊은 층에서 더 잘 작동함” 이 입증되었다.

(보통 을 사용하며 이 경우 SiLU(Sigmoid Linear Unit) 라고도 부른다)

  • 핵심 특징:
    1. 비단조성 (Non-monotonicity): 구간에서 잠시 음수로 내려갔다가 0으로 수렴한다. 이 “살짝 휜” 음수 구간이 모델의 표현력을 높여준다.
    2. 매끄러움 (Smoothness): ReLU와 달리 모든 구간에서 미분 가능하다. 최적화 시 Loss 지형(Landscape)을 부드럽게 만들어 수렴을 돕는다.
    3. Self-Gating: 입력값 자체가 자신의 게이트() 역할을 하여 정보를 얼마나 통과시킬지 결정한다. (LSTM의 게이팅 메커니즘을 단순화한 형태)

4.4 GELU(Gaussian Error Linear Unit)

BERT, GPT, Llama 등 현재 사실상 모든 LLM의 표준 활성화 함수다. Dropout과 ReLU의 개념을 확률적으로 결합했다.

이론적 배경 (Probabilistic Intuition)

ReLU가 입력 부호에 따라 0 또는 를 내보내는 것(𝟙)을 “입력 크기에 비례한 확률로 켠다” 로 부드럽게 해석했다. 정규분포의 누적분포함수 를 사용하여 입력을 가중한다.

(입력 가 작을수록 꺼질(0이 될) 확률이 높고, 클수록 켜질(가 될) 확률이 높다.)

근사 수식 (Implementation)

실제 구현 시 (erf 함수) 계산 비용을 줄이기 위해 근사식을 사용한다. (여기서 는 수학적으로 도출된 값이 아니라 근사식 계수를 찾다가 나온 최적의 매직 넘버.)

  • 특징: Swish와 비슷하게 부근에서 부드러운 곡선을 그리며, 음수 영역에서 약간의 값을 허용한다.

5. 출력층 전용 함수 (Output Layer)

5.1. Softmax

다중 클래스 분류(Multi-class Classification)의 최종 출력으로 쓰인다. 입력받은 점수(Logits)들을 총합이 1인 확률로 변환한다.

  • 특징: 가장 큰 값의 확률을 부각(Highlight)시킨다.

6. 요약 비교표

함수수식 특징장점단점주요 사용처
Sigmoid확률 해석 가능기울기 소실이진 분류 출력층
Tanh0 중심 (Zero-centered)기울기 소실RNN, LSTM
ReLU빠름, 연산 효율적Dying ReLU, 0에서 미분 불가CNN, 일반 은닉층
Leaky ReLUDying ReLU 방지 튜닝 필요GAN 판별자
Swish (SiLU)매끄러운 미분, 비단조성지수 연산 비용 ()EfficientNet, YOLO
GELU확률적 게이팅, 최적화 안정성연산 비용 가장 높음BERT, GPT, Llama