작성자: admin 작성일시: 2016-05-17 12:19:08 조회수: 1101 다운로드: 51
카테고리: 기초 수학 태그목록:

행렬의 미분

함수의 독립 변수나 종속 변수가 벡터나 행렬인 경우에도 미분을 정의할 수 있다. 이러한 경우에는 미분이 아닌 편미분(partial derivative)이지만 편의상 미분이라고 서술하도록 한다.

또한 행렬 미분에는 분자 중심 표현법(Numerator-layout notation)과 분모 중심 표현법(Denominator-layout notation) 두 가지가 있는데 데이터 분석에는 주로 분모 중심 표현법이 사용되므로 여기에서도 분모 중심 표현법으로 서술한다.

스칼라를 벡터로 미분

데이터 분석에서는 함수의 종속 변수 $y$ 가 스칼라이고 독립 변수 $x$ 가 벡터(다차원)인 경우가 일반적이다.

따라서 편미분 값도 $\frac{\partial y}{\partial x_1}, \frac{\partial y}{\partial x_2}, \cdots$ 등으로 여러 개가 존재한다.

이렇게 스칼라를 벡터로 미분하는 경우에는 결과를 (열) 벡터로 표시한다. 이렇게 만들어진 벡터를 그레디언트 벡터(gradient vector)라고 하고 $\nabla y$ 로 표기하기도 한다.

$$ \nabla y = \frac{\partial y}{\partial \mathbf{x}} = \begin{bmatrix} \frac{\partial y}{\partial x_1}\\ \frac{\partial y}{\partial x_2}\\ \vdots\\ \frac{\partial y}{\partial x_n}\\ \end{bmatrix} $$

벡터 미분 규칙 1: 벡터 일차항

$$\frac{\partial \mathbf{w}^\top\mathbf{x}}{\partial \mathbf{x}} = \frac{\partial \mathbf{x}^\top\mathbf{w}}{\partial \mathbf{x}} = \mathbf{w}$$

(증명)

$$ \dfrac{\partial (\mathbf{w}^T \mathbf{x})}{\partial \mathbf{x}}= \begin{bmatrix} \dfrac{\partial (\mathbf{w}^T \mathbf{x})}{\partial x_1} \\ \dfrac{\partial (\mathbf{w}^T \mathbf{x})}{\partial x_2} \\ \vdots \\ \dfrac{\partial (\mathbf{w}^T \mathbf{x})}{\partial x_N} \\ \end{bmatrix} = \begin{bmatrix} \dfrac{\partial (w_1 x_1 + \cancel{w_2 x_2} + \cdots + \cancel{w_N x_N})}{\partial x_1} \\ \dfrac{\partial (\cancel{w_1 x_1} + w_2 x_2 + \cdots + \cancel{w_N x_N})}{\partial x_2} \\ \vdots \\ \dfrac{\partial (\cancel{w_1 x_1} + \cancel{w_2 x_2} + \cdots + w_N x_N)}{\partial x_N} \\ \end{bmatrix} = \begin{bmatrix} w_1 \\ w_2 \\ \vdots \\ w_N \\ \end{bmatrix} = \mathbf{w} $$

벡터 미분 규칙 2: 벡터 이차항

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

(증명)

$$ \begin{eqnarray} \dfrac{\partial (\mathbf{x}^\top\mathbf{A}\mathbf{x})}{\partial \mathbf{x}} &=& \begin{bmatrix} \dfrac{\partial (\mathbf{x}^\top\mathbf{A}\mathbf{x})}{\partial x_1} \\ \dfrac{\partial (\mathbf{x}^\top\mathbf{A}\mathbf{x})}{\partial x_2} \\ \vdots \\ \dfrac{\partial (\mathbf{x}^\top\mathbf{A}\mathbf{x})}{\partial x_N} \\ \end{bmatrix} \\ &=& \begin{bmatrix} \dfrac{\partial (\sum_{i=1}^{N} \sum_{j=1}^{N} a_{ij} x_i x_j)}{\partial x_1} \\ \dfrac{\partial (\sum_{i=1}^{N} \sum_{j=1}^{N} a_{ij} x_i x_j)}{\partial x_2} \\ \vdots \\ \dfrac{\partial (\sum_{i=1}^{N} \sum_{j=1}^{N} a_{ij} x_i x_j)}{\partial x_N} \\ \end{bmatrix} \\ &=& \begin{bmatrix} \dfrac{\partial \left( \begin{matrix} a_{11}x_1x_1 + a_{12}x_1x_2 + \cdots + a_{1N}x_1x_N + \\ a_{21}x_2x_1 + \cancel{a_{22}x_2x_2} + \cdots + \cancel{a_{2N}x_2x_N} + \\ \cdots \\ a_{N1}x_Nx_1 + \cancel{a_{N2}x_Nx_2} + \cdots + \cancel{a_{NN}x_Nx_N} \end{matrix} \right)}{\partial x_1} \\ \dfrac{\partial \left( \begin{matrix} \cancel{a_{11}x_1x_1} + a_{12}x_1x_2 + \cdots + \cancel{a_{1N}x_1x_N} + \\ a_{21}x_2x_1 + a_{22}x_2x_2 + \cdots + a_{2N}x_2x_N + \\ \cdots \\ \cancel{a_{N1}x_Nx_1} + a_{N2}x_Nx_2 + \cdots + \cancel{a_{NN}x_Nx_N} \end{matrix} \right)}{\partial x_2} \\ \vdots \\ \end{bmatrix} \\ &=& \begin{bmatrix} \sum_{i=1}^{N} a_{1i} x_i + \sum_{i=1}^{N} a_{i1} x_i\\ \sum_{i=1}^{N} a_{2i} x_i + \sum_{i=1}^{N} a_{i2} x_i\\ \vdots \\ \sum_{i=1}^{N} a_{Ni} x_i + \sum_{i=1}^{N} a_{iN} x_i\\ \end{bmatrix} \\ &=& \begin{bmatrix} \sum_{i=1}^{N} a_{1i} x_i\\ \sum_{i=1}^{N} a_{2i} x_i\\ \vdots \\ \sum_{i=1}^{N} a_{Ni} x_i\\ \end{bmatrix} + \begin{bmatrix} \sum_{i=1}^{N} a_{i1} x_i \\ \sum_{i=1}^{N} a_{i2} x_i \\ \vdots \\ \sum_{i=1}^{N} a_{iN} x_i \\ \end{bmatrix} \\ &=& \mathbf{A} \mathbf{x} + \mathbf{A}^T \mathbf{x} = (\mathbf{A} + \mathbf{A}^T)\mathbf{x} \end{eqnarray} $$

벡터를 스칼라로 미분

만약 함수의 종속 변수 $y$ 가 벡터(다차원 데이터)이고 독립 변수 $x$ 가 스칼라인 경우는 함수가 여러 개라고 보는 것과 마찬가지이다.

$$ y_1 = f_1(x) $$$$ y_2 = f_2(x) $$$$ \vdots $$$$ y_m = f_m(x) $$$$ \downarrow $$$$ \mathbf{y} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots\\ y_m \\ \end{bmatrix} = \mathbf{f}(x) $$

따라서 미분 값도 $\frac{\partial y_1}{\partial x}, \frac{\partial y_2}{\partial x}, \cdots$ 등으로 여러 개가 존재한다.

벡터를 스칼라로 미분하는 경우에는 결과를 행 벡터로 표시한다.

$$ \frac{\partial \mathbf{y}}{\partial x} = \left[ \frac{\partial y_1}{\partial x} \frac{\partial y_2}{\partial x} \cdots \frac{\partial y_m}{\partial x} \right]. $$

벡터를 벡터로 미분

함수의 종속 변수와 독립 변수가 모두 벡터(다차원) 데이터인 경우에는 독립 변수 각각과 종속 변수 각각의 조합에 대해 모두 미분이 존재한다. 따라서 도함수는 행렬 형태가 된다. 이렇게 만들어진 도함수의 행렬을 자코비안 행렬(Jacobian matrix) 이라고 한다.

$$ \mathbf J = \frac{d\mathbf y}{d\mathbf x} = \begin{bmatrix} \dfrac{\partial y_1}{\partial \mathbf x}^T \\ \cdots \\ \dfrac{\partial y_m}{\partial \mathbf x}^T \end{bmatrix} = \begin{bmatrix} \dfrac{\partial y_1}{\partial x_1} & \cdots & \dfrac{\partial y_1}{\partial x_n}\\ \vdots & \ddots & \vdots\\ \dfrac{\partial y_m}{\partial x_1} & \cdots & \dfrac{\partial y_m}{\partial x_n} \end{bmatrix} $$

스칼라를 행렬로 미분

종속 변수가 스칼라 값이고 독립 변수가 행렬인 경우에는 도함수 행렬의 모양이 독립 변수 행렬과 일치한다.

$$ \frac{\partial y}{\partial \mathbf{X}} = \begin{bmatrix} \frac{\partial y}{\partial x_{11}} & \frac{\partial y}{\partial x_{12}} & \cdots & \frac{\partial y}{\partial x_{1n}}\\ \frac{\partial y}{\partial x_{21}} & \frac{\partial y}{\partial x_{22}} & \cdots & \frac{\partial y}{\partial x_{2n}}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial y}{\partial x_{m1}} & \frac{\partial y}{\partial x_{m2}} & \cdots & \frac{\partial y}{\partial x_{mn}}\\ \end{bmatrix} $$

행렬 미분 규칙 3: 행렬 1차항

$$ \dfrac{\partial \text{tr} (\mathbf{B}\mathbf{A})}{\partial \mathbf{A}} = \mathbf{B}^T$$

(증명)

$$ \text{tr}(\mathbf{B}\mathbf{A}) = \sum_{i=1}^n \sum_{j=1}^n b_{ji} a_{ij} $$$$ \dfrac{\partial \text{tr} (\mathbf{B}\mathbf{A})}{\partial a_{ij}} = b_{ji} $$

행렬 미분 규칙 4: 행렬 로그

$$ \dfrac{\partial \log \det \mathbf{A} }{\partial \mathbf{A}} = (\mathbf{A}^{-1})^T $$

(증명)

$$ \dfrac{\partial}{\partial a_{i,j}} \det A = M_{i,j} $$$$ \dfrac{\partial}{\partial A} \det A = M = (\det A) (A^{-1})^T $$$$ \dfrac{d}{dx} \log f(x) = \dfrac{f'(x)}{f(x)} = (\det A) (A^{-1})^T / \det A = (A^{-1})^T $$

질문/덧글

행렬 미분 규칙 4 : 행렬 로그 에서 moon*** 2016년 9월 25일 9:55 오후

행렬 미분 규칙 4 : 행렬 로그 에서

증명 마지막 부분에는 A의 역행렬이 최종 해로 나왔는데

증명해야할 식의 답이 A 역행렬의 Transpose가 되는 이유가 무엇인가요?

답변: 행렬 미분 규칙 4 : 행렬 로그 에서 관리자 2016년 9월 26일 7:54 오전

두번째 등식에서 실수가 있었습니다. 수정하였습니다.
이 등식이 나오는 부분은 https://www.datascienceschool.net/view-notebook/d6205659aff0413797c22552947aec83/#행렬식 입니다.

사용자에 의해 삭제되었습니다. tyui*** 2016년 11월 28일 8:01 오후

사용자에 의해 삭제되었습니다.