2.4 Revisiting multivariable calculus, Part 2: Vector-valued functions
주제
- 다변수 미적분 복습 2: 벡터 값 함수
(Revisiting multivariable calculus, Part 2: Vector-valued functions)
핵심 내용
- 벡터 값을 내는 함수의 미분(야코비안, Jacobian) 개념을 정리하고, 선형 연산자 관점에서 해석한다
(Review the differentiation of vector-valued functions—Jacobian matrices—and reinterpret them as linear operators.)
세부 내용
- 야코비안(Jacobian) 정의
- f:Rn→Rm형태의 함수에서, 미분 결과는 m×n크기의 야코비안 행렬(Jacobian matrix)이 됨.
- 각 원소는 Jij=∂xj∂fi(i번째 출력, j번째 입력).
- 선형 근사(Linear approximation)
- 임의의 입력 변화 dx에 대해 출력 변화 df=Jdx로 근사.
- 예시
-f(x)=Ax(A: 상수 행렬)일 때, f′(x)=A, 즉 A 자체가 야코비안.
- 미분 규칙
- 합의 미분(Sum rule): (g+h)′=g′+h′
- 곱의 미분(Product rule): (gh)′=g′h+gh′(행렬/벡터의 경우 곱셈 순서 주의)
- 실제 계산
- 벡터 함수의 미분은 야코비안 행렬로 표현되고, 입력 변화에 대한 출력의 1차 근사로 사용됨.
2.5 The Chain Rule
주제
- 연쇄법칙(Chain Rule)과 그 일반화
(The Chain Rule and its generalization)
핵심 내용
- 함수의 합성에 대한 미분 규칙을 다변수 및 행렬 함수에 확장한다
(Generalize the chain rule for compositions of functions to multivariable and matrix functions.)
세부 내용
- 연쇄법칙(Chain rule) 공식
- f(x)=g(h(x))일 때,
f′(x)=g′(h(x))⋅h′(x)(야코비안 행렬의 곱)
- 곱셈 순서에 주의: 출력에서 입력 방향(왼쪽에서 오른쪽)으로 곱함.
- 행렬 크기와 곱셈
- g′:m×p, h′:p×n이면, f′:m×n
- 연쇄법칙의 계산 비용
- 곱셈 순서(왼→오, 오→왼)에 따라 계산 효율이 크게 달라짐.
- 입력이 많고 출력이 적을 때(reverse mode, 역전파/backpropagation)가 효율적.
- 출력이 많고 입력이 적을 때(forward mode)가 효율적.
- 예시
- f(x)=a(b(c(x)))일 때,
f′(x)=a′(b(c(x)))⋅b′(c(x))⋅c′(x)
- 실제 응용
- 신경망, 최적화 등에서 연쇄법칙은 역전파(backpropagation)와 자동 미분(automatic differentiation)의 핵심.
2.6 Beyond Multi-Variable Derivatives
주제
- 다변수 미분을 넘어: 일반 벡터 공간에서의 미분
(Beyond multi-variable derivatives: Differentiation in general vector spaces)
핵심 내용
- 입력과 출력이 행렬, 함수 등 더 일반적인 벡터 공간에 속하는 함수의 미분 개념을 확장한다
(Extend the concept of derivatives to functions between general vector spaces, such as matrices or functions.)
세부 내용
- 행렬 함수의 미분 예시
- f(A)=A3의 미분:
df=dA⋅A2+A⋅dA⋅A+A2⋅dA
- f(A)=A−1의 미분:
df=−A−1dAA−1
- 미분 결과의 형태
- 입력과 출력이 모두 행렬이면 미분 결과는 4차원 배열(텐서) 또는 벡터화(vectorization)된 행렬이 될 수 있음.
- 선형 연산자 관점
- 미분 결과를 일반적인 선형 연산자로 해석하고, 필요에 따라 야코비안 행렬 등으로 표현 가능.
- 확장성
- 이러한 일반화는 텐서, 함수 공간 등 다양한 수학적 구조로 확장 가능.
주요 영어 표현
- Jacobian matrix
- Chain rule
- Linear operator
- Reverse mode (backpropagation)
- Forward mode
- Vectorization
- General vector space
스터디 내용 정리
"미분 가능하다"의 정의가 무엇인가?
f(x+delta x)-f(x) = f'(x)[delta x] + o(||delta x||)를 만족하는 derivative f'(x), o(||delta x||)가 존재한다.
다시말해, delta x->0 일 때
df = f(x+dx)-f(x)=f'(x)[dx]
df : |R ^m 의 vector
f'(x) = linear transformation
dx : |R^n 의 vector
Jacobian matrix : mn의 크기
df = J dot product dx (행렬과 벡터의 곱셈=선형변환)
J_1 = f_1의 gradient^T
J_n = f_1의 gradient^T
방향 도함수(directional derivative)와 편함수
f:Rn→Rm의 N-방향 벡터에 대한 도함수는
lim h->0 f(x+h)-f(x)/h
f:Rn→Rm이 x=a에서 미분이 가능하면, 임의의 v∈Rn에 대해 v-방향도함수가 존재하고, f의 x=a에서 야코비안 행렬을 Jf(a)라 하면,
OvF(a)=Jf(a)v
f:미분가능 은 모든 점에서 편미분값이 존재한다는 조건의 필요충분 조건이 아니다.
f가 x=a 에서 편미분값이 존재하고, 편도함수가 연속함수이면 f는 x=a에서 미분가능하다. (=일급함수를 지칭함.)
$f(x)=Ax 의 Jacobian은?
f′(x)=A
생각해보면, 어떤 함수를 미분하는 것은 자기 자신을 가장 닮은 선형 근사를 찾는 것이다. 따라서, 직관적으로 생각했을 때 f(x)의 야코비안은 A인 것이다.

위의 그림은 아래의 코드를 사용해
야코비안 개념을 이해하기 쉽도록 시각화 한 것이다.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 원래 곡면 정의
x = y = np.linspace(0, 2, 30)
X, Y = np.meshgrid(x, y)
Z = X**2 + Y**2
# 접평면 정의 (야코비안 기반)
x0, y0 = 1, 1
z0 = x0**2 + y0**2 # z=2
dfdx, dfdy = 2*x0, 2*y0 # 2, 2
# 평면 근사
Z_tangent = z0 + dfdx*(X - x0) + dfdy*(Y - y0)
# 플롯
fig = plt.figure(figsize=(10,7))
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, alpha=0.6, cmap='viridis', label='곡면')
ax.plot_surface(X, Y, Z_tangent, alpha=0.4, color='red', label='접평면')
ax.scatter(x0, y0, z0, color='black', s=50)
ax.set_title("곡면과 접평면: 야코비안 기반 선형 근사")
plt.show()
| 개념 | 설명 |
|---|
| 야코비안 | 다변수 함수의 기울기 정보 모은 행렬 (벡터 미분) |
| 선형 근사 | 어떤 점에서의 야코비안을 통해 함수의 값을 1차 함수로 근사 |
| 시각적 의미 | 곡면의 접평면으로 근사하는 것 |
| 응용 | 뉴턴 방법, 최적화, 로봇 제어, 3D 변환 등 |
결국, 국소 모델링에 중요한 야코비안 행렬은 역전파, 수치 최적화(경사 하강법)에 중요한 것이다.
행렬의 곱셈법칙 그리고 연쇄법칙의 계산 비용
계산의 크기가 달라지기 때문에 (AB)C 의 계산 순서를 가진다. input(feature)의 차원이 output(e.g. class type)의 차원보다 압도적으로 크기 때문에 reverse 모드로 계산하여야 연산량을 줄일 수 있게 된다.
참고는 Auto Differential 개념
쉽게 말해, 괄호(floating operation)를 어디에다가 두느냐에 따라 연산량이 달라지게 된다는 것이다.
Matrix function
- 행렬 to 행렬 f(A)=A^2
- 행렬 to 벡터 f(A)=A
- 행렬 to 실수 f(A)=|A|
f(A)= xr(A)
f(A)=x^TAx
이때의 f' = ?