한양과학기술고등학교

에듀테크 프로젝트 대시보드

활성화 함수 (Activation Function)

활성화 함수 (Activation Function)

Sigmoid · Tanh · ReLU · Leaky ReLU · Softmax  |  신경망에 "휘어짐"을 주는 스위치

신경망의 한 층(layer)은 사실 입력을 가중합하는 것뿐입니다. 문제는 가중합, 즉 선형 변환을 아무리 여러 층 쌓아도 결과는 여전히 선형 변환 하나와 같다는 점입니다. 활성화 함수는 각 층의 출력에 비선형성을 끼워 넣어, 신경망이 곡선·경계·복잡한 패턴을 표현할 수 있게 해주는 장치입니다.

1. 왜 비선형 함수가 꼭 필요한가

두 개의 선형 층 y = W₂(W₁x + b₁) + b₂ 을 풀어보면 y = (W₂W₁)x + (W₂b₁ + b₂) 가 되어, 결국 새로운 가중치 W₂W₁ 하나짜리 선형 변환과 똑같습니다. 층을 10개, 100개를 쌓아도 마찬가지입니다. 즉 활성화 함수 없이는 아무리 깊은 신경망도 직선(또는 평면) 하나밖에 그리지 못합니다. 각 층 사이에 비선형 함수를 끼우는 순간, 층을 쌓을수록 표현할 수 있는 경계가 기하급수적으로 복잡해집니다.

2. 주요 활성화 함수 5가지

함수수식출력 범위특징 / 문제점
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 벡터 전체를 입력받아 확률 분포로 바꿈. 다중 클래스 분류의 마지막 층에서만 사용.

3. 곡선으로 비교해 보기

슬라이더로 입력 x 를 움직이면, 각 함수가 그 지점에서 어떤 값을 출력하는지 점으로 표시됩니다.

0.00
Sigmoid Tanh ReLU Leaky ReLU
…

4. Softmax — 벡터를 확률로

Softmax는 다른 함수들과 달리 숫자 하나가 아니라 여러 숫자(로짓, logit)를 동시에 입력받습니다. 각 로짓을 지수함수 eᶻ로 키운 뒤 전체 합으로 나누면, 값이 큰 로짓일수록 훨씬 큰 몫을 가져가는 확률 분포가 만들어집니다. 아래 슬라이더 3개로 로짓을 바꿔보며 확률(막대)이 어떻게 반응하는지 확인해 보세요.

5. 어떤 함수를 어디에 쓸까

은닉층(hidden layer): 대부분 ReLU 계열(ReLU, Leaky ReLU 등)을 기본값으로 사용합니다. 계산이 빠르고 깊은 망에서도 기울기가 잘 전달되기 때문입니다.
출력층(output layer): 이진 분류는 Sigmoid(확률 하나), 다중 클래스 분류는 Softmax(클래스별 확률), 회귀는 보통 활성화 함수 없이 값을 그대로 출력합니다.
Sigmoid/Tanh를 은닉층에 깊게 쌓으면? 층이 깊어질수록 기울기가 곱해지며 점점 작아져 역전파 신호가 앞쪽 층까지 거의 도달하지 못합니다. 이것이 2010년대 이전 심층 신경망 학습을 어렵게 만든 핵심 원인 중 하나였고, ReLU의 등장이 이를 크게 완화했습니다.

핵심 정리

  • 활성화 함수가 없으면 층을 아무리 쌓아도 선형 변환 하나와 같다
  • Sigmoid/Tanh는 포화되어 기울기 소실을 일으키기 쉽다
  • ReLU는 빠르고 깊은 망에 강하지만 죽은 뉴런 문제가 있다 → Leaky ReLU로 완화
  • Softmax는 벡터 입력 → 합이 1인 확률 분포, 다중 클래스 분류 출력층 전용