Neural Network 학습 흐름 정리
Neural Network는 입력(Input)을 받아 출력(Output)을 도출합니다.
Input → Neural Network → Output
이때 Output과 실제 정답 데이터(Ground Truth)의 차이를 Loss(로스) 라고 합니다.
Loss = Output - Ground Truth
이 Loss를 미분한 값을 Backpropagation(역전파) 하면서 네트워크를 학습시킵니다.
이때 역전파로 전달되는 Loss의 미분값을 Gradient(그라디언트) 라고 부르며,
그래프 관점에서 보면 그래프의 기울기 라고 할 수 있습니다.
Input → [Layer1] → [Layer2] → [Layer3] → Output
↓
Loss 계산
↓
Gradient ← Gradient ← Gradient ← Backpropagation
Vanishing Gradient 문제
뉴럴 네트워크가 학습할 때 Gradient를 전달받아 그걸 이용해 학습하는데,
이 Gradient 값이 매우 작으면 학습이 제대로 되지 않습니다.
레이어가 1~2개 정도면 큰 문제가 없지만,
네트워크가 딥(Deep) 해질수록 Gradient가 점점 작아져 결국 0에 가까워집니다.
Output ← 0.01 ← 0.001 ← 0.0001 ← 0.00001 ...
↑
거의 0에 가까워짐
→ 학습이 안됨
Gradient가 사라지면서 네트워크 학습이 잘 안되는 현상을 Vanishing Gradient(기울기 소실) 라고 합니다.
왜 Sigmoid가 문제일까?
Sigmoid 함수의 출력은 항상 0~1 사이의 값입니다.
g(z) = 1 / (1 + e^-z)
미분값(Gradient)도 항상 0~0.25 사이의 매우 작은 값이 됩니다.
이 작은 값을 레이어마다 계속 곱하게 되면:
0.25 × 0.25 × 0.25 × 0.25 × ... → 0에 수렴
네트워크가 깊어질수록 앞쪽 레이어까지 Gradient가 거의 전달되지 않게 됩니다.
이것이 Sigmoid 함수의 근본적인 문제점입니다.
ReLU 함수
이 문제를 해결하기 위해 등장한 것이 ReLU(Rectified Linear Unit) 입니다.
f(x) = max(0, x)
- x가 양수이면 → x를 그대로 출력
- x가 음수이면 → 0을 출력
출력
↑ /
/
/
────────/──────→ x
0
ReLU가 Vanishing Gradient를 해결하는 이유
ReLU의 미분값(Gradient)을 확인해보면:
x > 0 일 때 : y = x → 기울기 = 1
x < 0 일 때 : y = 0 → 기울기 = 0
x가 양수일 때 Gradient가 1입니다.
1 × 1 × 1 × 1 × 1 × ... = 1
1은 아무리 곱해도 1이기 때문에, 네트워크가 아무리 깊어도 Gradient가 소실되지 않고 잘 전달됩니다.
Sigmoid ReLU
| 출력 범위 | 0 ~ 1 | 0 ~ ∞ |
| Gradient | 0 ~ 0.25 (항상 작음) | 0 또는 1 |
| Vanishing Gradient | 발생 | 양수 구간에서 발생 안함 |
| 계산 속도 | 느림 | 빠름 |
ReLU의 문제점 : Dead Neuron
x가 음수일 때 Gradient가 0이 되어 아예 전달되지 않는 문제가 있습니다.
x < 0 → 출력 = 0 → Gradient = 0 → 학습 안됨
한번 음수가 된 뉴런은 계속 0을 출력하며 완전히 죽어버리는(Dead Neuron) 현상이 발생합니다.
하지만 이런 문제점에도 불구하고 굉장히 간단하면서도 좋은 성능을 내기 때문에 많은 사람들이 ReLU를 사용합니다.
다양한 Activation Function
ReLU의 음수 문제를 개선한 함수들도 있습니다.
Leaky ReLU
f(x) = x (x > 0)
f(x) = α * x (x < 0)
ReLU는 음수일 때 0을 출력하지만, Leaky ReLU는 α(알파)값에 x를 곱한 작은 값을 출력합니다.
Gradient가 완전히 0이 되지 않아 Dead Neuron 문제를 완화합니다.
함수 특징
| Sigmoid | 출력 0~1, Vanishing Gradient 문제 |
| tanh | 출력 -1~1, Sigmoid보다 개선되었지만 여전히 소실 문제 |
| ReLU | 간단하고 빠름, Dead Neuron 문제 |
| Leaky ReLU | ReLU의 음수 문제 개선 |
| ELU | 음수 구간을 부드럽게 처리 |
| SELU | 자기 정규화 특성, 깊은 네트워크에 적합 |
정리
개념 설명
| Loss | Output과 실제 정답(Ground Truth)의 차이 |
| Gradient | Loss를 미분한 값, 역전파로 전달되는 기울기 |
| Vanishing Gradient | 네트워크가 깊어질수록 Gradient가 0에 수렴하는 현상 |
| ReLU | f(x) = max(0, x), 양수 구간에서 Gradient = 1 |
| Leaky ReLU | 음수 구간에서 α*x를 출력해 Dead Neuron 문제 완화 |
ReLU의 등장으로 깊은 Neural Network도 안정적으로 학습할 수 있게 되었습니다.
'AI > ML' 카테고리의 다른 글
| Weight Initialization : 웨이트 초기화의 중요성 (0) | 2026.03.25 |
|---|---|
| ReLU로 MNIST 손글씨 분류하기 (TensorFlow) (0) | 2026.03.23 |
| XOR 문제 Neural Network로 구현하기 (TensorFlow) (0) | 2026.03.21 |
| Backpropagation : 역전파 알고리즘 (0) | 2026.03.21 |
| XOR 문제와 Neural Network : 딥러닝의 시작 (0) | 2026.03.19 |