이 내용은 책 Mathematics for machine learning(Marc Peter Deisenroth et al.)을 기반으로 하고 있습니다.
함수 $f$의 그래디언트 $\triangledown f$는 $\boldsymbol{x}_0$ 근처에서 함수의 국부적(locally) 선형 근사(linear gradient)에 사용된다. $\boldsymbol{x}_0$ 에서 $\boldsymbol{x}$ 에 대한 $f$ 의 그래디언트를 $(\triangledown _{\boldsymbol{x}} f)(\boldsymbol{x}_0)$ 라고 할 때 아래와 같이 근사가 가능하다.
\[f(\boldsymbol{x}) \approx f(\boldsymbol{x}_0) + (\triangledown _{\boldsymbol{x}} f)(\boldsymbol{x}_0)(\boldsymbol{x} - \boldsymbol{x}_0)\]일례로 아래와 같은 함수가 있을 때, 빨간색 점인 $\boldsymbol{x}_0$ 에서 함수는 파란색 선으로 근사됨을 볼 수 있다.
하지만 동시에, $\boldsymbol{x}_0$ 에선 정확하나 $\boldsymbol{x}_0$에서 멀어질수록 근사 결과는 좋지 못하다. 즉, 원래 함수와 차이가 크다.
위와 같은 근사는, 함수 $f$ 의 $\boldsymbol{x}_0$ 에서의 다변수 테일러 급수 확장의 한 예시이다. 테일러 급수의 첫 두 개 항만 사용했다. 이어지는 내용에서는 보다 일반적인 형태를 알아보겠다.
$\boldsymbol{x}_0$ 에서 부드러운 함수 $f$를 아래와 같이 나타낸다고 하자. $$ \begin{aligned} f: \mathbb{R}^D &\rightarrow \mathbb{R} \\ \boldsymbol{x} &\mapsto f(\boldsymbol{x}), \quad \boldsymbol{x} \in \mathbb{R}^D \end{aligned} $$ 차이 벡터(difference vector) $\boldsymbol{\delta} := \boldsymbol{x} - \boldsymbol{x}_0$ , $\boldsymbol{x}_0$ 에서 $\boldsymbol{x}$ 에 대한 함수의 k 번째 전미분을 $D_{\boldsymbol{x}}^k f(\boldsymbol{x}_0)$ 라 할 때, $\boldsymbol{x}_0$ 에서 함수의 다변수 테일러 급수는 아래와 같이 정의한다. $$ f(\boldsymbol{x}) = \sum \limits_{k=0}^{\infty} \cfrac{D_{\boldsymbol{x}}^k f(\boldsymbol{x}_0)}{k!} \boldsymbol{\delta}^k $$
참고로 5.1장에서 보았듯 일반적 테일러 급수는
\[T_{\infty}(x) := \sum\limits_{k=0}^{\infty} \cfrac{f^{(k)}(x_0)}{k!} (x-x_0)^k\]꼴이었다. 다변수 테일러 급수의 모양이 이와 비슷함을 이용해 기억하면 될 듯하다.
다변수 테일러 급수 정의 중에서 맨 처음 $(n+1)$ 항까지만 나타낸 것이다. \(f(\boldsymbol{x}) = \sum \limits_{k=0}^{n} \cfrac{D_{\boldsymbol{x}}^k f(\boldsymbol{x}_0)}{k!} \boldsymbol{\delta}^k\)
$\boldsymbol{\delta}^k$ 은 $D>1, k>1$에선 벡터가 아니라 k차 텐서 (k차원 배열)이며, 그건 $D_{\boldsymbol{x}}^k f$ 도 마찬가지다. k차 텐서 $\boldsymbol{\delta}^k \in \mathbb{R}^{D \times D \times \cdots \times D}$ 는 $\boldsymbol{\delta} \in \mathbb{R}^D$의 k 번의 외적 (outer product, $\otimes$)을 통해 구한다. 그 예는 아래와 같다.
\[\boldsymbol{\delta}^2 := \boldsymbol{\delta} \otimes \boldsymbol{\delta} = \boldsymbol{\delta} \boldsymbol{\delta}^T \in \mathbb{R}^{D \times D}, \quad \boldsymbol{\delta}^2[i, j] = \delta[i] \delta[j]\] \[\boldsymbol{\delta}^3 := \boldsymbol{\delta} \otimes \boldsymbol{\delta} \otimes \boldsymbol{\delta} \in \mathbb{R}^{D \times D \times D}, \quad \boldsymbol{\delta}^3[i, j, k] = \delta[i] \delta[j] \delta[k]\]그렇다면 테일러 급수에서 k차 다항식을 가진 $D_{\boldsymbol{x}}^k f(\boldsymbol{x}_0) \boldsymbol{\delta}^k$ 는 아래와 같이 계산할 수 있다.
\[D_{\boldsymbol{x}}^k f(\boldsymbol{x}_0) \boldsymbol{\delta}^k = \sum \limits_{i_1 = 1}^D \cdots \sum \limits_{i_k = 1}^D D_{\boldsymbol{x}}^k f(\boldsymbol{x}_0)[i_1, \cdots, i_k] \delta [i_1] \cdots \delta [i_k]\]위 공식을 가지고 2변수 함수의 테일러 급수 확장의 예시를 살펴보자.
3차 다항 함수
\[f(x, y) = x^2 + 2xy + y^3\]가 있다고 하자. $(x_0, y_0) = (1, 2)$ 에서의 테일러 급수 확장을 계산하고자 한다.
테일러 확장은 테일러 다항식의 선형 결합이므로, 그 형태가 함수의 차수인 3을 넘지 않으리란 것을 유추할 수 있다. 즉, 테일러 급수의 첫 4개 항만을 가지고 테일러 급수 확장으로 함수를 나타낼 수 있다.
\[f(x) = f(1, 2) + \cfrac{D_{x, y}^1 f(1, 2) \boldsymbol{\delta}^1}{1!} + \cfrac{D_{x, y}^2 f(1, 2) \boldsymbol{\delta}^2}{2!} + \cfrac{D_{x, y}^3 f(1, 2) \boldsymbol{\delta}^3}{3!}\]$\boldsymbol{\delta} = \begin{bmatrix}x - 1 \ y - 2\end{bmatrix}$ 이고, 상수항은 아래와 같다.
\[k = 0 : \quad D_{x, y}^0 f(1, 2) \boldsymbol{\delta}^0 = f(1, 2) = 13 \in \mathbb{R}\]1차 다항식의 경우,
\[\begin{aligned} &\triangledown_{x, y} f(1, 2) =\begin{bmatrix} \cfrac{\partial f}{\partial x} (1, 2) & \cfrac{\partial f}{\partial y} (1, 2) \end{bmatrix} = [ 6 \quad 14] \in \mathbb{R}^{1 \times 2} \\ &(\because \cfrac{\partial f}{\partial x} = 2x + 2y ,\ \cfrac{\partial f}{\partial y} = 2x + 3y^2) \\ &k = 1 : \quad D_{x, y}^1 f(1, 2) \boldsymbol{\delta}^1 = \triangledown_{x, y} f(1, 2) \delta = \sum \limits_{i=1}^D \triangledown_{x, y} f(1, 2) [i] \delta [i] \in \mathbb{R} \\ &\qquad \qquad = [6 \quad 14] \begin{bmatrix}x - 1 \\ y - 2\end{bmatrix} = 6(x-1) + 14(y-2) \end{aligned}\]1차 테일러 다항식의 결과 오직 1차 다항식만 포함하고 있는 것을 볼 수 있다.
2차 다항식의 경우,
\[k = 2 : \quad \cfrac{D_{x, y}^2 f(1, 2) }{2!}\boldsymbol{\delta}^2 = \cfrac{1}{2} tr(\boldsymbol{H}(1, 2) \boldsymbol{\delta} \boldsymbol{\delta}^T) = \cfrac{1}{2}\boldsymbol{\delta}^T \boldsymbol{H}(1, 2) \boldsymbol{\delta} = \cfrac{1}{2}\sum \limits_{i=1}^D \sum \limits_{j=1}^D H[i, j]\delta[i]\delta[j] \in \mathbb{R}\]으로 구하며, 헤시안 행렬 $H(1, 2)$는
\[\boldsymbol{H}(1, 2) = \begin{bmatrix} \cfrac{\partial^2 f}{\partial x^2}(1, 2) & \cfrac{\partial^2 f}{\partial x \partial y}(1, 2) \\ \cfrac{\partial^2 f}{\partial y \partial x}(1, 2) & \cfrac{\partial^2 f}{\partial y^2} (1, 2) \end{bmatrix} = \begin{bmatrix} 2 & 2 \\ 2 & 6y \end{bmatrix} = \begin{bmatrix} 2 & 2 \\ 2 & 12 \end{bmatrix} \in \mathbb{R}^{2 \times 2}\]따라서
\[\begin{aligned} \cfrac{D_{x, y}^2 f(1, 2) }{2!}\boldsymbol{\delta}^2 &= \cfrac{1}{2} \boldsymbol{\delta}^T \boldsymbol{H}(1, 2) \boldsymbol{\delta} \\ &= \cfrac{1}{2} \begin{bmatrix}x-1 & y-2\end{bmatrix} \begin{bmatrix}2 & 2 \\ 2 & 12\end{bmatrix} \begin{bmatrix}x-1 \\ y-2\end{bmatrix} \\ &= (x-1)^2 + 2(x-1)(y-2) + 6(y-2)^2 \end{aligned}\]마찬가지로 2차 테일러 다항식의 결과엔 오직 2차 다항식만 포함하고 있는 것을 볼 수 있다.
3차 다항식도 마찬가지로 구해본다.
\[k = 3 : \quad \cfrac{D_{x, y}^3 f(1, 2) }{3!}\boldsymbol{\delta}^3 = \cfrac{1}{3!}\sum \limits_{i=1}^D \sum \limits_{j=1}^D \sum \limits_{k=1}^D D_{x, y}^3 f(1, 2)\delta[i]\delta[j]\delta[k] \in \mathbb{R}\]여기서 3차 미분의 경우
\[\begin{aligned} D_{x, y}^3 f &= \begin{bmatrix}\cfrac{\partial \boldsymbol{H}}{\partial x} & \cfrac{\partial \boldsymbol{H}}{\partial y}\end{bmatrix} \in \mathbb{R}^{2 \times 2 \times 2} \\ D_{x, y}^3 f [:, :, 1] &= \cfrac{\partial \boldsymbol{H}}{\partial x} = \begin{bmatrix}\cfrac{\partial^3 f}{\partial x^3} & \cfrac{\partial^3 f}{\partial x^2 \partial y} \\ \cfrac{\partial^3 f}{\partial x \partial y \partial x} & \cfrac{\partial^3 f}{\partial x \partial y^2}\end{bmatrix} \\ D_{x, y}^3 f [:, :, 2] &= \cfrac{\partial \boldsymbol{H}}{\partial y} = \begin{bmatrix}\cfrac{\partial^3 f}{\partial y \partial x^2} & \cfrac{\partial^3 f}{\partial y \partial x \partial y} \\ \cfrac{\partial^3 f}{\partial y^2 \partial x} & \cfrac{\partial^3 f}{\partial y^3}\end{bmatrix} \end{aligned}\]인데, 2차 미분을 구할 때 보았듯 헤시안 행렬 요소 4개 중 3개가 상수였기에 그 미분은 0이고, 나머지 하나 $\cfrac{\partial^2 f}{\partial y^2} (1, 2) = 6y$ 를 미분한 값 6만 살아남는다. 따라서
\[D_{x, y}^3 f [:, :, 1] = \begin{bmatrix}0 & 0 \\ 0 & 0\end{bmatrix} , \quad D_{x, y}^3 f [:, :, 2] = \begin{bmatrix}0 & 0 \\ 0 & 6\end{bmatrix}\]이고, 3차의 최종 결과는 3차 다항식만을 포함한 아래와 같은 꼴이 된다.
\[\cfrac{D_{x, y}^3 f(1, 2) }{3!}\boldsymbol{\delta}^3 = (y-2)^3\]이를 모두 종합해보자.
\[f(x) = 13 + \{(x-1)^2 + 6(x-1) + 14(y-2) \} + \{ 2(x-1)(y-2) + 6(y-2)^2 \} + \{(y-2)^3 \}\]이 예시의 경우, 위 식을 풀면 본 함수가 그대로 나온다.