연쇄법칙 (Chain Rule)
쉽게 풀면
월급이 오르면 저축이 늘고, 저축이 늘면 여행 횟수가 늘어난다고 해봅시다. "월급이 1만큼 오르면 여행 횟수는 얼마나 늘어날까?"를 알고 싶다면, "월급이 오를 때 저축이 얼마나 느는지"와 "저축이 늘 때 여행이 얼마나 느는지"를 각각 구한 뒤 두 값을 곱하면 됩니다. 연쇄법칙(Chain Rule)이 바로 이 방식입니다.
여러 함수가 사슬처럼 연결되어 있을 때, 각 고리(단계)의 변화율을 따로 구해서 곱하면 전체 사슬의 변화율을 알 수 있다는 뜻입니다. 함수 f(g(x))처럼 함수 안에 함수가 들어 있는 "합성함수"를 미분할 때 반드시 필요한 도구입니다.
왜 중요한가
실제 시스템이나 모델은 대부분 여러 단계가 사슬처럼 이어져 있어서, 입력이 출력에 이르기까지 여러 함수를 거칩니다.
연쇄법칙은 이렇게 복잡하게 얽힌 관계를 한 번에 다루지 않고 각 단계별 변화율로 쪼개어 계산할 수 있게 해주기 때문에, 딥러닝의 학습 알고리즘뿐 아니라 물리 시스템 모델링, 경제·생물 분야의 다단계 인과 분석 등 여러 세부분야 논문에서 미분을 다루는 핵심 도구로 반복해서 등장합니다.
특히 모델의 구조가 깊어지고 복잡해질수록 연쇄법칙 없이는 전체 변화율을 계산 자체가 사실상 불가능하기 때문에, 관련 연구에서는 이를 당연한 전제로 깔고 논의를 전개하는 경우가 많습니다.
핵심 정리
- 한 변수 합성함수: y = f(g(x))이고 f, g가 미분 가능하면
dy/dx = f′(g(x)) · g′(x)입니다. 바깥 함수의 변화율을 안쪽 함수의 값에서 구한 뒤 안쪽 함수의 변화율을 곱합니다. 라이프니츠 표기로는dy/dx = (dy/du)(du/dx), 여기서 u = g(x). - 여러 단계: 사슬이 길어도 같습니다. y = f(g(h(x)))이면 세 변화율을 모두 곱합니다.
- 다변수: z = f(u, v)이고 u, v가 모두 t의 함수이면
dz/dt = (∂f/∂u)(du/dt) + (∂f/∂v)(dv/dt)입니다. 영향을 주는 경로마다 곱하고 경로를 모두 더합니다. 자세한 내용은 편미분을 보세요. - 기계학습에서: 신경망의 손실은 층마다의 함수가 겹친 합성함수이므로, 각 가중치의 기울기를 이 규칙으로 구합니다. 이를 층 순서대로 효율적으로 계산하는 것이 역전파이고, 프로그램이 이 계산을 자동으로 해 주는 기법 전반을 자동미분이라 부릅니다(Baydin 외, 2018).
- 엄밀한 증명과 가정은 해석학 교재(예: Rudin, 1976)에 있습니다.
예시로 보기
계산 예. y = sin(x²)을 x = 1.5에서 미분합니다. 안쪽 함수 g(x) = x², 바깥 함수 f(u) = sin u로 놓으면
- g′(x) = 2x = 3
- f′(g(x)) = cos(x²) = cos(2.25) ≈ −0.6282
- 곱:
dy/dx = 2x · cos(x²) ≈ 3 × (−0.6282) ≈ −1.8845
코드로 중심차분(h = 10−6)을 구하면 −1.884521로 해석적 값과 같습니다. 검산 방법으로 쓸 만합니다.
실생활 비유. 월급이 1 늘면 저축이 0.3 늘고(dg/dx = 0.3), 저축이 1 늘면 여행이 0.5회 늘어난다(df/dg = 0.5)면, 월급이 1 늘 때 여행은 0.3 × 0.5 = 0.15회 늘어납니다. 각 고리의 변화율을 곱하는 것입니다(가상의 값).
자주 하는 오해
- “바깥 함수의 도함수를 x에서 구하면 된다”: f′(x)가 아니라 f′(g(x))입니다. 위 예에서 cos x가 아니라 cos(x²)를 곱해야 합니다. 가장 흔한 실수입니다.
- “두 변화율을 더한다”: 사슬(합성)에서는 곱하고, 여러 경로가 있을 때 경로별 곱을 더합니다.
- “곱의 미분과 연쇄법칙은 같은 규칙이다”: 곱의 미분은 두 함수를 곱한 꼴(f·g), 연쇄법칙은 함수를 겹친 꼴(f(g))에 쓰는 규칙입니다. 식이 복잡하면 두 규칙을 함께 쓰는 경우가 많습니다.
- “깊은 신경망에서 연쇄법칙이 기울기 소실을 일으킨다”: 연쇄법칙은 곱을 계산하는 규칙일 뿐이고, 층이 깊을수록 곱해지는 값이 1보다 작으면 점점 작아지고 1보다 크면 점점 커지는 것이 기울기 소실·폭주입니다. 연쇄법칙이 잘못된 것이 아니라 곱의 성질 때문입니다.
논문에서는 이렇게 쓰입니다
실제 논문에서
이 용어를 직접 쓴 국내 논문 문장을 아직 수집하지 못했습니다. 수집되는 대로 출처와 함께 싣겠습니다.
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
이 문장은 딥러닝 모델을 학습시킬 때 각 층이 다음 층의 함수를 거쳐 최종 출력에 영향을 주므로, 맨 끝의 오차가 각 가중치에 얼마나 영향을 받았는지를 연쇄법칙으로 층별로 거슬러 올라가며 계산했다는 뜻입니다. 이 과정을 역전파라고 부릅니다.
이 문장은 물리학이나 공학 분야의 시뮬레이션 논문에서 흔히 볼 수 있는 표현으로, 어떤 결과값이 중간 매개변수를 거쳐 최종 관측값에 영향을 미칠 때, 그 영향의 크기를 연쇄법칙으로 단계별로 분해해 계산했다는 의미입니다.
이 문장은 강화학습 논문에서 정책(policy)을 학습시킬 때, 파라미터 변화가 여러 단계를 거쳐 최종 보상에 어떤 영향을 주는지를 연쇄법칙으로 추적해 그래디언트를 계산했다는 뜻입니다.
조금 더 깊게 보면
실제 논문에서 연쇄법칙은 변수가 하나가 아니라 여러 개인 경우로 확장되어 쓰이는 경우가 많은데, 이때는 각 경로별로 편미분을 구한 뒤 모두 더하는 "다변수 연쇄법칙"의 형태를 띱니다.
딥러닝 문헌에서는 이 계산 과정을 코드 수준에서 자동으로 처리해 주는 기법을 자동미분(automatic differentiation)이라고 부르며, 역전파 역시 자동미분의 한 구현 방식으로 이해할 수 있습니다.
또한 층이 매우 깊어지면 연쇄법칙으로 곱해지는 변화율 값들이 지나치게 작아지거나 커지는 현상(그래디언트 소실·폭주)이 나타날 수 있어, 이를 완화하기 위한 여러 구조적 기법이 함께 논의되는 경우가 많습니다.
주의할 점
연쇄법칙은 함수가 "겹쳐 있을 때"만 필요합니다. 함수 하나만 있는 단순한 미분 문제에는 적용할 필요가 없으며, 변수가 여러 개인 함수에서는 각 변수에 대한 편미분과 결합해서 사용하는 경우가 많습니다.
헷갈리기 쉬운 용어
미분 규칙들은 대상이 되는 함수의 구조가 다릅니다.
| 규칙 | 대상 | 결과 |
|---|---|---|
| 연쇄법칙 | 합성함수 f(g(x)) | f′(g(x)) · g′(x) |
| 곱의 미분 | 곱 f(x)g(x) | f′g + fg′ |
| 편미분 | 여러 변수 함수에서 한 변수만 변화 | 다른 변수는 상수로 고정 |
| 역전파 | 신경망 손실의 가중치 기울기 | 연쇄법칙을 층 순서대로 적용한 알고리즘 |
참고 문헌
- Rudin, W. (1976). Principles of Mathematical Analysis (3rd ed.). McGraw-Hill.
- Stewart, J. (2016). Calculus: Early Transcendentals (8th ed.). Cengage Learning.
- Baydin, A. G., Pearlmutter, B. A., Radul, A. A., & Siskind, J. M. (2018). Automatic differentiation in machine learning: A survey. Journal of Machine Learning Research, 18(153), 1–43.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.