활성화 함수 (Activation Functions)¶
개요¶
활성화 함수(Activation Function)는 신경망에 비선형성(non-linearity)을 부여하는 핵심 요소이다. 활성화 함수가 없으면 아무리 깊은 네트워크도 단순한 선형 변환에 불과하다. 적절한 활성화 함수의 선택은 학습 속도, 수렴 안정성, 그리고 최종 성능에 직접적인 영향을 미친다.
핵심 개념¶
1. Sigmoid (시그모이드)¶
- 출력 범위: \((0, 1)\)
- 도함수: \(\sigma'(x) = \sigma(x)(1 - \sigma(x))\), 최대값 0.25
| 장점 | 단점 |
|---|---|
| 확률로 해석 가능 | Vanishing gradient (포화 영역에서 기울기 \(\approx 0\)) |
| 매끄러운 미분 | 출력이 zero-centered가 아님 → zig-zag 업데이트 |
| 지수 연산으로 계산 비용 높음 |
주요 사용처: 이진 분류의 출력층, LSTM의 게이트 메커니즘
2. Tanh (하이퍼볼릭 탄젠트)¶
- 출력 범위: \((-1, 1)\)
- 도함수: \(1 - \tanh^2(x)\), 최대값 1.0
- Sigmoid와의 관계: \(\tanh(x) = 2\sigma(2x) - 1\)
| 장점 | 단점 |
|---|---|
| Zero-centered 출력 | 여전히 vanishing gradient 문제 |
| Sigmoid보다 강한 기울기 | 포화 영역 존재 |
3. ReLU (Rectified Linear Unit)¶
- 도함수: \(x > 0\)이면 1, \(x < 0\)이면 0
| 장점 | 단점 |
|---|---|
| 계산 효율적 (비교 연산만 필요) | Dying ReLU: 뉴런이 영구적으로 비활성화 |
| 양의 영역에서 기울기 소실 없음 | \(x = 0\)에서 미분 불가 |
| 희소 활성화(sparsity) → 효율적 표현 | Zero-centered가 아님 |
실용 팁: 학습률(learning rate)이 너무 크면 dying ReLU가 가속된다. 큰 음의 가중치 업데이트로 뉴런이 음의 영역에 갇히면 기울기가 0이 되어 영원히 복구되지 않는다.
4. ReLU 변형들¶
Leaky ReLU¶
보통 \(\alpha = 0.01\). 음의 영역에서도 작은 기울기를 유지하여 dying ReLU를 방지한다.
PReLU (Parametric ReLU)¶
\(\alpha\)를 학습 가능한 파라미터로 설정. 데이터에 따라 최적의 기울기를 학습한다.
ELU (Exponential Linear Unit)¶
Zero-centered에 가까운 출력을 생성하며, 음의 영역에서 부드러운 곡선을 가진다.
ReLU 변형 비교:
| 활성화 함수 | Dying ReLU | Zero-centered | 계산 비용 | 추가 파라미터 |
|---|---|---|---|---|
| ReLU | 있음 | 아님 | 매우 낮음 | 없음 |
| Leaky ReLU | 없음 | 아님 | 매우 낮음 | \(\alpha\) (고정) |
| PReLU | 없음 | 아님 | 낮음 | \(\alpha\) (학습) |
| ELU | 없음 | 거의 | 중간 (지수 연산) | \(\alpha\) (고정) |
5. GELU (Gaussian Error Linear Unit)¶
여기서 \(\Phi(x)\)는 표준 정규 분포의 CDF(누적분포함수)이다.
근사 공식: $\(\text{GELU}(x) \approx 0.5x\left(1 + \tanh\left[\sqrt{\frac{2}{\pi}}(x + 0.044715x^3)\right]\right)\)$
- 직관: 확률적 해석 — 입력값이 클수록 "통과"할 확률이 높음
- 사용처: BERT, GPT 등 Transformer 모델의 표준 활성화 함수
6. Swish / SiLU¶
\(\beta = 1\)이면 SiLU(Sigmoid Linear Unit)와 동일하다.
- 특징: 비단조(non-monotonic), 자기 게이팅(self-gating)
- 깊은 네트워크에서 ReLU보다 약간 우수한 경우가 많음 (Google Brain 연구)
7. Softmax¶
- 출력의 합 = 1 → 확률 분포로 해석 가능
- Temperature scaling: \(\text{softmax}(z_i / T)\)
- \(T\) 높으면 균등한 분포 (더 부드러움)
- \(T\) 낮으면 날카로운 분포 (더 확신)
- 수치 안정성: \(\text{softmax}(z_i - \max(\mathbf{z}))\) 사용하여 오버플로 방지
8. 기울기 소실 / 폭발 (Vanishing / Exploding Gradients)¶
깊은 네트워크에서 역전파 시 chain rule에 의해 기울기가 연쇄적으로 곱해진다.
- Vanishing: \(\left|\frac{\partial L}{\partial w}\right| \to 0\) → 초기 층이 학습되지 않음
- Exploding: \(\left|\frac{\partial L}{\partial w}\right| \to \infty\) → 학습 발산
해결책: 1. 적절한 활성화 함수 선택 (ReLU 계열) 2. 적절한 가중치 초기화 (He/Xavier) 3. 정규화 기법 (BatchNorm, LayerNorm) 4. 잔차 연결 (Residual Connection, ResNet) 5. Gradient clipping
상세 내용¶
활성화 함수 선택 가이드¶
flowchart TD
A[활성화 함수 선택] --> B{어떤 층?}
B -->|은닉층| C{아키텍처?}
B -->|출력층| D{과제?}
C -->|CNN/MLP| E[ReLU 또는 변형]
C -->|Transformer| F[GELU]
C -->|RNN/LSTM| G[Tanh]
D -->|이진 분류| H[Sigmoid]
D -->|다중 클래스| I[Softmax]
D -->|회귀| J[없음 / Linear] Sigmoid와 Tanh의 기울기 소실 문제¶
Sigmoid의 도함수 최대값이 0.25이므로, 역전파 시 층을 거칠 때마다 기울기가 최대 1/4로 줄어든다. 10층만 거쳐도 기울기가 \(0.25^{10} \approx 10^{-6}\)으로 사실상 소멸한다.
Tanh는 도함수 최대값이 1.0이지만, 포화 영역(\(|x| \gg 0\))에서는 여전히 기울기가 0에 가깝다.
ReLU의 희소 활성화 (Sparsity)¶
ReLU는 음의 입력을 모두 0으로 만들기 때문에, 네트워크의 활성화가 자연스럽게 희소(sparse)해진다. 이는: - 계산 효율성 향상 - 특징 표현의 의미 있는 분리 - 생물학적 뉴런의 활성화 패턴과 유사
언제 사용하는가¶
| 상황 | 추천 활성화 함수 |
|---|---|
| CNN/MLP 은닉층 (기본) | ReLU |
| Dying ReLU가 우려될 때 | Leaky ReLU, ELU |
| Transformer 계열 | GELU |
| RNN/LSTM 은닉층 | Tanh |
| LSTM 게이트 | Sigmoid |
| 이진 분류 출력 | Sigmoid |
| 다중 분류 출력 | Softmax |
| 회귀 출력 | Linear (없음) |
| 최신 깊은 네트워크 | Swish/SiLU, GELU |
흔한 오해와 함정¶
-
"ReLU가 항상 최고다": ReLU는 강력하지만 dying ReLU 문제가 있다. Transformer에서는 GELU가 표준이며, 상황에 따라 다른 함수가 적합할 수 있다.
-
Softmax 출력을 "확신도(confidence)"로 해석: softmax 출력이 0.99라고 해서 모델이 99% 확신한다는 뜻이 아니다. 이를 위해서는 별도의 calibration이 필요하다.
-
은닉층에 Sigmoid 사용: 깊은 네트워크에서 sigmoid를 은닉층에 사용하면 vanishing gradient가 심해진다. 은닉층에는 ReLU 계열을 사용하라.
-
수치 안정성 무시: softmax 구현 시 \(\max(\mathbf{z})\)를 빼지 않으면 \(e^{z_i}\)가 오버플로될 수 있다. 대부분의 프레임워크는 이를 내부적으로 처리하지만, 직접 구현 시 반드시 고려해야 한다.
다른 주제와의 연결¶
- 신경망 기초: 활성화 함수가 필요한 이유 (비선형성)
- 역전파: 활성화 함수의 도함수가 기울기 계산에 미치는 영향
- 가중치 초기화: 활성화 함수에 따른 초기화 전략 (Xavier vs He)
- 정규화: 활성화 분포를 안정화하는 기법
- Transformer: GELU의 사용처
- RNN/LSTM/GRU: Tanh와 Sigmoid의 게이트 메커니즘 활용