Introduction
これは最適化を勉強するにあたって、とても大事になってくるので自分でまとめて残しておくことにしました。とくに、機械学習では最適化を必ず行うため、このブログのタイトルにもマッチした内容だと思います。
.
概要
- ヘッセ行列の定義
- ベクトルを用いたテイラー展開
- 関数の最適性
ヘッセ行列の定義
仮定
f は次のような条件を満たす関数です。.- f はn次元ベクトルから実数値を出力します。
このベクトルは次のように表せます。
\[x = [x_1,x_2,,,,x_n]\] - \(\forall x_i , i \in {1,2,,,n}\), f は二回偏微分可能です。
定義
ヘッセ行列は \(\frac{\partial^2}{\partial x_i \partial x_j}を (i,j)要素に持ちます。\)よってヘッセ行列は次のように表せます。
\[ H(f) = \left( \begin{array}{cccc} \frac{\partial^ 2}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & &\ldots \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \frac{\partial^ 2 f}{\partial x_1 \partial x_2} & \frac{\partial^ 2 f}{\partial x_2^ 2} & \ldots & \frac{\partial^2 f}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^ 2 f}{\partial x_n \partial x_2} & \frac{\partial^ 2 f}{\partial x_n \partial x_2} & \ldots & \frac{\partial^2 f}{\partial x_n^2} \\ \end{array} \right) \]
ベクトルを用いたテイラー展開
テイラー展開を二次の項まで行った式を与えます。\[f(a+h) = f(a) + \nabla f(a) h + \frac{1}{2} h^T \nabla f(a) h + R_3\]
ただし、 \(H=\nabla ^2 f\) はヘッセ行列です。
大事なのは二次の項までで止めていることです。理由は最適化できるようにです。
関数の最適性
定置性
- \(n \times n\)行列A が 正定置
\(\forall x \in\)n次元ベクトル空間、\(z^T A z > 0\) - \(n \times n\)行列A が 負定置
\(\forall x \in\)n次元ベクトル空間、\(z^T A z < 0\) - \(n \times n\)行列A が 半正定置
\(\forall x \in\)n次元ベクトル空間、\(z^T A z => 0\) - \(n \times n\)行列A が 半不定値
\(\forall x \in\)n次元ベクトル空間、\(z^T A z <= 0\)
最適性
もちろん上記で書いた二次の項までのテイラー展開の式は二次形式を含みます。よって関数の最適性は次のように考えられます。
- H(a)(ヘッセ行列) が正定置\(\implies\)f(a) は極小値.
- H(a)(ヘッセ行列) が負定置\(\implies\) f(a) は極大値
Reference
https://ja.wikipedia.org/wiki/%E3%83%98%E3%83%83%E3%82%BB%E8%A1%8C%E5%88%97http://www2.kaiyodai.ac.jp/~takenawa/optimization/resume10-1.pdf
http://www.dais.is.tohoku.ac.jp/~shioura/teaching/mp04/mp04-8.pdf
http://tau.doshisha.ac.jp/lectures/2008.calculus-II/html.dir/node43.html
コメント
コメントを投稿