next up previous
: 勾配を使う計算法 : 1次アルゴリズム : 1次アルゴリズム

関数の勾配


\begin{displaymath}
l(x,y)=x+y+x^2+y^2
\end{displaymath}

を例にとって説明します。$l(x,y)$を 列ベクトルと行列

\begin{displaymath}
{\bf p}
=\left (
\begin{array}{c}
1\\
1\\
\end{array}\righ...
...}=
\left (
\begin{array}{cc}
1&0\\
0&1\\
\end{array}\right )
\end{displaymath}

を使って表現すると


\begin{displaymath}
l(x,y)
=(1,1)
\left (
\begin{array}{c}
x\\
y\\
\end{arra...
...ight )
\left (
\begin{array}{c}
x\\
y\\
\end{array}\right )
\end{displaymath}

から

\begin{displaymath}
l({\bf x}) ={\bf p}^T {\bf x} + {\bf x}^T {\bf Q}{\bf x}
\end{displaymath}

と書けます。

ここで,$l(x,y)$$x,y$についての偏微分係数はそれぞれ,

\begin{eqnarray*}
&&\frac{\partial l}{\partial x}(x,y)=1+x \\
&&\frac{\partial l}{\partial y}(x,y)=1+y
\end{eqnarray*}



です。これらを要素にもつ列ベクトルは, $l({\bf x})=l(x,y)$${\bf x}$について の微分であり,

\begin{displaymath}
\frac{d l}{d {\bf x}}({\bf x})
=\left (
\begin{array}{c}
\fr...
...al y}(x,y)\\
\end{array}\right )
={\bf p}+ 2 {\bf Q} {\bf x}
\end{displaymath}

です。 また,$l({\bf x})$の2階微分は

\begin{displaymath}
\frac{d^2 l}{d {\bf x}^2}({\bf x})= 2 {\bf Q}
\end{displaymath}

です。さて,

\begin{displaymath}
\Delta {\bf x}=
\left (
\begin{array}{c}
\Delta x\\
\Delta y\\
\end{array}\right )
\end{displaymath}

として,

\begin{eqnarray*}
&&l({\bf x} +\Delta {\bf x}) \\
&&={\bf p}^T ( {\bf x} +\Delt...
...ta {\bf x}^T \frac{d^2 l}{d {\bf x}^2}({\bf x})
\Delta {\bf x}
\end{eqnarray*}



結局,


\begin{displaymath}
l({\bf x} +\Delta {\bf x})
=l({\bf x})+\frac{d l}{d {\bf x}...
... {\bf x}^T \frac{d^2 l}{d {\bf x}^2}({\bf x})
\Delta {\bf x}
\end{displaymath}

となります。

無論,一般の関数$l({\bf x})$,解析的な関数なら,

\begin{displaymath}
l({\bf x} +\Delta {\bf x})
=l({\bf x})+\frac{d l}{d {\bf x}...
...d {\bf x}^2}({\bf x})
\Delta {\bf x} +{\bf o}(\Delta {\bf x})
\end{displaymath}

となります。 ${\bf o}(\Delta {\bf x})$は3次以上の高位の項です。


next up previous
: 勾配を使う計算法 : 1次アルゴリズム : 1次アルゴリズム
Yasunari SHIDAMA