역전파는 어떻게 수십억 파라미터의 기울기를 한 번에 계산하는가
계산 그래프와 자동미분의 수학적 구조부터 기울기 소실·폭발의 원인과 해결책, Autograd 엔진의 내부 동작까지 딥러닝 최적화의 핵심을 추적한다.
- 01 딥러닝의 수학은 왜 극한에서 시작하는가
- 02 미분가능성의 계층 — 편미분에서 역전파까지
- 03 손실 함수의 기하학 — 헤시안이 최적화를 지배하는 방식
- 04 경사하강법의 수렴은 왜 그 속도인가
- 05 역전파는 어떻게 수십억 파라미터의 기울기를 한 번에 계산하는가
- 06 제약 최적화는 왜 AI의 핵심 언어인가
- 07 딥러닝 미분의 통일된 언어 — 야코비안에서 암묵적 미분까지
GPT-3는 1750억 개의 파라미터를 가진다. 수치 미분으로 기울기를 계산하려면 1750억 번의 forward pass가 필요하다. 그런데 실제로는 단 한 번의 forward pass와 한 번의 backward pass로 모든 기울기를 기계 정밀도로 계산한다. 어떻게 가능한가?
세 가지 미분 방법의 비용
미분을 계산하는 방법은 세 가지다. 수치 미분은 중심 차분 공식
으로 각 파라미터마다 forward pass 두 번을 요구한다. 개 파라미터면 회. ResNet-50의 2500만 파라미터라면 5천만 번의 forward pass가 필요하다. 기호 미분은 수식을 해석적으로 유도하므로 정확하지만, 복합함수가 깊어질수록 유도된 수식이 지수적으로 팽창한다. 중간 결과를 재활용하지 못한다는 근본적 한계가 있다.
**자동미분(AD)**은 계산 그래프를 따라 중간 값을 재활용하며 기울기를 축적한다. 비용은 forward pass의 상수배(보통 1.5-3배)이고, 정확도는 기계 정밀도다. 이것이 딥러닝이 존재할 수 있는 이유다.
Forward Mode vs Reverse Mode
자동미분에는 두 가지 방향이 있다.
이 계산 그래프로 표현될 때, 이면 Reverse Mode로 1회 backward pass만으로 전체 기울기 을 계산할 수 있다.
스칼라 손실 에 대해 adjoint 변수 를 정의한다. 연쇄 법칙에 의해
역위상(reverse topological) 순서로 부터 계산하면, 각 노드를 정확히 한 번씩 방문하므로 backward pass 1회로 을 얻는다. ∎
반면 Forward Mode는 벡터 에 대해 Jacobian-vector product 만을 한 번에 계산한다. 전체 Jacobian을 얻으려면 번 반복해야 한다. 딥러닝은 (파라미터 수) (출력 수 = 1)이므로 Reverse Mode가 배 유리하다.
역전파의 완전 유도
층 신경망에서 역전파의 핵심은 에러 신호 의 재귀 계산이다.
이 식의 구조를 읽으면: 윗 층의 에러 신호를 가중치 전치로 투영하고(), 현재 층 활성화 함수의 국소 기울기로 마스킹()한다. 파라미터 기울기는
로 에러 신호와 이전 층 활성화의 외적이다. Cross-entropy와 Softmax를 조합하면 특히 우아한 소거가 일어난다.
Cross-entropy 손실 와 Softmax 출력 의 조합에서
를 와 경우로 나누어 전개하면
(one-hot)이므로 성립. ∎
복잡한 Softmax-Jacobian 계산이 예측값과 레이블의 차이로 소거된다. 이는 수치적으로도 안정하고 구현도 단순하다.
기울기 소실과 폭발: 언제 무너지는가
에러 신호가 역방향으로 흐를 때 각 층에서 만큼 스케일된다. Sigmoid의 경우
이므로 100층 네트워크에서 첫 번째 층의 기울기는 최악 으로 수렴한다. 실험으로 확인하면 Sigmoid는 30층 이상에서 사실상 기울기가 0이 되지만, ReLU는 100층에서도 기울기 크기가 유지된다.
역전파에서 기울기 크기는 에 비례한다. 이 곱이 1보다 작으면 기울기 소실, 1보다 크면 기울기 폭발이다. Sigmoid의 는 소실을 구조적으로 유발한다.
현대 딥러닝의 해결책은 세 가지다. ReLU는 이므로 활성 뉴런을 통한 기울기가 1:1로 흐른다. He 초기화는 ReLU가 절반의 뉴런을 죽인다는 사실을 반영해 으로 설정, 층을 거쳐도 분산을 유지한다. Batch Normalization은 중간 활성화를 배치마다 표준화해 내부 공변량 변화를 제거한다. 실험에서 BN이 없으면 20층 네트워크의 분산이 층마다 절반씩 붕괴되지만, BN이 있으면 모든 층에서 분산이 1에 가깝게 유지된다.
트레이드오프
Reverse Mode AD는 backward pass에서 forward의 중간 활성화를 역순으로 참조해야 하므로 모든 중간 값을 저장해야 한다. 메모리 비용은 다. Gradient Checkpointing은 일부 체크포인트만 저장하고 필요시 재계산하여 메모리를 로 줄이지만, 연산 비용이 약 33% 증가한다.
Baur-Strassen 정리에 의하면 산술 회로로 표현된 의 전체 Jacobian 계산 비용은 forward pass 비용의 5배를 넘지 않는다. 딥러닝의 (스칼라 손실) 구조에서는 실제로 1.5-2배 수준이다. Forward Mode는 입력 차원이 작을 때() 유리하므로, 3D 렌더러 파라미터 미분이나 물리 시뮬레이션에 쓰인다.
정리
- 역전파 = Reverse Mode AD. 인 딥러닝 구조에서 1 forward + 1 backward로 수십억 파라미터의 기울기를 모두 계산한다.
- 에러 신호 는 연쇄 법칙을 층별로 분해한 것이다.
- Sigmoid의 기울기 소실은 설계상 필연이다. ReLU + He 초기화 + BatchNorm 조합이 100층 이상 네트워크를 가능하게 만들었다.
- Autograd 엔진의 핵심은 연산 오버로딩으로 DAG를 구성하고, 위상 역순 순회로 기울기를 축적하는 것이다. PyTorch, TensorFlow, JAX 모두 이 원리를 공유한다.
수식 한 줄 뒤에는 “모든 기울기를 한 번에 얻어야 학습이 가능하다”는 구체적인 엔지니어링 요구가 숨어 있다.