LoginSignup
4
3

More than 3 years have passed since last update.

テイラー展開の再帰的導出法

Last updated at Posted at 2020-02-21

はじめに

機械学習では二次近似あたりまではよく出てきます。ニュートン法は一次近似=ゼロを解いて更新則が導出されますし、ベイズ事後分布の正規分布近似(ラプラス近似)は対数事後分布の二次近似ですね。(最大化や最小化にニュートン法を用いる場合は、勾配(一階微分)の一次近似=ゼロを解くので二階微分が出てきて二次解法(Quadratic Solver)と呼ばれますね。)

そんなテイラー展開の公式を忘れたとき、思い出すのに使える導出法です。パズルみたいでおもしろいです。

テイラー展開の再帰的導出法

無限回連続微分可能な関数$f(x)$に対して

\begin{align*}
f(x)
 &= f(x_0) + \int_{x_0}^x f^{(1)}(z_1) dz_1 \\
f^{(1)}(z_1)
 &= f^{(1)}(x_0) + \int_{x_0}^{z_1} f^{(2)}(z_2) dz_2 \\
f^{(2)}(z_2)
 &= f^{(2)}(x_0) + \int_{x_0}^{z_2} f^{(3)}(z_3) dz_3 \\
 &\hspace{2mm} \vdots
\end{align*}

で再帰的に代入すると

\begin{align*}
&f(x) \\
&= f(x_0) + \int_{x_0}^x f^{(1)}(z_1) dz_1 \\
&= f(x_0) + \int_{x_0}^x \left( f^{(1)}(x_0) + \int_{x_0}^{z_1} f^{(2)}(z_2) dz_2 \right) dz_1 \\
&= f(x_0) + \int_{x_0}^x \left( f^{(1)}(x_0)
 + \int_{x_0}^{z_1} \left( f^{(2)}(x_0) + \int_{x_0}^{z_2} f^{(3)}(z_3) dz_3 \right) dz_2 \right) dz_1 \\
&\hspace{2.6mm} \vdots \\
&= f(x_0) \\
&\hspace{4mm} + f^{(1)}(x_0) \cdot \int_{x_0}^x 1 \; dz_1 \\
&\hspace{4mm} + f^{(2)}(x_0) \cdot \int_{x_0}^x \int_{x_0}^{z_1} 1 \; dz_2 dz_1 \\
&\hspace{4mm} + f^{(3)}(x_0) \cdot \int_{x_0}^x \int_{x_0}^{z_1} \int_{x_0}^{z_2} 1 \; dz_3 dz_2 dz_1 \\
&\hspace{6.2mm} \vdots \\
&\hspace{4mm} + f^{(k)}(x_0) \cdot \int_{x_0}^x \cdots \int_{x_0}^{z_{k-1}} 1 \; dz_k \cdots dz_1 \\
&\hspace{6.2mm} \vdots
\end{align*}

となります。$f^{k}(x_0)$はk階微分の$x_0$での値(定数)で、その係数は1のk重積分です。
1のk重積分をk=1から順に求めていくと

\begin{align*}
\int_{x_0}^x 1 \; dz_1
 &= (x - x_0) \\
\int_{x_0}^x \left( \int_{x_0}^{z_1} 1 \; dz_2 \right) dz_1
 &= \int_{x_0}^x (z_1 - x_0) dz_1 
  = \frac{1}{2} (x - x_0)^2 \\
\int_{x_0}^x \left( \int_{x_0}^{z_1} \int_{x_0}^{z_2} 1 \; dz_3 dz_2 \right) dz_1 
 &= \int_{x_0}^x \frac{1}{2} (z_1 - x_0)^2 dz_1 
  = \frac{1}{2 \cdot 3} (x - x_0)^3 \\
 &\hspace{2.5mm} \vdots
\end{align*}

と、一つ前の解をもう一度積分していく形になります。これよりk重積分は

\begin{align*}
\int_{x_0}^x \cdots \int_{x_0}^{z_{k-1}} 1 \; dz_k \cdots dz_1
 &= \frac{1}{k!} (x-x_0)^k
\end{align*}

となることがわかります。$k=0$のとき$0! = 1$、$(x-x_0)^0=1$なので、$f(x_0)$も

\begin{align*}
f(x_0) = f^{(0)}(x_0) \frac{1}{0!} (x-x_0)^0
\end{align*}

と書けます。以上より、テイラー展開(テイラー級数):

\begin{align*}
f(x)
&= f(x_0) \cdot \frac{1}{0!} (x-x_0)^0 + f^{(1)}(x_0) \cdot \frac{1}{1!} (x-x_0)^1 + f^{(2)}(x_0) \cdot \frac{1}{2!} (x-x_0)^2 \cdots\\
&= \sum_{k=0}^\infty \frac{1}{k!} f^{(k)}(x_0)(x - x_0)^k
\end{align*}

を得ます。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3