에듀테크 프로젝트 대시보드
활성화 함수 (Activation Function)
신경망의 한 층(layer)은 사실 입력을 가중합하는 것뿐입니다. 문제는 가중합, 즉 선형 변환을 아무리 여러 층 쌓아도 결과는 여전히 선형 변환 하나와 같다는 점입니다. 활성화 함수는 각 층의 출력에 비선형성을 끼워 넣어, 신경망이 곡선·경계·복잡한 패턴을 표현할 수 있게 해주는 장치입니다.
두 개의 선형 층 y = W₂(W₁x + b₁) + b₂ 을 풀어보면
y = (W₂W₁)x + (W₂b₁ + b₂) 가 되어, 결국 새로운 가중치 W₂W₁ 하나짜리 선형 변환과
똑같습니다. 층을 10개, 100개를 쌓아도 마찬가지입니다. 즉 활성화 함수 없이는 아무리 깊은 신경망도
직선(또는 평면) 하나밖에 그리지 못합니다. 각 층 사이에 비선형 함수를 끼우는 순간, 층을
쌓을수록 표현할 수 있는 경계가 기하급수적으로 복잡해집니다.
| 함수 | 수식 | 출력 범위 | 특징 / 문제점 |
|---|---|---|---|
| Sigmoid | σ(x) = 1 / (1 + e⁻ˣ) |
(0, 1) | 확률처럼 해석하기 좋음. 하지만 |x|가 크면 기울기가 거의 0 —
기울기 소실(vanishing gradient)의 대표 원인. |
| Tanh | tanh(x) = 2σ(2x) − 1 |
(−1, 1) | 0을 중심으로 대칭이라 Sigmoid보다 학습이 잘 되지만, 여전히 양 끝에서 포화(saturation)되어 기울기 소실 문제가 남아있음. |
| ReLU | ReLU(x) = max(0, x) |
[0, ∞) | 계산이 매우 빠르고 양수 구간 기울기가 항상 1이라 깊은 망에서도 잘 학습됨. 다만 입력이 계속 음수면 뉴런이 영원히 0만 출력하는 죽은 ReLU(dying ReLU) 문제. |
| Leaky ReLU | x if x>0 else 0.01x |
(−∞, ∞) | 음수 구간에도 작은 기울기(0.01)를 남겨 죽은 뉴런 문제를 완화. |
| Softmax | softmax(z)ᵢ = eᶻⁱ / Σⱼ eᶻʲ |
(0,1), 합=1 | 벡터 전체를 입력받아 확률 분포로 바꿈. 다중 클래스 분류의 마지막 층에서만 사용. |
슬라이더로 입력 x 를 움직이면, 각 함수가 그 지점에서 어떤 값을 출력하는지 점으로 표시됩니다.
Softmax는 다른 함수들과 달리 숫자 하나가 아니라 여러 숫자(로짓, logit)를 동시에 입력받습니다.
각 로짓을 지수함수 eᶻ로 키운 뒤 전체 합으로 나누면, 값이 큰 로짓일수록 훨씬 큰 몫을
가져가는 확률 분포가 만들어집니다. 아래 슬라이더 3개로 로짓을 바꿔보며 확률(막대)이 어떻게
반응하는지 확인해 보세요.