Upload
liang-zeng-han
View
186
Download
5
Embed Size (px)
DESCRIPTION
semi slide for Dimitri P. Bertsekas 'Nonlinear Programming' p.22-43 , mainly about gradient method introduction.
Citation preview
.
......
研究室輪講 5 (ぬるめ)Nonlinear Programming p.22-p.43
Liang Zeng Han
April 16, 2013
April 16, 2013
Intro
Today’s Topic
我々の目標 : 制限なし非線形目的関数
f : Rn → R
の局所的な最適解を求めたい勾配法 (Gradient Method)とは?
目的関数を滑り落ちていくように現在値を更新して最小値を求めるだいたいこんな感じで更新していく:
.
......
xk+1 = xk + αkdk, αk ≥ 0 .
dk : descent direction 降下方向
αk : stepsize 降下のステップサイズ
降下方向 dk の選び方に関するいろいろな方法がある
ステップサイズ αk のよい選び方がある
April 16, 2013
Gradient Method
勾配法 -基本的な考え方-
∇f(x) : 現在地 x において f の値が最も変化する方向
この方向を逆にたどっていけば目的関数値は減少するはずである
実際にxα = x − α∇f(x), α ≥ 0
に対して、Taylor展開により
f(xα) = f(x) + ∇f(x)⊤(xα − x) + o(∥xα − x∥)= f(x) − α∥∇f(x)∥2 + o(α∥∇f(x)∥)
となっていて、条件を満たす αに対して確かに
f(xα) < f(x)
となっている
April 16, 2013
Gradient Method
勾配法 -基本的な考え方-
∇f(x)⊤d < 0を満たす降下方向 dを取れば、目的関数は減少
次のアルゴリズムにより局所的最適解に収束することを期待.Algorithm of Gradient Method..
......
STEP0. 初期値 x0 (k = 0)を適当に決めちゃうSTEP1. 現在の勾配∇f(xk) < ϵならば xを解とする
STEP2. 現在の勾配∇f(xk)を元に、降下方向 dkとステップサイズ αkを計算して
xk+1 = xk + αkdk
として現在地を更新する
STEP3. k ← k + 1 として STEP1.に戻る
April 16, 2013
Descent Directions
どのように降下方向を選ぶか
更新式 xk+1 = xk + αkdkをもう少し応用が利く形に書き換えておこう:
.
...... xk+1 = xk − αkDk∇f(xk).
Dkが正定値であれば目的関数 f は更新のたびに減少
Dkの形をうまく工夫するとよい性能が得られたりするSteep Desecent 再急降下法Newton’s Method ニュートン法Diagonally Scaled Steepest Descent 対角成分だけニュートン法Modified Newton’s Method ニュートン法 (手抜き版)Gauss-Newton Method 目的関数が平方和の時に有効
April 16, 2013
Descent Directions
アフィン変換に対する不変性
数値のアフィン変換 (単位変換など)に対して、アルゴリズムの挙動が変わらない性質を、アフィン変換に対して不変 (invariant underaffine transformation)、という [田村, 村松, p.104]
April 16, 2013
Descent Directions
収束の早さ
反復点 xk が極小解 x∗ に近くなった時に、どのくらいの速さで極小解に近づくか、を表す指標が欲しい
q-収束 (quotient) と r-収束 (root) [矢部, p.128] を導入しよう
April 16, 2013
Descent Directions
局所的収束性 : local convergence
.quotient convergence & root convergence..
......
点列 {xk|k = 0, 1, 2, . . . } が x∗に収束しているとし、∀k xk ̸= x∗
とする。∃ c > 0 と整数 k′ ≥ 0に対して
∥xk+1 − x∗∥ ≤ c ∥xk − x∗∥p (∀k ≥ k′ , p ≥ 1)
が成立する時、点列 {xk}は x∗ に q-p次収束するというa。一方で、0に q-p次収束する数列 {ξk}と ∃ c > 0に対して
∥xk − x∗∥ ≤ c ξk
が成立する時、点列 {xk}は x∗ に r-p次収束するというa特に、p = 1かつ c = {ck| limk→∞ ck = 0}の時、q-超 1次収束という
April 16, 2013
Descent Directions
Steep Desecent
.再急降下法..
......
降下行列:Dk = I.
単純
目的関数の形状によっては収束が遅い (1次収束)
アフィン変換に対して不変でない
April 16, 2013
Descent Directions
Newton’s Method
.ニュートン法..
......
降下行列:
Dk =(∇2f(xk)
)−1
∇2f(xk
)が正定値である必要がある
もし正定値じゃなかったら quasi-Newton (Section 1.7)に逃げる
2次収束 (2次形式による近似において最適解を 1反復で求める)
ヘッセ行列の逆行列の計算がネック O(n3)アフィン変換に対して不変
April 16, 2013
Descent Directions
Diagonally Scaled Steepest Descent
.対角スケール再急降下法..
......
降下行列:
Dk = diag(dk
1, dk2, . . . , d
kn
),∀id
ki > 0
dki ≃
(∂2f(xk)(∂xi)2
)−1
ヘッセ行列の逆行列が大変だから、対角行列で近似しようO(n)
April 16, 2013
Descent Directions
Modified Newton’s Method
.修正ニュートン法..
......
降下行列:Dk =
(∇2f(x0)
)−1
ヘッセ行列を更新しない手抜き版
April 16, 2013
Descent Directions
Discretized Newton’s Method
.離散ニュートン法..
......
降下行列:
Dk =(H(xk)
)−1
H(xk)はヘッセ行列に対する離散近似
April 16, 2013
Descent Directions
Gauss-Newton Method
.ガウス-ニュートン法..
......
降下行列:
Dk =(∇g(xk)∇g(xk)⊤
)where
f(x) =12∥g(x)∥2 =
12
m∑i=1
(gi(x))2
目的関数 f(x)が平方和の形をしているときに有効な方法降下行列はヘッセ行列の近似になっている (Section 1.5)
April 16, 2013
Descent Directions
Other Methods
降下方向が dk = −Dk∇f(xk) で記述されないようなうまい方法も存在する
主なものとしてConjugate Gradient 共役勾配法 (Section 1.6)Coordinate Descent 座標降下法 (?) (Section 1.8)
April 16, 2013
Stepsize Rule
どのようにステップサイズを選ぶか
どうやってステップサイズ αkを選ぶか
いろいろな方法がある
Constant Stepsize 一定ステップ幅Diminishing Stepsize だんだん減少するステップ幅Minimization RuleLimited Minimization RuleArmijo Rule アルミホの基準Goldstein Rule アルミホの基準の改良Wolfe Rule アルミホの基準の改良
April 16, 2013
Stepsize Rule
Constant Stepsize
.
......
ステップサイズ αk :
αk = s , s > 0
どうやって s を決めるのか
April 16, 2013
Stepsize Rule
Diminishing Stepsize
.
......
ステップサイズ αk :
limk→∞
αk → 0 ,
∞∑k=0
αk = ∞
を満足するように選ぶ
収束するとわかっている場合に使える
April 16, 2013
Stepsize Rule
Minimization Rule
.
......
ステップサイズ αk :
f(xk + αkdk) = minα≥0
f(xk + αdk)
を満足するように選ぶ
いわゆる、直線探索 (line search) 問題
f(x) が狭義凸 2次関数の時は解ける ([田村, 村松, ex3.2])が、一般的に解くのは困難
April 16, 2013
Stepsize Rule
Limited Minimization Rule
.
......
ステップサイズ αk :
f(xk + αkdk) = minα∈[0,s]
f(xk + αdk) , s > 0
を満足するように選ぶ
一度の探索の距離に制限あり
Minimization Rule より実装はしやすい、らしい
どうやって s を決めるのか
April 16, 2013
Stepsize Rule
Armijo Rule
.
......
ステップサイズ αk :
f(xk + αkdk) ≤ f(xk) + σαk∇f(xk)⊤dk
0 < σ < 1 , αk = βmk
0 < β < 1 , mk = 1, 2, 3, . . .
を満足するように選ぶ
Fig 1.2.6 のようなケースを回避するための直線探索法
幾何的な意味は Fig 1.2.7 参照
April 16, 2013
Stepsize Rule
Goldstein Rule
.
......
ステップサイズ αk :
f(xk + αkdk) ≤ f(xk) + σαk∇f(xk)⊤dk
f(xk + αkdk) ≥ f(xk) + (1 − σ)αk∇f(xk)⊤dk
0 < σ < 1/2 , αk = βmk
0 < β < 1 , mk = 1, 2, 3, . . .
を満足するように選ぶ
幾何的な意味は Fig 1.2.8 参照
April 16, 2013
Stepsize Rule
Wolfe Rule
.
......
ステップサイズ αk :
f(xk + αkdk) ≤ f(xk) + σ1αk∇f(xk)⊤dk
σ2∇f(xk)⊤dk ≤ ∇f(xk + αkdk)⊤dk
0 < σ1 < σ2 < 1 , αk = βmk
0 < β < 1 , mk = 1, 2, 3, . . .
を満足するように選ぶ
幾何的な意味は ...
April 16, 2013
Convregence Issue
収束先に関して
勾配法により停留点への収束を期待できる
目的関数が凸ならば、大域的最適解へ収束凸じゃなかったら、どうする?
異なる初期値から複数回試してみる勾配法を諦める
{x|f(x) ≤ f(xo)} が有界かつ反復ごとに目的関数の値が減少するならば、収束先は少なくとも 1つ以上存在
April 16, 2013
Limit Points of Gradient Methods
それ、本当に停留点ですか
降下方向 dkと勾配∇f(xk)が漸近的に垂直に近づく場合、すなわち
∇f(xk)⊤dk
∥∇f(xk)∥∥dk∥→ 0
である時、目的関数の更新がほとんどされない
どういうときにこんなことが起きるのか、がわかるとうれしい
April 16, 2013
Limit Points of Gradient Methods
それ、本当に停留点ですか
降下方向 dk = −Dk∇f(x)k の正定値対称行列Dkに対して、∃c1, c2 ≥ 0が存在して
c1∥z∥2 ≤ z⊤Dkz ≤ c2∥z∥2 , (∀z ∈ Rn , k = 0, 1, 2, . . . )
であり、故に
|∇f(xk)⊤dk| = |∇f(xk)⊤Dk∇f(xk)| ≥ c1∥∇f(x)k∥2,
∥dk∥2 = |∇f(xk)⊤(Dk)2∇f(xk)| ≤ c22∥∇f(xk)∥2.
よって、∇f(xk)がある程度大きければ、漸近的に垂直にはならない
April 16, 2013
Limit Points of Gradient Methods
gradient related
.gradient related..
......
与えられた勾配法により得た列 {xk, dk}に対して以下の条件を満たす時、{dk}は {xk}に対して gradient related であるという:
任意の非停留点に収束する部分列 {xk}k∈K に対応する{dk}k∈K が有界かつ
lim supk→∞,k∈K
∇f(xk)⊤dk < 0
を満たす
April 16, 2013
Limit Points of Gradient Methods
gradient related
以下の条件が満たされる時、{dk} は gradient related である
.
......
∃c1, c2 > 0, p1, p2 ≥ 0,∀k に対して...1 c1∥∇f(xk)∥p1 ≤ −∇f(xk)⊤dk , ∥dk∥ ≤ c2∥∇f(xk)∥p2 ....2 降下方向 dk = −Dk∇f(xk) (Dk:正定値対称行列)に対して
c1∥∇f(xk)∥p1∥z∥2 ≤ z⊤Dkz ≤ c2∥∇f(xk)∥p2∥z∥2 , ∀z ∈ Rn
{dk} が gradient related であるならば、(Limited) Minimization Ruleや Armijo Rule を元にステップ幅を選べば必ず停留点に収束(Prop.1.2.1,1.2.2)
April 16, 2013
Termination of Gradient Methods
収束判定
...1 ∥∇f(xk)∥ ≤ ϵ : ϵ の大きさに関する事前知識が必要
...2 ∥∇f(xk)∥∥∇f(x0)∥ ≤ ϵ : 一見よさげだが、さほど好転してない
...3 ∥dk∥ ≤ ϵ : やはり ϵ の大きさに関する事前知識が必要
...4 上記の基準を AND で使う
...5 ヘッセ行列の正値性を仮定できる場合にもう少しマシな議論ができる?
April 16, 2013
Gradient Methods with Random and Nonrandom Errors
誤差に関する考察
∇f(xk) だと思って計算しているものは実は厳密にそうでない
gk = ∇f(xk) + ek
ekの原因は、丸め誤差、離散化による誤差とかがある (Section 1.5)
∥ek∥ ≤ ∥f(xk)∥ であれば大抵は問題ない
April 16, 2013
The Role of Convergence Analysis
収束の解析の必要性について
お説教 (?)パート我々は解を速く求められれば満足なのに、どうして小難しい議論をいちいちする必要があるのか?
...1 目的関数の形、性質に応じたアルゴリズムの選択の必要がある
...2 使用している手法の定性的なふるまい、メリット、デメリットをしておくに越したことはない
...3 手法選択の際の基準を作りたい (収束の速さとか)
April 16, 2013