활성화 함수(activation function) 정리
딥러닝 모델에서 은닉층은 입력 데이터를 여러 층을 거치며 점차 고차원적인 특징으로 추출해내는 중요한 계층이다. 이 은닉층에서는 단순한 선형 변환만으로는 학습이 불가능하기 때문에, 반드시 비선형성을 부여할 수 있는 활성화 함수(Activation Function)가 필요하다. 다음은 대표적인 활성화 함수들과 그 특징, 사용 예에 대한 정리이다.
1. ReLU (Rectified Linear Unit)
ReLU는 현재 가장 널리 사용되는 활성화 함수로, 입력이 0보다 작으면 0을 출력하고, 크면 그대로 출력한다. 수식은 f(x) = max(0, x)
로 매우 단순하여 계산 비용이 낮고, 딥러닝 모델에서 빠른 수렴을 유도한다. 하지만 음수 영역에서는 기울기가 0이 되어 뉴런이 죽는 현상(dead neuron)이 발생할 수 있다.
사용 예시:
- CNN, MLP, 대부분의 피드포워드 신경망 모델
2. Leaky ReLU
ReLU의 단점을 보완하기 위해 등장한 변형 함수다. 음수 입력도 완전히 0으로 만들지 않고, 작은 기울기(예: 0.01)를 부여하여 죽은 뉴런 문제를 방지한다. 수식은 f(x) = x (x > 0), αx (x ≤ 0)
형태이다.
사용 예시:
- 안정성이 중요한 GAN, 일부 회귀 문제 모델 등
3. ELU (Exponential Linear Unit)
ELU는 ReLU와 유사하지만, 음수 영역에서도 출력이 존재하고, 출력의 평균을 0 근처로 유지한다는 장점이 있다. 이는 학습의 수렴 속도를 향상시키고, 내부 활성값의 분포를 보다 안정적으로 만든다.
사용 예시:
- 고성능 CNN, 의료 영상 등 민감한 영역의 학습
4. Sigmoid
시그모이드는 고전적인 활성화 함수로, 출력 범위가 (0,1) 사이로 제한된다. 이는 확률처럼 해석될 수 있기 때문에 출력층(이진 분류)에 적합하다. 하지만 은닉층에서는 기울기 소실(vanishing gradient)이 발생하기 쉬워 현대 딥러닝에서는 거의 사용되지 않는다.
사용 예시:
- 이진 분류 모델의 출력층
5. Tanh (Hyperbolic Tangent)
Tanh 함수는 Sigmoid와 유사하나 출력 범위가 (-1, 1)로 더 넓고 중심이 0에 있어 학습 안정성이 높다. 이 역시 기울기 소실 문제가 있어 최근에는 주로 RNN 등에서 제한적으로 사용된다.
사용 예시:
- 순환 신경망(RNN), 감정 분석 등 연속적인 신호 처리
6. Swish
Google에서 제안한 활성화 함수로, f(x) = x * sigmoid(βx)
형태의 자기게이트(Self-gated) 구조를 가진다. 비선형성의 부드러움과 ReLU의 장점을 동시에 가지며, 특정 모델에서 ReLU보다 더 높은 성능을 보이기도 한다.
사용 예시:
- EfficientNet, 고성능 이미지 분류 모델 등
7. GELU (Gaussian Error Linear Unit)
GELU는 BERT, GPT 등의 Transformer 모델에서 사용되는 함수로, 입력을 정규분포의 누적함수에 따라 조절한다. f(x) = xΦ(x)
형태이며, Φ는 표준 정규분포의 누적분포함수이다. 계산량은 크지만 자연스러운 곡선 형태로 인해 뛰어난 성능을 발휘한다.
사용 예시:
- BERT, GPT, T5 등 자연어 처리 대형 모델
8. Softplus
Softplus는 ReLU의 부드러운 버전으로, f(x) = log(1 + e^x)
형태를 가진다. 미분 가능하고 출력이 항상 양수라는 특징이 있지만, ReLU보다 계산이 복잡하므로 실무에서는 잘 쓰이지 않는다.
사용 예시:
- 특수 목적 모델, 실험적 연구
은닉층에서 사용할 활성화 함수는 모델의 구조, 학습 데이터의 특성, 계산 효율성 등에 따라 선택해야 한다. 가장 일반적인 선택은 ReLU이며, GELU나 Swish는 성능이 중요한 최신 모델에서 점차 많이 사용되고 있다. Sigmoid나 Tanh는 더 이상 은닉층에서는 자주 사용되진 않지만, 출력층 등 특정 상황에서는 여전히 유효한 선택이다.
댓글
댓글 쓰기