13.3 연쇄 법칙(Chain Rule)과 계산 그래프
연쇄 법칙(chain rule)은 합성 함수의 미분을 계산하는 미적분학의 기본 정리이며, 신경망의 기울기 계산을 위한 학술적 기반을 제공한다. 계산 그래프(computational graph)는 함수의 평가 절차를 노드와 간선으로 표현한 그래프 구조로서, 연쇄 법칙을 자동화된 미분으로 환원하는 학술적 도구이다. 이 절에서는 연쇄 법칙의 정의, 다변수로의 일반화, 계산 그래프의 정의, 자동 미분의 두 가지 양식, 학술적 의의를 학습 순서에 따라 기술한다.
1. 연쇄 법칙의 정의
단변수 함수의 연쇄 법칙은 다음과 같이 표현된다. 함수 y = f(u)와 u = g(x)가 모두 미분 가능하면, 합성 함수 y = f(g(x))의 미분은 다음과 같다.
\frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx}
이 관계는 합성 함수의 미분이 외부 함수의 도함수와 내부 함수의 도함수의 곱으로 표현됨을 의미한다.
13.3.2 다변수로의 일반화
다변수 합성 함수의 연쇄 법칙은 다음과 같이 일반화된다. 함수 \mathbf{y} = \mathbf{f}(\mathbf{u})와 \mathbf{u} = \mathbf{g}(\mathbf{x})에 대하여, 합성 함수 \mathbf{y} = \mathbf{f}(\mathbf{g}(\mathbf{x}))의 자코비안은 다음과 같이 표현된다.
\frac{\partial \mathbf{y}}{\partial \mathbf{x}} = \frac{\partial \mathbf{y}}{\partial \mathbf{u}} \cdot \frac{\partial \mathbf{u}}{\partial \mathbf{x}}
여기서 각 자코비안 행렬은 부분 도함수의 행렬이다. 스칼라 출력의 경우 (\mathbf{y} \in \mathbb{R}), 기울기는 다음과 같이 표현된다.
\nabla_{\mathbf{x}} y = \left( \frac{\partial \mathbf{u}}{\partial \mathbf{x}} \right)^\top \nabla_{\mathbf{u}} y
이 표현은 신경망의 역전파에서 핵심적으로 사용된다.
13.3.3 계산 그래프의 정의
계산 그래프는 함수의 평가 절차를 다음의 두 종류의 노드로 표현한다.
- 입력 노드: 함수의 입력 변수
- 연산 노드: 입력 또는 다른 연산의 출력에 적용되는 기본 연산
간선은 노드 사이의 데이터 흐름을 표현한다. 이 그래프는 일반적으로 방향이 있는 비순환 그래프(directed acyclic graph, DAG)로 표현된다.
신경망의 순전파는 계산 그래프의 입력 노드에서 출력 노드로 전파되는 일련의 연산이며, 각 연산 노드의 출력은 다음 노드의 입력이 된다. 이러한 표현은 자동 미분(automatic differentiation)의 학술적 기반이 된다.
13.3.4 자동 미분의 두 양식
자동 미분은 함수의 평가 절차에 기반하여 도함수를 자동으로 계산하는 학술적 기법이다. 자동 미분은 다음의 두 양식으로 분류된다.
13.3.4.1 전향 양식(forward mode)
전향 양식은 입력 변수의 미분을 출력 변수에 도달할 때까지 순차적으로 전파한다. 입력 변수의 수가 적고 출력 변수의 수가 많은 함수에 효율적이다.
13.3.4.2 역향 양식(reverse mode)
역향 양식은 출력 변수의 미분을 입력 변수에 도달할 때까지 역순으로 전파한다. 출력 변수의 수가 적고 입력 변수의 수가 많은 함수에 효율적이다. 신경망의 학습에서는 손실 함수가 스칼라이고 매개 변수의 수가 매우 크므로 역향 양식이 학술적·실용적으로 적합하며, 이것이 역전파 알고리즘의 본질이다.
13.3.5 역향 양식의 학술적 효율성
역향 양식 자동 미분은 함수의 평가에 비례하는 시간 복잡도로 모든 입력 변수에 대한 도함수를 계산할 수 있다. 즉, 매개 변수의 수가 n인 신경망의 손실 함수에 대한 모든 매개 변수의 기울기를 계산하는 데에 함수 평가의 약 2배에서 5배 정도의 시간만이 필요하다. 이 학술적 효율성이 심층 학습의 실용화의 핵심 기반이다.
13.3.6 계산 그래프의 학술적 의의
계산 그래프는 다음의 학술적 의의를 가진다.
- 자동 미분의 일반화: 임의의 미분 가능한 함수에 대하여 도함수의 계산을 자동화한다.
- 모듈성: 복잡한 함수를 단순한 연산의 결합으로 표현한다.
- 효율적 구현: 그래프 변환과 최적화를 통하여 계산 효율을 향상시킬 수 있다.
- 동적 그래프와 정적 그래프: 동적 그래프는 매 평가마다 그래프를 새로 구성하며, 정적 그래프는 사전에 그래프를 구성하고 반복적으로 평가한다. 두 양식은 학술적·실용적 장단점을 가진다.
13.3.7 학술적 역사와 영향
자동 미분의 학술적 역사는 1960년대 Wengert의 A simple automatic derivative evaluation program (1964)에 거슬러 올라간다. 그러나 신경망 학습을 위한 효율적 자동 미분의 학술적 정립은 Rumelhart, Hinton, Williams의 Learning representations by back-propagating errors (1986)에서 이루어졌다. 이후 Theano, TensorFlow, PyTorch, JAX 등 다수의 소프트웨어 라이브러리가 자동 미분을 지원하여 심층 학습의 실용화에 기여하였다.
13.3.8 출처 및 버전 정보
- Wengert, R. E., A simple automatic derivative evaluation program, Communications of the ACM, 1964
- Rumelhart, D. E., Hinton, G. E., Williams, R. J., Learning representations by back-propagating errors, Nature, 1986
- Griewank, A., Walther, A., Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation, SIAM, 2008
- Baydin, A. G., Pearlmutter, B. A., Radul, A. A., Siskind, J. M., Automatic Differentiation in Machine Learning: a Survey, Journal of Machine Learning Research, 2018
- Goodfellow, I., Bengio, Y., Courville, A., Deep Learning, MIT Press, 2016