テイラー展開から勾配とヘッセ行列の形へ丁寧に変換-2変数の場合

これなら分かる最適化数学の本には、関数\(f(x)\)を勾配\(\nabla f\)とヘッセ行列\(H\)で表した式の形が現れます。これはテイラー展開と結びついた関係です。この記事では、テイラー展開された後の式を勾配とヘッセ行列の形に表現するまでを丁寧に展開することを目指します。 ちょっと長いですけど、頑張っていきましょう!

2変数関数のテイラー展開からベクトルと行列の表現へ

関数が2変数の時 \(f(x,y)\)は(1)式のようにテイラー展開されます。\( \cdots \)は3次以上の項を示しています。

$$
f(\bar x+\Delta x, \bar y + \Delta y) = f(\bar x, \bar y) + \frac{\partial f(\bar x, \bar y)}{\partial x}\Delta x + \frac{\partial f(\bar x, \bar y)}{\partial y}\Delta y + \\ \frac{1}{2} \Bigl(\frac{\partial^2 f(\bar x, \bar y)}{\partial x \partial x}\Delta x \Delta x + \frac{\partial^2 f(\bar x, \bar y)}{\partial x \partial y}\Delta x \Delta y + \frac{\partial^2 f(\bar x, \bar y)}{\partial y \partial x} \Delta y \Delta x+ \frac{\partial^2 f(\bar x, \bar y)}{\partial y \partial y}\Delta y \Delta y \Bigr) + \cdots \tag{1}
$$

点\( (\bar x, \bar y) \)での関数と偏微分をそれぞれ\(\bar f \)、\(\frac{\partial \bar f}{\partial x }\)のように表すと(2)式になります。

$$
f(\bar x+\Delta x, \bar y + \Delta y) = \bar f + \frac{\partial \bar f}{\partial x}\Delta x + \frac{\partial \bar f}{\partial y}\Delta y + \\ \frac{1}{2} \Bigl(\frac{\partial^2 \bar f}{\partial x \partial x}\Delta x \Delta x + \frac{\partial^2 \bar f}{\partial x \partial y}\Delta x \Delta y + \frac{\partial^2 \bar f}{\partial y \partial x}\Delta x \Delta y + \frac{\partial^2 \bar f}{\partial y \partial y}\Delta y \Delta y \Bigr) + \cdots \tag{2}
$$

次に\(\nabla \bar f, \Delta \boldsymbol{h} \)を以下のようにおくと、 (2)式は(3)式のようになります。

$$
\nabla \bar f = \left( \begin{array}{c} \partial \bar f / \partial x \\ \partial \bar f / \partial y \end{array} \right),
\Delta \boldsymbol{h} = \left( \begin{array}{c} \Delta x \\ \Delta y \end{array} \right)
$$

$$
f(\bar x+\Delta x, \bar y + \Delta y) = \bar f + \bigl( \nabla \bar f , \Delta \boldsymbol{h} \bigr) + \\
\frac{1}{2} \Bigl(
\bigl( \Delta x(\frac{\partial^2 \bar f}{\partial x \partial x}, \frac{\partial^2 \bar f}{\partial x \partial y})^T, \Delta \boldsymbol{h} \bigr) +
\bigl( \Delta y(\frac{\partial^2 \bar f}{\partial y \partial x}, \frac{\partial^2 \bar f}{\partial y \partial y})^T, \Delta \boldsymbol{h} \bigr)
\Bigr) + \cdots \tag{3}
$$

2階微分の項をさらに変形していくと、(5)式のようになります。

$$
f(\bar x+\Delta x, \bar y + \Delta y) = \bar f + \bigl( \nabla \bar f , \Delta \boldsymbol{h} \bigr) + \\
\frac{1}{2}
\Bigl( \Delta x(\frac{\partial^2 \bar f}{\partial x \partial x}, \frac{\partial^2 \bar f}{\partial x \partial y})^T + \Delta y(\frac{\partial^2 \bar f}{\partial y \partial x}, \frac{\partial^2 \bar f}{\partial y \partial y})^T , \Delta \boldsymbol{h} \Bigr)
+ \cdots \tag{4}
$$

$$
f(\bar x+\Delta x, \bar y + \Delta y) = \bar f + \bigl( \nabla \bar f , \Delta \boldsymbol{h} \bigr) +
\frac{1}{2}
\Bigl(
\left( \begin{array}{cc} \frac{\partial^2 \bar f}{\partial x \partial x} & \frac{\partial^2 \bar f}{\partial y \partial x} \\ \frac{\partial^2 \bar f}{\partial x \partial y} & \frac{\partial^2 \bar f}{\partial y \partial y} \end{array}\right) \Delta\boldsymbol{h}, \Delta \boldsymbol{h} \Bigr)
+ \cdots \tag{5}
$$

ここで対称行列に関する定理 \( (A \boldsymbol{x} , \boldsymbol{y}) = (\boldsymbol{x} , A^T\boldsymbol{y}) \) より(5)式は(6)式になります。

$$
f(\bar x+\Delta x, \bar y + \Delta y) = \bar f + \bigl( \nabla \bar f , \Delta \boldsymbol{h} \bigr) +
\frac{1}{2}
\Bigl(
\Delta\boldsymbol{h} ,
\left( \begin{array}{cc} \frac{\partial^2 \bar f}{\partial x \partial x} & \frac{\partial^2 \bar f}{\partial x \partial y} \\ \frac{\partial^2 \bar f}{\partial y \partial x} & \frac{\partial^2 \bar f}{\partial y \partial y} \end{array}\right) \Delta \boldsymbol{h} \Bigr)
+ \cdots \tag{6}
$$

ここで\(\bar H\)を次のようにおくと、(6)式は(7)式となって、ベクトルと行列で表現することが出来ました。

$$
\bar H = \left( \begin{array}{cc} \frac{\partial^2 \bar f}{\partial x \partial x} & \frac{\partial^2 \bar f}{\partial x \partial y} \\ \frac{\partial^2 \bar f}{\partial y \partial x} & \frac{\partial^2 \bar f}{\partial y \partial y} \end{array}\right) $$

$$
f(\bar x+\Delta x, \bar y + \Delta y) = \bar f + \bigl( \nabla \bar f , \Delta \boldsymbol{h} \bigr) +
\frac{1}{2}
\Bigl(
\Delta\boldsymbol{h} ,
\bar H \Delta \boldsymbol{h} \Bigr)
+ \cdots \tag{7}
$$

(7)式は3次以上の項も\(\cdots\)で考慮している形なので、左辺 = 右辺の式となっています。この3次以上の項を無視すると近似式の(8)式になります。

$$
f(\bar x+\Delta x, \bar y + \Delta y) \simeq \bar f + \bigl( \nabla \bar f , \Delta \boldsymbol{h} \bigr) +
\frac{1}{2}
\Bigl(
\Delta\boldsymbol{h} ,
\bar H \Delta \boldsymbol{h} \Bigr)
\tag{8}
$$

以上で、関数を勾配\(\nabla f\)とヘッセ行列\(H\)で表現できました。

次は多変数の場合でテイラー展開を勾配とヘッセ行列へ変換します。

この勾配とヘッセ行列で表現された式は、多変数関数にニュートン法を適用するときに用いられます。

コメント

  1. Doge より:

    まだ高校生で、好きで数学をやってる者ですが、
    勾配∇fのところは、
    なぜ、∇f = (∂f/∂x , ∂f/∂y)
    ではなく
    ∇f = (∂f/∂x , ∂f/∂x)
    なんですか?

タイトルとURLをコピーしました