활성화 함수
학습 목표
- 활성화 함수(Activation Function)가 왜 필요한지 설명할 수 있다
- 주요 활성화 함수(Sigmoid, Tanh, ReLU, GELU, SiLU)의 수학적 특성을 비교할 수 있다
- 기울기 소실(Gradient Vanishing) 문제와 활성화 함수의 관계를 이해한다
- 상황에 맞는 활성화 함수를 선택할 수 있다
왜 중요한가
활성화 함수가 없으면 여러 층을 쌓아도 결과는 하나의 선형 변환과 동일합니다. . 활성화 함수는 **비선형성(Nonlinearity)**을 도입하여 신경망이 복잡한 함수를 학습할 수 있게 만드는 핵심 요소입니다.Sigmoid
출력 범위가 이므로 확률로 해석할 수 있어, 이진 분류의 출력층에서 사용됩니다.- 기울기 소실: 가 크면 기울기가 거의 0이 되어 학습이 멈춤
- 비대칭 출력: 출력이 항상 양수(0~1)이므로 가중치 업데이트가 비효율적
- 지수 연산: exp() 계산 비용이 상대적으로 높음
Tanh
출력 범위가 로 원점 대칭이어서 Sigmoid보다 학습이 안정적입니다. RNN 계열에서 자주 사용됩니다.ReLU (Rectified Linear Unit)
2012년 AlexNet 이후 딥러닝의 기본 활성화 함수로 자리 잡았습니다. 양수 영역에서 기울기가 항상 1이므로 기울기 소실 문제를 크게 완화합니다.- 양수 영역에서 기울기 = 1 → 기울기 소실 완화
- 계산이 매우 빠름 (단순 비교 연산)
- 희소 활성화(Sparse Activation): 일부 뉴런만 활성화
ReLU 변형들
Leaky ReLU
음수 영역에 작은 기울기()를 부여하여 Dead ReLU 문제를 완화합니다.PReLU (Parametric ReLU)
Leaky ReLU에서 를 학습 가능한 파라미터로 만든 버전입니다.GELU (Gaussian Error Linear Unit)
여기서 는 표준 정규 분포의 누적 분포 함수(CDF)입니다. 입력값에 확률적 가중치를 부여하여, 입력이 클수록 그대로 통과하고 작을수록 억제됩니다.SiLU / Swish
Google Brain이 자동 탐색(AutoML)으로 발견한 활성화 함수입니다. GELU와 유사한 형태이며, EfficientNet 등에서 사용됩니다.활성화 함수 비교
| 함수 | 수식 | 출력 범위 | 기울기 소실 | 주 사용처 |
|---|---|---|---|---|
| Sigmoid | (0, 1) | 심각 | 이진 분류 출력층 | |
| Tanh | (-1, 1) | 있음 | RNN 은닉층 | |
| ReLU | [0, ∞) | 완화 | CNN, MLP 기본 | |
| Leaky ReLU | (-∞, ∞) | 완화 | Dead ReLU 방지 | |
| GELU | ≈(-0.17, ∞) | 완화 | Transformer | |
| SiLU | ≈(-0.28, ∞) | 완화 | EfficientNet |
선택 기준
Softmax는 활성화 함수인가요?
Softmax는 활성화 함수인가요?
Softmax는 다중 클래스 분류의 출력층에서 사용되며, 여러 값을 확률 분포로 변환합니다. 엄밀히는 정규화 함수이지만, 출력층의 활성화 함수 역할을 합니다. PyTorch에서는
nn.CrossEntropyLoss가 내부적으로 Softmax를 포함하므로 별도로 적용하지 않는 것이 일반적입니다.GELU가 ReLU보다 항상 좋은가요?
GELU가 ReLU보다 항상 좋은가요?
실험적으로 Transformer에서는 GELU가 ReLU보다 좋은 성능을 보이지만, CNN에서는 ReLU가 여전히 효과적입니다. GELU는 계산 비용이 약간 더 높으므로, 모델 크기와 태스크에 따라 선택해야 합니다.
체크리스트
- 활성화 함수 없이 다층 네트워크를 쌓으면 왜 의미가 없는지 설명할 수 있다
- Sigmoid의 기울기 소실 문제를 ReLU가 어떻게 완화하는지 이해한다
- GELU가 Transformer에서 선호되는 이유를 설명할 수 있다
- 출력층과 은닉층에서 적절한 활성화 함수를 선택할 수 있다

