Newton Method復習:何でヘシアンの
逆行列が必要だったんだっけ?
f ( x)を二次で近似.
1
f ( x d ) f ( x) f ( x)' d d ' ( 2 f ( x))d o(|| d || 2 )
2
f ( x d )の二次近似が最小 dで微分して0.
f ( x) ( 2 f ( x))d 0
ニュートン方向:d ( 2 f ( x)) 1 f ( x)
ヘシアンの逆行列: 2 f ( x)) 1
(
ヘシアンの逆行列が必要
3.
ヘシアンは正定値がいい
ヘシアンが正定値⇒進めば必ず減尐 (f( x )' d k 0)
k
z 0; z ' 2 f ( x k ) z 0 z f ( x k )とおいて,
z 0; z ' 2 f ( x k ) 1 z 0 f ( x k )' 2 f ( x k ) 1 f ( x k ) 0
z 0; z ' 2 f ( x k ) 1 z 0 d k ' f ( x k ) 0
特に書いていませんが,次の事実も,一応,再確認:
fが凸関数⇔ヘシアンは半正定値
(最適化法p.99)
行列Mが正定値⇔M^(-1)も正定値
4.
Newton Method
→Quasi Newton Method
Newton
Quasi-Newton
1)Dkが常に正定値だと嬉しい
2)Naïveに実装するとメモリがたくさん必要
→実は,メモリは省メモリで済むよ=L-BFGS
5.
どうやってヘシアンを近似するか:
セカント条件
1.181のDを近似したい.
1
f ( x) x' Ax b' xのとき,
2
2 f ( x k ) A, f ( x k 1 ) Ax k 1 , f ( x k ) Ax kだから,
f ( x k 1 ) f ( x k ) 2 f ( x k )( x k 1 x k )が成り立つ.
ここには書いてありませんが,1.182式はセカント条件
というものです.
6.
セカント条件:この辺で文字をまとめる
1.181のDを近似したい.
この本の記法はちょっと特殊 ヘシアンの逆行列の近似:H k 1
普通は,右のように表記する: ヘシアンの近似:B k 1
s k x k 1 x k
y k f ( x k 1 ) f ( x k )
B k 1s k y k , H k 1 y k s k
7.
セカント条件はこう考えれば当たり前
各成分ごとに見れば,f ( xk )の一次近似をまとめて書いただけ.
df
一次元で考えると,関数 ( x)の一次近似をやっているだけ.
dx
df k 1 df k d df k 1 k 1 k
( x ) ( x ) ( x )( x x )
dx dx dx dx
8.
どうやって近似するか
f ( x k 1 ) f ( x k ) 2 f ( x k )( x k 1 x k )
q k f ( x k 1 ) f ( x k )
q,pを次のように定義:
p k x k 1 x k
すると,q k 2 f ( x k ) p kより,
x k 1 x k k d k に注意してDFPとBFGS
d k D k f ( x k )
を導入
k ; k 0の時,DFP.
k ; k 1の時,BFGS.
線形探索が最適なら( kが最適),両者は一致.
11.
この本には書いていないこと:1
ヘシアンの逆行列の近似:H k 1: (この本のD k 1 )
ヘシアンの近似:B k 1
s k x k 1 x k : (この本のp k )
y k f ( x k 1 ) f ( x k ) : (この本のq k )
とりあえず,ベクトルu , vを用いて更新式を次のようにする.
H k 1 H k auu 'bvv'
ここで,u k s k , v k H k y kとおいて,
セカント条件H k 1 y k s kを満たすようにして,
au ' y k 1, bv' y k 1
として正規化すると,DFP公式が出てくる.
k 1 ss' Hyy ' H
H H
k
だから,DFP公式,BFGS公式がセカント条件
s' y y ' Hy を満たすのは,ある意味当たり前.
12.
この本には書いていないこと:2
DFP公式→BFGS公式
k 1 ss' Hyy' H
H H
k
s' y y ' Hy
これは,ヘシアンの逆行列の更新式を
H k 1 H k auu 'bvv'として
セカント条件H k 1 y k s kを課した式.
同じことを,ヘシアンの更新式でやって
B k 1 B k auu 'bvv'
として,セカント条件B k 1 y k s kに関して更新式を作り,
できたB kに関する更新式の逆行列をとって
H kに関する更新式に直すとBFGS公式が出てくる(はず).
13.
正定値性の証明
k 1
D が正定値 D にしたい
k
参考:Wolfの基準
0 1について,
f ( x k )' d k f ( x k 1 )' d k
となるように kを直線探索する.
14.
k 1
f (x )' d f ( x
k k
)' d k
の意味
f ( x k )' d k f ( x k 1 )' d k
←この傾き<↓この傾き
k