# 미분과 역전파에서 비선형성의 필요성
## 핵심 요약
미분은 함수의 변화율을 구하는 도구로, 선형함수 ax+b를 미분하면 상수 a가 되고, 이를 다시 미분하면 0이 된다. 역전파 과정에서 이러한 상수 기울기가 여러 층을 거치면서 곱해지면 기울기 소실이나 폭발 문제가 발생한다. 이것이 딥러닝에서 비선형 활성화 함수가 필수인 수학적 이유이다.
## 미분의 기본 이해
### 미분이란 무엇인가
미분은 함수가 특정 지점에서 얼마나 빠르게 변하는지를 나타내는 변화율이다. 직관적으로는 그래프에서 어떤 점에서의 접선의 기울기와 같다.
수학적 정의: `f'(x) = lim[h→0] [f(x+h) - f(x)] / h`
### 실생활 예시로 이해하기
자동차가 시간에 따라 이동하는 거리를 생각해보자:
- 거리 함수: d(t) = 60t (시속 60km로 등속 운동)
- 속도 = 거리의 미분 = d'(t) = 60 (상수)
- 가속도 = 속도의 미분 = d''(t) = 0
이처럼 등속 운동에서는 속도가 일정하고(상수), 가속도는 0이다.
### 그래프로 보는 미분
```
y = 2x + 3의 경우:
y |
9 | •
7 | • 기울기 = 2 (모든 점에서 동일)
5 | •
3 | •
|_________ x
0 1 2 3
```
어느 점에서나 x가 1 증가하면 y는 항상 2 증가한다. 따라서 미분값은 상수 2이다.
## 선형함수의 미분 과정
### 첫 번째 미분: ax + b → a
기본 미분 공식들:
- d/dx(상수) = 0
- d/dx(x) = 1
- d/dx(ax) = a (상수배 규칙)
따라서 f(x) = ax + b를 미분하면:
f'(x) = a × 1 + 0 = a
### 구체적 예시
f(x) = 3x + 5인 경우:
- f'(x) = 3 (상수)
- x = 1에서의 기울기 = 3
- x = 100에서의 기울기 = 3
- 모든 점에서 기울기가 동일함
### 두 번째 미분: a → 0
f'(x) = a (상수함수)를 다시 미분하면:
f''(x) = 0
상수는 변하지 않으므로 변화율이 0이다.
## 역전파에서 상수의 문제점
### 연쇄법칙(Chain Rule)의 작동
신경망에서 손실함수 L에서 입력 x로의 기울기를 구할 때:
```
x → [layer1: y₁ = a₁x + b₁] → [layer2: y₂ = a₂y₁ + b₂] → ... → L
```
역전파: ∂L/∂x = ∂L/∂y₂ × ∂y₂/∂y₁ × ∂y₁/∂x = ∂L/∂y₂ × a₂ × a₁
### 구체적 예시로 이해하기
3층 선형 신경망:
```
x → [0.5x] → [0.8y₁] → [0.6y₂] → L
```
순전파:
- y₁ = 0.5x
- y₂ = 0.8y₁ = 0.8 × 0.5x = 0.4x
- y₃ = 0.6y₂ = 0.6 × 0.4x = 0.24x
역전파 (∂L/∂y₃ = 1이라 가정):
- ∂L/∂y₂ = ∂L/∂y₃ × ∂y₃/∂y₂ = 1 × 0.6 = 0.6
- ∂L/∂y₁ = ∂L/∂y₂ × ∂y₂/∂y₁ = 0.6 × 0.8 = 0.48
- ∂L/∂x = ∂L/∂y₁ × ∂y₁/∂x = 0.48 × 0.5 = 0.24
### 기울기 소실 문제
만약 10층 신경망에서 각 층의 가중치가 0.5라면:
최종 기울기 = 1 × (0.5)¹⁰ = 1 × 0.0009765 ≈ 0.001
기울기가 거의 0에 가까워져서 학습이 거의 일어나지 않는다.
### 기울기 폭발 문제
반대로 각 층의 가중치가 2라면:
최종 기울기 = 1 × (2)¹⁰ = 1 × 1024 = 1024
기울기가 너무 커져서 학습이 불안정해진다.
## 비선형 활성화 함수의 해결책
### 비선형 함수의 미분 특성
**Sigmoid 함수**: σ(x) = 1/(1 + e^(-x))
- σ'(x) = σ(x)(1 - σ(x))
- 입력값에 따라 미분값이 다름
- x = 0일 때: σ'(0) = 0.25
- x = 2일 때: σ'(2) ≈ 0.105
**ReLU 함수**: f(x) = max(0, x)
- f'(x) = 1 (if x > 0), 0 (if x ≤ 0)
- 양수 구간에서는 기울기가 1로 일정
- 기울기 소실 문제 크게 완화
### 실제 예시 비교
선형 vs 비선형 3층 네트워크:
**선형 (문제 있음):**
```
x = 2 → [0.5x] → y₁ = 1 → [0.5y₁] → y₂ = 0.5 → [0.5y₂] → y₃ = 0.25
역전파: ∂L/∂x = 0.5 × 0.5 × 0.5 = 0.125
```
**비선형 (개선됨):**
```
x = 2 → [0.5x] → ReLU(1) = 1 → [0.8×1] → ReLU(0.8) = 0.8 → [1.2×0.8] → 0.96
역전파: ∂L/∂x = 1.2 × 1 × 0.5 = 0.6 (기울기가 더 잘 보존됨)
```
## 연관 개념
이 내용은 다음 개념들과 밀접하게 연결된다:
- [[XOR 문제와 비선형성 이해]] - 왜 비선형성이 필요한지의 기초
- 활성화 함수의 종류와 특성
- 가중치 초기화 방법
- 배치 정규화와 잔차 연결
- 옵티마이저와 학습률 조정
## 실습 아이디어
1. 선형 함수들의 미분을 직접 계산해보기
2. 간단한 신경망에서 기울기 소실 현상 관찰하기
3. 다양한 활성화 함수의 미분 그래프 그려보기
4. 층 수에 따른 기울기 변화 실험하기
## 핵심 메시지
딥러닝에서 비선형 활성화 함수가 필수인 이유는 단순히 "복잡한 패턴을 학습하기 위해서"가 아니라, 역전파 과정에서 기울기가 적절히 전달되도록 하기 위한 수학적 필연성 때문이다. 선형 함수만 사용하면 아무리 깊은 네트워크를 만들어도 실질적으로는 하나의 선형 변환과 동일하며, 기울기 소실/폭발 문제로 인해 학습이 제대로 이루어지지 않는다.
## 관련 문서
- [[XOR 문제와 비선형성 이해]] - 실제 문제를 통해 본 비선형성의 필요성