부록 E — 벡터 미분

E.1 용어

  • vector differential: 벡터 미분
  • partial derivative: 편미분
  • gradient: 그레디언트
  • Jacobian: 야코비안, 자코비안

E.2 벡터 미분의 표기법

이제 다변량함수(multivariate function), \(f: \RR^n \rightarrow \RR^m\)에 대한 미분을 생각해보자.

먼저 간단한 예제를 고려해 보자. 두 열벡터

\[ \pmb x= \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \in \RR_2, \quad \pmb y= \begin{bmatrix} y_1 \\ y_2 \\ y_3 \end{bmatrix} \in \RR^3 \]

를 고려하고 다음과 같은 함수로 두 벡터의 관계가 정의된다고 하자.

\[ y_1 = x_1^2 + x_2, \quad y_2= \exp (x_1) + 3 x_2, \quad y_3 = \sin(x_1) + x_2^3 \tag{E.1}\]

위의 관계를 함수 관계 \(\pmb f: \RR^2 \rightarrow \RR^3\) 로 나타내보면

\[ \pmb f(\pmb x) = \begin{bmatrix} f_1(\pmb x) \\ f_2 (\pmb x) \\ f_3(\pmb x) \end{bmatrix} = \begin{bmatrix} x_1^2 + x_2 \\ \exp (x_1) + 3 x_2 \\ \sin(x_1) + x_2^3 \end{bmatrix} = \begin{bmatrix} y_1 \\ y_2 \\ y_3 \end{bmatrix} = \pmb y \]

이러한 경우 다변량 함수 \(\pmb f\)를 벡터 \(\pmb x\)로 미분하려면, 즉 미분 표기법을 이용하려면 편미분을 한 결과를 행렬의 형태를 정해야한다.

\[ \pardifftwo{ \pmb f}{\pmb x} = (n \times m)-\text{matrix} \quad \text{ or } \quad (m \times n)-\text{matrix}? \]

일단 각각의 편미분 \(\pardifftwo{f_i}{x_j}\)를 구해야 하며 이는 scalar 미분으로 쉽게 구해진다.

\[ \begin{aligned} \pardifftwo{ f_1}{ x_1} & = 2x_1, & \quad \pardifftwo{ f_2}{ x_1} & = \exp(x_1), & \quad \pardifftwo{ f_3}{ x_1} & = \cos(x_1) \\ \pardifftwo{ f_1}{ x_2} & = 1, & \quad \pardifftwo{ f_2}{ x_2} & = 3, & \quad \pardifftwo{ f_3}{ x_2} & = 3 x_2^2 \\ \end{aligned} \tag{E.2}\]

이제 이제 편미분값들을 행렬의 형태로 정리해보자. 편미분을 행렬에 배치할 떄 다음과 같은 규칙을 사용할 것이다.

  • 행렬의 행은 \(\pmb x\)의 차원 \(n\) 과 같다.
  • 행렬의 열은 \(\pmb f\)의 차원 \(m\) 과 같다.

위와 같이 편미분을 배치하는 벡타 미분 표기법을 분모 표기법 (denominator layout)이라고 한다.

분모 표기법

\[ \pmb J = \nabla_x \pmb x =\pardifftwo{ \pmb f}{\pmb x} \equiv \pardifftwo{ \pmb f^t}{\pmb x} \underset{def}{\equiv} \begin{bmatrix} \pardifftwo{ f_1}{ x_1} & \pardifftwo{ f_2}{ x_1} & \pardifftwo{ f_3}{ x_1} \\ \pardifftwo{ f_1}{ x_2} & \pardifftwo{ f_2}{ x_2} & \pardifftwo{ f_3}{ x_2} \end{bmatrix} = \begin{bmatrix} 2x_1 & \exp(x_1) & \cos(x_1) \\ 1 & 3 & 3x_2^2 \end{bmatrix} \] \(\pmb J\)는 야코비안 행렬(Jacobian matrix)이라고 부른다.

이제 이러한 분자표기법의 특별한 결과를 알아보자

  • \(f: \RR^n \rightarrow \RR^1\) 인 경우

    \(f: \RR^n \rightarrow \RR^1\) 인 경우 벡터미분 결과를 그레디언트(gradient)라고 부르며 다음과 같이 표기된다.

\[ \nabla_x f = \pardifftwo{ f}{\pmb x} = \begin{bmatrix} \pardifftwo{ f}{x_1} \\ \pardifftwo{ f}{x_2} \\ \vdots \\ \pardifftwo{ f}{x_n} \end{bmatrix} \]

  • \(f: \RR^1 \rightarrow \RR^m\) 인 경우

\[ \pardifftwo{\pmb f}{x} = [ \pardifftwo{ f_1}{x} , \pardifftwo{ f_2}{x}, \cdots, \pardifftwo{ f_m}{x} ] \]

참고로 식 E.1 에서 정의한 함수 관계를 두 벡터 \(\pmb x\)\(\pmb y\) 의 사상관계로 보면

\[ \pmb f : \pmb x \mapsto \pmb y \] 다음과 같이 그레디언트 벡터를 표기할 수 있다.

\[ \pardifftwo{ \pmb f}{\pmb x} = \pardifftwo{ \pmb y}{\pmb x} = \begin{bmatrix} \pardifftwo{ y_1}{ x_1} & \pardifftwo{ y_2}{ x_1} & \pardifftwo{ y_3}{ x_1} \\ \pardifftwo{ y_1}{ x_2} & \pardifftwo{ y_2}{ x_2} & \pardifftwo{ y_3}{ x_2} \end{bmatrix} \]

E.3 함성함수의 미분법

이제 합성함수의 미분법(chain rule)에 대하여 알아보자.

두 개의 함수

\[ \pmb g :\RR^n \mapsto \RR^m, \quad \pmb f :\RR^m \mapsto \RR^p \] 가 있을 때, \(\pmb f\)\(\pmb g\)의 합성함수 \(\pmb h\)는 다음과 같이 정의된다.

\[ \pmb h( \pmb x) = \pmb f( \pmb g( \pmb x)) = \pmb f \circ \pmb g\] 즉,

\[ \pmb h : \RR^n \mapsto \RR^m \mapsto \RR^p \]

이러한 합성함수의 미분은 다음과 같이 계산된다.

\[ \pardifftwo{ \pmb h}{\pmb x} = \pardifftwo{ \pmb f \circ \pmb g}{\pmb x} = \pardifftwo{ \pmb g}{\pmb x} \pardifftwo{ \pmb f}{\pmb g} \tag{E.3}\]

식 E.3 에서 \(\pardifftwo{ \pmb f}{\pmb g}\)\(m \times p\) Jacovian 벡터이고

\[ \pardifftwo{ \pmb f}{\pmb g} \begin{bmatrix} \pardifftwo{ f_1}{ g_1} & \pardifftwo{ f_2}{ g_1} & \cdots & \pardifftwo{ f_p}{ g_1} \\ \pardifftwo{ f_1}{ g_2} & \pardifftwo{ f_2}{ g_2} & \cdots & \pardifftwo{ f_p}{ g_2} \\ \vdots & \vdots & \ddots & \vdots \\ \pardifftwo{ f_1}{ g_m} & \pardifftwo{ f_2}{ g_m} & \cdots & \pardifftwo{ f_p}{ g_m} \\ \end{bmatrix} =(m \times p) \]

\(\pardifftwo{ \pmb g}{\pmb x}\)\(n \times m\) Jacovian 벡터이다

\[ \pardifftwo{ \pmb g}{\pmb x} = \begin{bmatrix} \pardifftwo{ g_1}{ x_1} & \pardifftwo{ g_2}{ x_1} & \cdots & \pardifftwo{ g_m}{ x_1} \\ \pardifftwo{ g_1}{ x_2} & \pardifftwo{ g_2}{ x_2} & \cdots & \pardifftwo{ g_m}{ x_2} \\ \vdots & \vdots & \ddots & \vdots \\ \pardifftwo{ g_1}{ x_n} & \pardifftwo{ g_2}{ x_n} & \cdots & \pardifftwo{ g_m}{ x_n} \\ \end{bmatrix} = (n \times m) \]

함성함수의 미분 공식을 차원으로 나타내면 다음과 같다.

\[ \underset{ n \times p} {\pardifftwo{ \pmb h}{\pmb x}} = \underset{ n \times m} {\pardifftwo{ \pmb g}{\pmb x}} \underset{ m \times p} {\pardifftwo{ \pmb f}{\pmb g}} \]

E.4 두 벡터 내적의 미분

E.4.1 상수벡터와 변수벡터의 내적

먼저 상수 벡터 \(\pmb a\)와 변수 벡터 \(\pmb x\)의 내적의 미분을 생각해 보자.

참고로 다음과 같이 두 벡터의 내적은 스칼라이다.

\[ \pmb a^t \pmb x = \pmb x^t \pmb a = a_1 x_1 + a_2x_2 + \dots + a_n x_n \]

따라서 그레이디언트를 구하는 방법과 같이 결과는 열벡터로 표기된다.

\[ \pardifftwo{ \pmb a^t \pmb x}{\pmb x} = \pardifftwo{ \pmb x^t \pmb a}{\pmb x} = \pmb a = \begin{bmatrix} a_1 \\ a_2\\ \vdots \\ a_n \end{bmatrix} \]

위의 식에서 상수벡터 \(\pmb a\)는 가 전치로 앞에 나타나는 표현 \(\pmb x^t \pmb a\) 를 사용하면 결과 벡터 \(\pmb a\)가 열벡터로 그대로 나타나지므로 내적의 미분 표기로 사용할 것이다.

\[ \pardifftwo{ \pmb x^t \pmb a}{\pmb x} = \pardifftwo{ \pmb x^t}{\pmb x} \pmb a =\pmb I \pmb a = \pmb a \tag{E.4}\]

E.4.2 상수벡터와 함수벡터의 내적

더 나아가서 상수 벡터 \(\pmb a\)와 함수 벡터 \(\pmb f\)의 내적의 미분도 식 E.4 을 표시하는 동일한 논리로 다음과 같이 표기할 수 있다.

\[ \pardifftwo{ \pmb f^t \pmb a}{\pmb x} = \pardifftwo{ \pmb f^t}{\pmb x} \pmb a \tag{E.5}\]

참고로 식 E.5 에서 \(\pardifftwo{ \pmb f}{\pmb x}\)는 행벡터가 아닌 행렬로 나타날 수 있다.

E.4.3 함수벡터와 함수벡터의 내적

이제 다음과 같이 같은 공간으로 사상되는 두 함수 \(\pmb f\)\(\pmb g\) 의 내적을 생각해 보자.

\[ \pmb f : \RR^n \mapsto \RR^m, \quad \pmb g : \RR^n \mapsto \RR^m\]

두 함수의 내적을 미분하는 경우 곱셉 법칙을 적용하여야 하는데 행렬의 곱셉에서는 교환법칙이 성립되지 않으므로 순서에 주의해야 한다.

내적 \(\pmb f^t \pmb g\) 를 각각 따로 미분해야 하는데 각 벡터에 대해 따로 미분을 실행해 보자

  • \(\pmb f\) 를 미분하는 경우 \(\pmb g\) 는 상수 벡터 \(\pmb a\) 로 취급한다. 그리고 식 E.5 를 적용한다.

\[ \pardifftwo{ \pmb f^t \pmb g}{\pmb x} = \pardifftwo{ \pmb f^t \pmb a}{\pmb x} = \pardifftwo{ \pmb f^t}{\pmb x} \pmb a= \pardifftwo{ \pmb f}{\pmb x} \pmb g \tag{E.6}\]

  • \(\pmb g\) 를 미분하는 경우 \(\pmb f\) 는 상수 벡터 \(\pmb a\) 로 취급한다. 그리고 식 E.5 를 적용한다.

\[ \pardifftwo{ \pmb f^t \pmb g}{\pmb x} = \pardifftwo{ \pmb a^t \pmb g}{\pmb x} = \pardifftwo{ \pmb g^t \pmb a}{\pmb x} = \pardifftwo{ \pmb g^t}{\pmb x} \pmb a = \pardifftwo{ \pmb g}{\pmb x} \pmb f \tag{E.7}\]

이제 위의 두 결과 식 E.6식 E.7 를 합치면 다음과 같은 최종적인 결과를 얻을 수 있다.

\[ \pardifftwo{ \pmb f^t \pmb g}{\pmb x} = \pardifftwo{ \pmb f}{\pmb x} \pmb g + \pardifftwo{ \pmb g}{\pmb x} \pmb f \tag{E.8}\]

E.5 벡터 미분의 응용

E.5.1 선형사상의 미분상

이제 앞에서 배운 벡터의 미분을 이용하여 유용한 응용 공식을 유도해보자.

먼저 선형변환 \(\pmb y = \pmb A \pmb x\) 를 생각해 보자. 이때 (\(M \times N\))-\(\pmb A\)는 상수 행렬이다. 이때 \(\pmb y\)\(\pmb x\)로 미분하면 다음과 같다.

먼저 행렬 \(\pmb A\)\(i\) 번째 행을 \(\pmb a_i^t\)라고 하면

\[ \pmb A = \begin{bmatrix} A_{11} & A_{12} & \dots & A_{1N} \\ A_{21} & A_{22} & \dots & A_{2N} \\ \vdots & \vdots & \ddots & \vdots \\ A_{M1} & A_{M2} & \dots & A_{MN} \\ \end{bmatrix}= \begin{bmatrix} \pmb a_1^t \\ \pmb a_2^t \\ \vdots \\ \pmb a_M^t \\ \end{bmatrix} \]

선형변환 \(\pmb f(\pmb x) = \pmb A \pmb x\) 로 정의하면 다음과 같이 나타낼 수 있다.

\[ \pmb A \pmb x= \begin{bmatrix} \pmb a_1^t \pmb x \\ \pmb a_2^t \pmb x \\ \vdots \\ \pmb a_M^t \pmb x \\ \end{bmatrix} = \begin{bmatrix} f_1(\pmb x) \\ f_2(\pmb x) \\ \vdots \\ f_M(\pmb x) \\ \end{bmatrix} = \pmb f(\pmb x) \]

따라서

\[ \pardifftwo{\pmb A \pmb x}{\pmb x} = \pardifftwo{\pmb f (\pmb x)}{\pmb x} = \begin{bmatrix} \pardifftwo{f_1}{x_1} & \pardifftwo{f_2}{x_1} & \dots & \pardifftwo{f_M}{x_1} \\ \pardifftwo{f_1}{x_2} & \pardifftwo{f_2}{x_2} & \dots & \pardifftwo{f_M}{x_2} \\ \vdots & \vdots & \ddots & \vdots \\ \pardifftwo{f_1}{x_N} & \pardifftwo{f_2}{x_N} & \dots & \pardifftwo{f_M}{x_N} \\ \end{bmatrix} = \begin{bmatrix} A_{11} & A_{21} & \dots & A_{M1} \\ A_{12} & A_{22} & \dots & A_{M2} \\ \vdots & \vdots & \ddots & \vdots \\ A_{1N} & A_{2N} & \dots & A_{MN} \\ \end{bmatrix} = \pmb A^t \] 따라서 선형사상의 미분은 선형변환 행렬의 전치이다.

\[ \pardifftwo{\pmb A \pmb x}{\pmb x} = \pmb A^t \tag{E.9}\]