Matrix Calculus — 행렬·벡터 미분 공식

분자/분모 레이아웃·이차형식 그래디언트·OLS 정규방정식 일반 유도

행렬과 벡터에 대한 미분(그래디언트·야코비안)을 성분별 유도로 정리한다. 표기 규약부터 이차형식의 그래디언트, OLS 정규방정식의 일반 유도까지 한 페이지에 모은다. Strang MIT 시리즈는 구체 예시 중심이므로, 일반 공식 참조가 필요할 때 이 페이지를 본다.

Math
Linear Algebra
저자

Kwangmin Kim

공개

2023년 04월 02일

1 왜 이 페이지가 필요한가

머신러닝·최적화에서는 “스칼라 함수를 벡터로 미분”, “벡터 함수를 벡터로 미분” 같은 연산이 반복된다. 매번 성분별로 전개하면 느리고 실수가 잦다. 핵심 공식 몇 개를 표기 규약과 함께 정리하면 경사하강법·역전파·정규방정식 유도가 한 줄로 끝난다.

Strang 18.06 본편은 구체 예시에서 \(\partial E/\partial C\) 를 손으로 전개한다. 이 페이지는 그 작업을 행렬 형태로 압축한 참조표이다.


2 표기 규약 — 분자 vs 분모 레이아웃

같은 대상을 어떻게 배열하느냐에 두 관행이 있다. 하나를 골라 일관되게 쓰는 것이 중요하다.

정의: 분모 레이아웃 (Denominator Layout)

스칼라 \(f\) 를 열벡터 \(\mathbf{x} \in \mathbb{R}^n\) 으로 미분한 결과는 열벡터(그래디언트)이다.

\[\frac{\partial f}{\partial \mathbf{x}} = \nabla_\mathbf{x} f = \begin{bmatrix} \partial f / \partial x_1 \\ \vdots \\ \partial f / \partial x_n \end{bmatrix}\]

벡터 \(\mathbf{f} \in \mathbb{R}^m\) 를 벡터 \(\mathbf{x} \in \mathbb{R}^n\) 로 미분한 결과는 \(n \times m\) 행렬(전치 야코비안)이다.

\[\frac{\partial \mathbf{f}}{\partial \mathbf{x}} = \begin{bmatrix} \partial f_1 / \partial x_1 & \cdots & \partial f_m / \partial x_1 \\ \vdots & \ddots & \vdots \\ \partial f_1 / \partial x_n & \cdots & \partial f_m / \partial x_n \end{bmatrix}\]

정의: 분자 레이아웃 (Numerator Layout)

분자(출력)의 모양을 따라 배열한다. \(\partial \mathbf{f}/\partial \mathbf{x}\)\(m \times n\) 야코비안 \(J_{ij} = \partial f_i/\partial x_j\).

두 규약은 단순히 전치 관계다. 이 페이지는 분모 레이아웃을 쓴다 (머신러닝 관행).


3 핵심 공식표

모든 공식은 분모 레이아웃 기준. \(\mathbf{x} \in \mathbb{R}^n\), \(\mathbf{a} \in \mathbb{R}^n\), \(A \in \mathbb{R}^{n \times n}\), \(B \in \mathbb{R}^{m \times n}\).

함수 \(f\) \(\partial f / \partial \mathbf{x}\) 비고
\(\mathbf{a}^\top \mathbf{x}\) \(\mathbf{a}\) 스칼라 → 벡터
\(\mathbf{x}^\top \mathbf{a}\) \(\mathbf{a}\) 내적은 교환 법칙
\(B\mathbf{x}\) \(B^\top\) 벡터 → 벡터 (전치 야코비안)
\(\mathbf{x}^\top A \mathbf{x}\) \((A + A^\top)\mathbf{x}\) 이차형식 그래디언트
\(\mathbf{x}^\top A \mathbf{x}\), \(A\) 대칭 \(2A\mathbf{x}\) \(A = A^\top\) 일 때
\(\|\mathbf{x}\|^2 = \mathbf{x}^\top \mathbf{x}\) \(2\mathbf{x}\) 위 공식의 특수 (\(A = I\))
\(\|B\mathbf{x} - \mathbf{b}\|^2\) \(2B^\top(B\mathbf{x} - \mathbf{b})\) OLS에 직접 사용

핵심 두 공식만 외우면 나머지는 도출된다: \(\partial(\mathbf{a}^\top \mathbf{x})/\partial\mathbf{x} = \mathbf{a}\)\(\partial(\mathbf{x}^\top A \mathbf{x})/\partial\mathbf{x} = (A + A^\top)\mathbf{x}\).


4 이차형식 그래디언트의 성분별 유도

정리: 이차형식의 그래디언트

임의 행렬 \(A \in \mathbb{R}^{n \times n}\) 에 대해:

\[\frac{\partial}{\partial \mathbf{x}}(\mathbf{x}^\top A \mathbf{x}) = (A + A^\top)\mathbf{x}\]

\(A\) 가 대칭이면 \(2A\mathbf{x}\) 로 간단해진다.

유도: \(\mathbf{x}^\top A \mathbf{x}\) 를 성분으로 전개한다.

\[\mathbf{x}^\top A \mathbf{x} = \sum_{i=1}^{n} \sum_{j=1}^{n} a_{ij} x_i x_j\]

\(x_k\) 에 대한 편미분:

\[\frac{\partial}{\partial x_k}\!\!\left(\sum_{i,j} a_{ij} x_i x_j\right) = \sum_{j} a_{kj} x_j + \sum_{i} a_{ik} x_i = (A\mathbf{x})_k + (A^\top \mathbf{x})_k\]

첫 항은 \(x_i = x_k\) 인 경우(즉 \(i = k\)), 두 번째 항은 \(x_j = x_k\) 인 경우(즉 \(j = k\)). 이를 \(k = 1, \ldots, n\) 에 대해 벡터로 묶으면:

\[\frac{\partial}{\partial \mathbf{x}}(\mathbf{x}^\top A \mathbf{x}) = A\mathbf{x} + A^\top\mathbf{x} = (A + A^\top)\mathbf{x} \quad \square\]

4.1\((A + A^\top)\) 이고 \(2A\) 가 아닌가

\(A\) 가 대칭이 아닐 때 \(A \neq A^\top\) 이므로 단순히 \(2A\mathbf{x}\) 라 쓸 수 없다. 하지만 \(A + A^\top\) 은 항상 대칭이다 — \((A + A^\top)^\top = A^\top + A\). 즉 그래디언트는 항상 대칭 행렬과 \(\mathbf{x}\) 의 곱으로 표현된다. 이것이 이차형식의 “대칭화된 부분”만이 그래디언트에 기여한다는 사실의 수식 버전이다.

4.2 예시: 비대칭 \(A\)

\[A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad \mathbf{x}^\top A \mathbf{x} = x_1^2 + 5x_1 x_2 + 4x_2^2\]

직접 편미분:

\[\frac{\partial}{\partial x_1}(x_1^2 + 5x_1 x_2 + 4x_2^2) = 2x_1 + 5x_2\] \[\frac{\partial}{\partial x_2}(x_1^2 + 5x_1 x_2 + 4x_2^2) = 5x_1 + 8x_2\]

공식으로 검증:

\[(A + A^\top)\mathbf{x} = \begin{bmatrix} 2 & 5 \\ 5 & 8 \end{bmatrix}\begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix} 2x_1 + 5x_2 \\ 5x_1 + 8x_2 \end{bmatrix} \checkmark\]

4.3 예시: 대칭 \(A\)

\[A = \begin{bmatrix} 1 & 1 \\ 1 & 3 \end{bmatrix}, \quad \mathbf{x}^\top A \mathbf{x} = x_1^2 + 2x_1 x_2 + 3x_2^2\]

\(A\) 대칭이므로 그래디언트는 \(2A\mathbf{x}\):

\[2A\mathbf{x} = \begin{bmatrix} 2 & 2 \\ 2 & 6 \end{bmatrix}\begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix} 2x_1 + 2x_2 \\ 2x_1 + 6x_2 \end{bmatrix}\]


5 OLS 정규방정식의 일반 유도

Strang mit-04-4는 구체 예시로 정규방정식을 도출한다. 여기서는 행렬 미적분 공식만으로 한 줄 유도를 보인다.

5.1 문제 설정

\(n \times 1\) 관측값 벡터 \(\mathbf{y}\), \(n \times k\) 설계행렬 \(X\), \(k \times 1\) 파라미터 \(\boldsymbol{\beta}\) 에 대해 잔차제곱합을 최소화한다.

\[L(\boldsymbol{\beta}) = \|\mathbf{y} - X\boldsymbol{\beta}\|^2 = (\mathbf{y} - X\boldsymbol{\beta})^\top(\mathbf{y} - X\boldsymbol{\beta})\]

5.2 전개

\[L = \mathbf{y}^\top \mathbf{y} - \mathbf{y}^\top X\boldsymbol{\beta} - \boldsymbol{\beta}^\top X^\top \mathbf{y} + \boldsymbol{\beta}^\top X^\top X \boldsymbol{\beta}\]

가운데 두 항은 스칼라이므로 전치해도 같다: \(\mathbf{y}^\top X \boldsymbol{\beta} = \boldsymbol{\beta}^\top X^\top \mathbf{y}\). 따라서:

\[L = \mathbf{y}^\top \mathbf{y} - 2 \boldsymbol{\beta}^\top X^\top \mathbf{y} + \boldsymbol{\beta}^\top (X^\top X) \boldsymbol{\beta}\]

5.3 그래디언트

공식표 2·3·4행을 차례로 적용한다. 상수항 \(\mathbf{y}^\top \mathbf{y}\) 는 사라진다.

  • \(\partial(\boldsymbol{\beta}^\top X^\top \mathbf{y})/\partial \boldsymbol{\beta} = X^\top \mathbf{y}\) (공식: \(\partial(\mathbf{a}^\top \mathbf{x})/\partial\mathbf{x} = \mathbf{a}\), 여기서 \(\mathbf{a} = X^\top\mathbf{y}\))
  • \(\partial(\boldsymbol{\beta}^\top (X^\top X) \boldsymbol{\beta})/\partial \boldsymbol{\beta} = 2 X^\top X \boldsymbol{\beta}\) (\(X^\top X\) 는 대칭이므로)

따라서:

\[\frac{\partial L}{\partial \boldsymbol{\beta}} = -2 X^\top \mathbf{y} + 2 X^\top X \boldsymbol{\beta}\]

5.4 정규방정식

일계 조건 \(\partial L / \partial \boldsymbol{\beta} = \mathbf{0}\) 에서:

\[\boxed{X^\top X \hat{\boldsymbol{\beta}} = X^\top \mathbf{y}}\]

\(X^\top X\) 가 가역이면:

\[\hat{\boldsymbol{\beta}} = (X^\top X)^{-1} X^\top \mathbf{y}\]

세 단계로 끝났다. 성분별 전개 없이 행렬 미적분 공식만 사용했다.

연결: \(X^\top X\) 가 비가역인 경우는 다중공선성 문제이며, 이때 Moore–Penrose 의사역행렬 \(X^+\) 을 써서 \(\hat{\boldsymbol{\beta}} = X^+ \mathbf{y}\) 로 일반화된다 (mit-07-3 참조).


6 응용 — 역전파와의 연결

신경망 역전파는 이 공식표의 반복 적용이다.

연산 순전파 역전파 (그래디언트)
선형 레이어 \(\mathbf{z} = W\mathbf{x} + \mathbf{b}\) \(\partial L/\partial \mathbf{x} = W^\top \partial L/\partial \mathbf{z}\)
이차 손실 \(L = \|\hat{\mathbf{y}} - \mathbf{y}\|^2\) \(\partial L/\partial \hat{\mathbf{y}} = 2(\hat{\mathbf{y}} - \mathbf{y})\)
이차형식 (정규화) \(L_{\text{reg}} = \lambda \mathbf{w}^\top \mathbf{w}\) \(\partial L_{\text{reg}}/\partial \mathbf{w} = 2\lambda \mathbf{w}\)

공식표 3·6행이 그대로 재등장한다.


7 관련 주제

Subscribe

Enjoy this blog? Get notified of new posts by email: