연쇄 법칙(Chain Rule)

•
2026년 10월 25일 발행•2026년 10월 25일 수정
요약

합성함수의 도함수를 구성 함수 도함수의 곱으로 계산하는 미분 법칙으로, 역전파와 자동 미분의 수학적 기반

초급
미분과 편미분, 행렬 곱에 대한 기초 지식이 필요하며, 계산 그래프에서 기울기가 전달되는 과정을 이해할 수 있어야 한다.

#개념

연쇄 법칙(Chain Rule)은 합성함수의 도함수를 각 구성 함수의 도함수의 곱으로 계산하는 미분 법칙이다. 딥러닝에서 손실 함수의 기울기를 수많은 층과 연산을 거슬러 계산하는 역전파(Backpropagation)와 자동 미분(Automatic Differentiation)의 수학적 기반이 된다.
단변수 함수에서 $y = f(u)$, $u = g(x)$일 때 합성함수 $y = f(g(x))$의 도함수는 $\frac{dy}{dx} = f'(g(x)) \cdot g'(x)$, 라이프니츠 표기로는 $\frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx}$이다. 예를 들어 $y = \sin(x^2)$은 바깥 함수 $\sin u$와 안쪽 함수 $u = x^2$의 합성이므로 $\frac{dy}{dx} = \cos(x^2) \cdot 2x$가 된다. 입력의 작은 변화가 중간 변수를 거쳐 출력에 전달될 때, 각 단계의 변화율이 곱해진다는 것이 직관적 의미다.
변수가 여러 개이면 영향이 전달되는 모든 경로의 기여를 더한다. $z = f(x, y)$이고 $x = x(t)$, $y = y(t)$이면 $\frac{dz}{dt} = \frac{\partial z}{\partial x} \frac{dx}{dt} + \frac{\partial z}{\partial y} \frac{dy}{dt}$이다. 일반적으로 중간 변수 $y_1, \dots, y_m$을 거쳐 $L$이 $x_i$에 의존하면 $\frac{\partial L}{\partial x_i} = \sum_j \frac{\partial L}{\partial y_j} \frac{\partial y_j}{\partial x_i}$로 쓴다. 곱은 경로를 따라, 합은 경로들 사이에서 일어난다고 기억하면 된다.
벡터 함수로 확장하면 연쇄 법칙은 야코비 행렬(Jacobian Matrix)의 곱이 된다. $g: \mathbb{R}^n \to \mathbb{R}^m$, $f: \mathbb{R}^m \to \mathbb{R}^k$일 때 $J_{f \circ g}(x) = J_f(g(x)) \, J_g(x)$이며, 각 야코비 행렬의 $(i, j)$ 성분은 $i$번째 출력을 $j$번째 입력으로 편미분한 값이다. 연쇄 법칙이 쓰이는 형태를 정리하면 다음과 같다.
연쇄 법칙의 형태
  • 단변수 연쇄 법칙: $(f \circ g)'(x) = f'(g(x)) g'(x)$로, 스칼라 도함수의 곱이다.
  • 다변수 연쇄 법칙: 여러 중간 변수를 거치는 경우 경로별 편미분 곱을 모두 더하며, 전미분 형태로도 표현된다.
  • 야코비 행렬의 곱: 벡터 입력과 벡터 출력을 갖는 함수의 합성은 야코비 행렬의 행렬 곱으로 표현된다.
  • 텐서 연산: 행렬 곱이나 합성곱처럼 입력과 출력이 텐서인 연산도 원소를 펼쳐 보면 야코비 곱이며, 실제 구현은 이를 효율적인 텐서 연산으로 바꿔 계산한다.
함수의 계산 과정을 기본 연산을 노드로, 데이터 흐름을 간선으로 나타낸 것을 계산 그래프(Computational Graph)라 한다. 계산 그래프에서 연쇄 법칙은 지역 규칙으로 바뀐다. 각 노드는 자신의 입력에 대한 지역 미분만 알면 되고, 출력 쪽에서 전달된 기울기에 지역 미분을 곱해 입력 쪽으로 넘기며, 한 변수가 여러 곳에 쓰였으면 돌아오는 기울기를 더한다. 이 구조 덕분에 복잡한 모델도 단순한 연산의 조합으로 미분할 수 있다.
간단한 수치 예시로 $f(x, y, z) = (x + y) \cdot z$를 $x = -2$, $y = 5$, $z = -4$에서 미분해 보자. 중간 변수 $q = x + y$를 두면 순전파로 $q = 3$, $f = q \cdot z = -12$를 얻는다. 이후 출력에서 입력 방향으로 기울기를 전달하는 과정은 다음과 같다.
계산 그래프에서의 기울기 전달 예시
  • 출력 노드: 시작 기울기는 $\partial f / \partial f = 1$이다.
  • 곱셈 노드: $\partial f / \partial z = q = 3$, $\partial f / \partial q = z = -4$로, 곱셈의 지역 미분은 상대 입력값이다.
  • 덧셈 노드: $\partial q / \partial x = \partial q / \partial y = 1$이므로 연쇄 법칙에 따라 $\partial f / \partial x = -4 \cdot 1 = -4$, $\partial f / \partial y = -4$가 된다.
  • 검증: $x$를 0.001 늘리면 $f$는 약 0.004 줄어 $-4$라는 기울기와 일치하며, 이런 수치 미분 비교를 기울기 검사라 한다.
신경망 학습의 역전파는 이 과정을 층 단위로 반복한 것이다. $l$번째 층의 오차 신호 $\delta^{(l)} = \partial L / \partial z^{(l)}$를 구하면, 가중치 기울기는 $\partial L / \partial W^{(l)} = \delta^{(l)} a^{(l-1)\top}$로 계산되고, 아래층 신호는 $\delta^{(l-1)} = (W^{(l)\top} \delta^{(l)}) \odot \sigma'(z^{(l-1)})$로 전달된다. 1986년 루멜하트(David Rumelhart), 힌턴(Geoffrey Hinton), 윌리엄스(Ronald Williams)는 이 방법으로 다층 신경망이 유용한 내부 표현을 학습할 수 있음을 보여 역전파를 널리 알렸다.
연쇄 법칙을 컴퓨터로 기계적으로 적용하는 기법이 자동 미분이다. 작은 차분으로 근사하는 수치 미분은 오차가 크고 입력 수만큼 함수를 다시 계산해야 하며, 수식을 기호로 전개하는 기호 미분은 식이 폭발적으로 커질 수 있다. 자동 미분은 프로그램을 기본 연산의 나열로 보고 각 연산의 지역 미분을 연쇄 법칙으로 결합해 기계 정밀도의 정확한 도함수를 얻는다. 야코비 곱을 어느 쪽부터 계산하느냐에 따라 두 가지 모드로 나뉜다.
자동 미분의 두 모드
  • 순방향 모드(Forward Mode): 입력에서 출력 방향으로 값과 방향 도함수를 함께 전파하며, 한 번의 패스로 야코비-벡터 곱(Jacobian-Vector Product, JVP) $Jv$를 얻는다. 이중수(Dual Number)로 구현할 수 있고 입력 수가 적을 때 효율적이다.
  • 역방향 모드(Reverse Mode): 순전파 중 중간값을 기록한 뒤 출력에서 입력 방향으로 기울기를 전파하며, 한 번의 패스로 벡터-야코비 곱(Vector-Jacobian Product, VJP) $v^\top J$를 얻는다. 출력 수가 적을 때 효율적이며 역전파가 여기에 해당한다.
  • 혼합 모드: 헤세 행렬-벡터 곱처럼 2차 미분이 필요할 때는 역방향 위에 순방향을 겹치는 식으로 두 모드를 조합한다.
딥러닝은 수백만~수십억 개의 파라미터를 입력으로 받아 스칼라 손실 하나를 출력하므로, 역방향 모드가 압도적으로 유리하다. 순방향 모드로는 파라미터 수만큼 패스가 필요하지만, 역방향 모드는 한 번의 역방향 패스로 모든 파라미터의 기울기를 얻으며 그 비용은 순전파의 작은 상수배 수준이다. 대신 역방향 계산에 필요한 중간 활성값을 모두 저장해야 하므로 메모리 사용량이 크다.
벡터-야코비 곱은 야코비 행렬을 명시적으로 만들지 않는다는 점이 핵심이다. 예를 들어 크기 $n$인 벡터에 원소별 활성화 함수를 적용하면 야코비 행렬은 $n \times n$ 대각 행렬이지만, VJP는 상류 기울기와 지역 미분의 원소별 곱 $v \odot \sigma'(z)$로 끝난다. 행렬 곱 $Y = XW$의 VJP도 $\bar{X} = \bar{Y} W^\top$, $\bar{W} = X^\top \bar{Y}$처럼 행렬 곱 두 번으로 계산된다. 프레임워크는 연산마다 이런 VJP 규칙을 미리 정의해 둔다.
연쇄 법칙은 깊은 신경망의 학습 난점도 설명한다. 층이 $L$개이면 입력 쪽 기울기는 $\frac{\partial \mathcal{L}}{\partial h_0} = \frac{\partial \mathcal{L}}{\partial h_L} \prod_{l=1}^{L} \frac{\partial h_l}{\partial h_{l-1}}$처럼 야코비 행렬을 연달아 곱한 형태가 된다. 각 야코비의 크기가 1보다 작으면 곱이 지수적으로 줄어 기울기 소실(Vanishing Gradient)이, 1보다 크면 지수적으로 커져 기울기 폭주가 일어난다. 시그모이드의 미분 최댓값은 0.25이므로 여러 층을 쌓으면 소실이 쉽게 나타난다.
순환 신경망은 같은 가중치 행렬을 시점마다 반복해 곱하므로 이 현상이 특히 심하다. 파스카누(Razvan Pascanu) 등은 2013년 순환 가중치 행렬의 가장 큰 특잇값으로 기울기 소실의 충분조건과 폭주의 필요조건을 분석하고, 기울기 노름을 임계값으로 자르는 기울기 클리핑을 제안했다. 연쇄 법칙의 곱 구조를 다루기 위한 대표적인 설계 기법은 다음과 같다.
기울기 곱 구조에 대한 대응 기법
  • ReLU 계열 활성화 함수: 양수 구간의 미분이 1이어서 층을 지날 때 기울기가 줄어들지 않는다.
  • 잔차 연결(Residual Connection): $h_l = h_{l-1} + F(h_{l-1})$이면 야코비가 $I + \partial F / \partial h_{l-1}$이 되어 항등 경로로 기울기가 직접 전달된다.
  • 초기화와 정규화: Xavier·He 초기화와 배치·층 정규화는 각 층 야코비의 크기를 1 근처로 유지하도록 돕는다.
  • 게이트 구조와 기울기 클리핑: LSTM·GRU의 덧셈 경로는 소실을, 기울기 클리핑은 폭주를 완화한다.
주요 딥러닝 프레임워크는 역방향 모드 자동 미분을 내장하고 있다. PyTorch의 autograd는 requires_grad=True인 텐서에 대한 연산을 실행하면서 각 결과 텐서의 grad_fn에 역방향 함수를 연결해 동적 계산 그래프를 만들고, loss.backward()를 호출하면 그래프를 거꾸로 따라가며 VJP를 계산해 리프 텐서의 .grad에 누적한다. TensorFlow는 GradientTape로 연산을 기록하고, JAX는 grad, vjp, jvp 같은 함수 변환으로 두 모드를 모두 제공한다.
구현 시에는 몇 가지를 주의해야 한다. PyTorch는 기울기를 덮어쓰지 않고 누적하므로 매 스텝 zero_grad()로 초기화해야 하며, ReLU의 0처럼 미분이 정의되지 않는 지점에서는 관례적인 하위 기울기를 사용한다. 메모리가 부족하면 일부 활성값만 저장하고 역방향 패스에서 다시 계산하는 그래디언트 체크포인팅으로 계산량과 메모리를 맞바꿀 수 있다. 새 연산을 정의할 때는 순전파와 함께 VJP 규칙을 직접 구현하고 수치 미분으로 검증한다.

#관련 용어

역전파
연쇄 법칙으로 손실의 기울기를 출력층에서 입력층 방향으로 전달해 파라미터 기울기를 계산하는 알고리즘
자동 미분
프로그램을 기본 연산으로 분해하고 연쇄 법칙을 기계적으로 적용해 정확한 도함수를 계산하는 기법
야코비 행렬
벡터 함수의 각 출력을 각 입력으로 편미분한 값을 모은 행렬
계산 그래프
기본 연산을 노드로, 데이터 흐름을 간선으로 표현한 함수 계산 과정의 그래프
기울기 소실
역전파 과정에서 기울기가 지수적으로 작아져 앞쪽 층이나 먼 과거 시점이 학습되지 않는 현상
경사 하강법
손실 함수의 기울기 반대 방향으로 파라미터를 반복 갱신해 손실을 최소화하는 최적화 알고리즘

#직무 연관도

DA
Data Analyst
낮음
모델이 학습되는 원리와 민감도 분석의 수학적 배경을 이해하는 데 참고하는 개념
DS
Data Scientist
밀접
모델 학습의 원리를 이해하고 새 연산·손실 함수의 기울기를 유도하거나 학습 불안정 원인을 분석하는 데 필수
DE
Data Engineer
높음
사용자 정의 연산의 역전파 구현, 그래디언트 체크포인팅 등 메모리 최적화, 학습 디버깅에 필요

#사용 사례

인터넷 서비스전자상거래자율주행의료금융
개요
연쇄 법칙은 경사 기반으로 학습하는 모든 신경망 모델의 기반이므로 딥러닝을 쓰는 산업 전반에 적용된다. 인터넷 서비스와 전자상거래 분야의 추천·검색 모델, 자율주행의 인식 모델, 의료 영상 진단 모델, 금융의 위험 예측 모델은 모두 역전파로 학습되며, 입력에 대한 기울기를 이용한 모델 설명과 민감도 분석에도 활용된다.
사례
추천 모델 학습 중 특정 층의 기울기가 0에 가깝게 사라지는 문제를 발견한 팀이, 층별 기울기 노름을 연쇄 법칙의 곱 구조로 분석해 잔차 연결과 층 정규화를 추가하고 학습을 안정화한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.