1変数の場合
2階導関数も計算できるなら、効率的な方法があります。
軸上の点の近くの点での関数の値はテイラー展開して、
と書けます。
ここで、はの次以上の項で、が小さいと急速に小さくなります。
これを無視して、の2次式を最大化(最小化)するために、で微分して、とおきます。
よりの近似値は
となります。
これを反復する方法をニュートン法と呼びます。
この方法を提案したのはニュートンですが、ラフソンも類似の方法を提案しているので、「ニュートン・ラフソン法」とも呼ばれます。
の高次の項を無視することは、関数を2次近似し、その極値を求めることに相当します。
イメージを下図に記しました。
多変数の場合
点 の近くの点 での関数 の値はテイラー展開して、
と書けます。
ここで、バーは点 での値を表します。
の を無視して、 で偏微分して、 とおきます。
ヘッセ行列
の点における値をとおきます。
の成分表記をベクトルと行列でまとめて書くと、以下のようになります。
よりの近似値は
となります。
の高次の項を無視することは、関数を2次近似し、その極値を求めることに相当します。
多変数の場合 - ベクトルで計算
上記では、 で微分しましたが、 で微分することにより、式 を導いていきます。
点 の近くの点 での関数 の値はテイラー展開して、
と書けます。
の を無視して、 で偏微分して、 とおきます。
は なので、代入すると、式 が導けます。
多変数の場合のニュートン法アルゴリズム
1. の初期値を与える。
2. 勾配とヘッセ行列のにおける値を計算する。
3. 次の連立1次方程式の解を計算する。
※ステップ3でと書いていないのは、直接を解く方が効率なことが多い為です。
偉人の名言
神は細部に宿る
ミース・ファンデルローエ
参考文献
これなら分かる最適化数学 p87-97
動画
なし