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