概要
ニュートン法は、f(x)=0の解αを求める数値計算法で、最急降下法に比べて収束が早い特徴があります。ニュートン・ラフソン法とも呼びます。この記事では多変数の場合におけるアルゴリズムについて記載しています。多変数の場合、の解を求めるには
の次元数分の連立方程式が必要です。この解を求めることから議論が出発し、最終的に、ある多変数関数
の
の解を求めるニュートン法の更新式を求めます。機械学習においては連立方程式の解を求める更新式よりも、勾配が0となる解を求める更新式のほうが重要度が高いのではと思います。
1変数の場合は以下の記事に記載しました。
アルゴリズム
の続きです。今回は多変数のニュートン法です。のような
個の連立方程式
の解を、1変数のニュートン法と同様に各関数を1次近似し、近似解を求めることを考えます。点
における1次近似は、接線、接平面の公式により
です。なおここでは、
を
で偏微分し、
を代入したものを表します。各関数で
を求め、
を行列式でまとめて書けば、
となります。ここでは、
に
を代入したものを表します。式(3)を整理すれば、
となり、1次近似による近似解が求められました。1変数のときと同様に、これを繰り返せば真の解に近づいていきます。
さて、式(4)で求められるものはとなる
です。ある1つの関数における
となる点が求めたければ、式(4)において
と置き換えれば、
となります。ここで右辺の行列は点におけるヘッセ行列になっています。*1
、
とし、ヘッセ行列
と勾配の記号を用いれば、
となります。ニュートン法(1変数の場合)の式(4)を多変数に拡張した形になっています。
以上をまとめると、
の解を求めるニュートン法のアルゴリズム
の初期値を設定する。
によって
を更新する
- 停止条件(更新量が一定値以下になるなど)が満たされるまで手順2を繰り返す
※
実験
別の記事にしました。