4.5. 準ニュートン法
2020/1/13公開
Last updated
Was this helpful?
2020/1/13公開
Last updated
Was this helpful?
1. 初期値を定める(定め方は任意である)
2. 探索方向を
または
によって定める(ただしはセカント条件を満たす正定値行列である)
3. 直線探索によってステップサイズを定める
4. 収束するまで以下の式を用いて更新を繰り返す
または
準ニュートン法(quasi-Newton method)は Hesse 行列を勾配によって近似してニュートン法に近い形で最適化を行う手法である。
Hesse 行列が陽な形で計算できない場合
Hesse 行列を直接計算するには計算量が大きくなる場合
高速
省メモリ
高精度
を達成しており、現代で大規模最適化問題を解く際の主流の方法となっている。
ニュートン法の原理の説明のときに現れた 、2次近似した関数の極値への移動を表す (4.3.6) 式を再び以下に示す。
であり、整理すれば
と書き直せる。上の式で誤差の項を無視した
となってセカント条件の第2式が求まる。
準ニュートン法は超1次収束のアルゴリズムである。
の更新式は DFP 法や BFGS 法の項目を参照のこと。
準ニュートン法においても実装の仕方によっては近似した Hesse 行列の逆行列を計算せねばならない場合はあるが、その場合でも
には有効である。また、BFGS 法などは Hesse 行列の逆行列を直接アップデートできるので逆行列の計算を回避できる。さらに L-BFGS 法ではをより小さいサイズのベクトルで近似するので、
準ニュートン法ではこのまたはその逆行列の計算を回避したい。そこでを近似する正定値行列を導入して
とする。ニュートン法では更新方向とステップサイズを合わせたが直接求まったが、準ニュートン法では Hesse 行列を近似したため、改めてを直線探索によって求める必要が生じる(Hesse 行列の近似がうまく行っていることを期待して最初はで固定して試してみてもよいが、Hesse 行列は一般に正定値であるとは限らない)。
を正定値行列に限ったのは、更新方向が目的関数の降下方向であることを保証するためである(証明は最急降下法のページに記した)。
の選び方には自由度がある。このの選び方によって、これから紹介する DFP 法や BFGS 法といったバリエーションが生じる。
また、L-BFGS 法ではを計算せずその逆行列を直接更新することが可能なので、とおいて
とする。なので少々紛らわしいが、慣習的にそう置かれることが多いので容赦していただきたい(数学は常に文字不足に悩まされているのだ)。
正定値行列の選び方には自由度があるといったが、準ニュートン法では正定値性に加えて以下の条件を課す。
これをセカント条件(secant condition)という。上式の第1式と第2式はが正則ならば同値であり、通常はどちらか一方を満たせばよいものとする。
セカント条件は勾配に対する Taylor の定理から導出される。についての周りで Taylor の定理を適用すると
である。ここでとおくと、
となる。この式は Hesse 行列と (4.5.4) 式のを用いれば
がセカント条件の第1式である。(4.5.8) 式の両辺に左からをかければ