最適化手法 講義資料(平成 26 年度冬学期) 準 Newton 法の概要 連続微分可能な関数 f : Rn → R の無制約最小化問題を考える.簡単のために,記号 fk := f (xk ), ∇fk := ∇f (xk ), ∇2 fk := ∇2 f (xk ) を用いる. Newton 法では,Newton 方程式 ∇2 fk d = −∇fk (1) の解として探索方向 dk を定義する.一方,準 Newton 法では,(1) の ∇2 fk を適当な正定値行列 Bk で近似する.つまり,準 Newton 法における探索方向 dk は,線形方程式 Bk d = −∇fk (2) の解として定められる.準 Newton 法の概要は,次の通りである. アルゴリズム 1 (準 Newton 法のプロトタイプ). Step 0: 初期点 x0 および B0 ≻ O を選ぶ.十分小さい ϵ > 0 を定め,k = 0 とおく. Step 1: 停止条件 ∥∇fk ∥ < ϵ が満たされていれば,xk を解として終了. Step 2: 線形方程式 (2) を解いて探索方向 dk を求める. Step 3: 直線探索により αk を定める(Wolfe の条件などを用いる). Step 4: xk+1 = xk + αk dk と更新する. Step 5: Bk+1 ≻ O を生成する(後述).k ← k + 1 とおいて Step 1 へ. アルゴリズム 1 の Step 5 では,Bk , xk , xk+1 , ∇fk , ∇fk+1 を用いて ∇2 fk+1 の近似行列 Bk+1 を 生成する.簡単のために sk := xk+1 − xk = αk dk , y k := ∇fk+1 − ∇fk , ρk := 1 y⊤ k sk とおく.Bk+1 を生成する方法として,次の二つの公式がよく知られている: 1. BFGS 公式 Bk+1 = Bk − Bk sk s⊤ k Bk + ρk y k y ⊤ k. ⊤ sk Bk sk (3) 2. DFP 公式 ⊤ ⊤ Bk+1 = (I − ρk y k s⊤ k )Bk (I − ρk sk y k ) + ρk y k y k . 1 (4) (3) や (4) で定められる Bk+1 は,次の性質を満たすことが確認できる: (a) Bk+1 はセカント条件 Bk+1 sk = y k を満たす. (b) Bk が対称行列ならば Bk+1 も対称行列である. (c) Bk ≻ O かつ s⊤ k y k > 0 ならば Bk+1 ≻ O である. このうち,性質 (c) の仮定に注目する.実は,Step 3 において αk を Wolfe の条件を満たすように 選ぶと,条件 s⊤ k y k > 0 は自動的に満たされる.というのも,まず,sk の定義および Wolfe の条件 ⊤ s ≥ c ∇f ⊤ s が得られる.このことと y の定義より ∇f (xk + αk dk )⊤ dk ≥ c2 ∇fk⊤ dk より ∇fk+1 2 k k k k ⊤ ⊤ ⊤ y⊤ k sk = (∇fk+1 − ∇fk ) sk ≥ (c2 − 1)∇fk sk = (c2 − 1)αk ∇fk dk (5) が得られる.Bk ≻ O ならば,dk は降下方向である(つまり,∇fk⊤ dk < 0 を満たす).このことと c2 < 1 より,(5) の最右辺は正である.従って,s⊤ k y k > 0 が成り立つことが分かる. Bk の更新公式 (3) や (4) に対して Sherman–Morrison–Woodbury の公式 1 を適用すると,Bk+1 の −1 逆行列 Hk+1 ≡ Bk+1 を陽に求めることができる.このようにして得られる Hk の更新公式を,H 公 式と呼ぶ.これに対して,(3) および (4) は B 公式と呼ばれることもある. 1. BFGS 公式の H 公式 ⊤ ⊤ Hk+1 = (I − ρk sk y ⊤ k )Hk (I − ρk y k sk ) + ρk sk sk . (6) 2. DFP 公式の H 公式 Hk+1 = Hk − Hk y k y ⊤ k Hk + ρk sk s⊤ k. y k Hk y k (7) アルゴリズム 2 (BFGS 公式の H 公式を用いた準 Newton 法). Step 0: 初期点 x0 および H0 ≻ O を選ぶ.十分小さい ϵ > 0 を定め,k = 0 とおく. Step 1: 停止条件 ∥∇fk ∥ < ϵ が満たされていれば,xk を解として終了. Step 2: 探索方向を dk = −Hk ∇fk により求める. Step 3: 直線探索により Wolfe の条件を満たすように αk を定める. Step 4: xk+1 = xk +αk dk と更新する.また,sk = xk+1 −xk , y k = ∇fk+1 −∇fk , ρk = 1/y ⊤ k sk とおく. Step 5: (6) により Hk+1 を計算する.k ← k + 1 とおいて Step 1 へ. アルゴリズム 2 では,Step 2 において探索方向 dk は行列にベクトルを乗じることで求められる. 従って,アルゴリズム 2 を実行するには,1 回の反復あたり O(n2 ) の計算で済む.つまり,探索方向 を求めるために (2) のような線形方程式を解く必要がないことが,H 公式の利点である. (November 12, 2014, 寒野) ˆ = A + ab⊤ を考える.このとき,Aˆ が正則なら 正則な行列 A ∈ Rn×n およびベクトル a, b ∈ Rn に対して,行列 A −1 ⊤ −1 (A a)(b A ) ˆ−1 = A−1 − ばA が成り立つ. 1 + b⊤ A−1 a 1 2
© Copyright 2024 ExpyDoc