GPT-3는 1,750억 개의 파라미터를 가진다. 그 파라미터 전부에 대한 gradient를 계산하는 데 필요한 backward pass는 단 한 번이다. forward pass 횟수가 아니라 파라미터 개수에 비례해야 할 것 같은데, 왜 한 번으로 충분한가? 그 답이 역전파(backpropagation)의 수학 안에 있다.
문제의 뿌리: Jacobian과 연쇄법칙
신경망의 각 계층은 벡터를 벡터로 매핑하는 함수다. 스칼라 미분 dxdf는 입출력이 모두 1차원일 때만 정의되고, 벡터 함수에는 Jacobian이 필요하다.
Forward-mode AD는 입력에서 출력으로 미분을 전파한다. Dual number x+x˙ϵ(ϵ2=0)을 도입해 연산을 수행하면, 결과의 비표준 부분에서 특정 입력 방향의 미분을 얻는다. n차원 입력에 대한 Jacobian을 완성하려면 n번의 forward pass가 필요하다.
Reverse-mode AD는 출력에서 입력으로 미분을 전파한다. 각 변수 xk에 대해 adjoint xˉk:=∂xk∂L를 정의하고, 역방향으로 VJP(Vector-Jacobian Product)를 누적한다.
xˉl=Jfl+1(xl)Txˉl+1
손실 L은 스칼라(m=1)이므로 backward pass 한 번으로 모든 파라미터의 gradient를 동시에 얻는다.
✎ 복잡도 비교
파라미터 n∼106, 손실 m=1인 신경망에서:
Forward-mode: O(n×T) — 입력마다 한 번씩, 106번
Reverse-mode: O(T) — 손실이 스칼라이므로 단 한 번
역전파가 106배 빠른 이유는 이것이다.
MLP 역전파 공식의 완전한 유도
L-계층 MLP에서 각 계층은 z(l)=W(l)a(l−1)+b(l), a(l)=σ(z(l))로 정의된다. error signalδ(l):=∂z(l)∂L을 도입하면 역전파가 간결해진다.
복잡한 Jacobian이 상쇄되어 예측과 정답의 차이만 남는다. 이 간단한 형태 덕분에 수치 안정성이 높고 구현이 명확하다.
트레이드오프
✎ 트레이드오프: 메모리 vs 계산
Reverse-mode AD는 backward pass에서 forward pass의 모든 활성값(activation)이 필요하다. 깊이 100, 배치 크기 1000인 네트워크는 수 GB 메모리를 요구할 수 있다.
Gradient checkpointing은 이 트레이드오프를 조절한다. 선택된 계층의 활성값만 저장하고, 필요할 때 해당 구간을 다시 계산한다. 메모리는 O(L)로 줄지만 계산 시간이 2-3배 증가한다. 배치 처리에서 행렬 연산(∂L/∂W=ΔTX)은 GPU의 GEMM 최적화를 그대로 활용하므로, 순차 처리보다 실제 실행 시간이 수십 배 빠르다.
정리
Jacobian은 벡터 함수의 미분을 행렬로 표현하고, 연쇄법칙은 그 행렬들의 곱이다.
Reverse-mode AD는 손실이 스칼라임을 이용해 단 한 번의 backward pass로 모든 gradient를 계산한다 — forward-mode 대비 파라미터 수만큼 빠르다.
MLP 역전파의 핵심은 error signal δ(l)의 재귀 전파이며, 가중치 미분은 항상 δ(l)(a(l−1))T 형태다.
Softmax + cross-entropy의 gradient y^−y는 우연이 아니라 두 함수의 Jacobian이 정확히 상쇄되는 수학적 결과다.
역전파는 단순한 “gradient 계산 알고리즘”이 아니다. 손실의 스칼라 구조를 exploit해 계산 복잡도를 극적으로 줄인 설계 결정이다.