31
. . 研究室輪講 5(ぬるめ) Nonlinear Programming p.22-p.43 Liang Zeng Han April 16, 2013 April 16, 2013

Nonlinear Programming 02

Embed Size (px)

DESCRIPTION

semi slide for Dimitri P. Bertsekas 'Nonlinear Programming' p.22-43 , mainly about gradient method introduction.

Citation preview

Page 1: Nonlinear Programming 02

.

......

研究室輪講 5 (ぬるめ)Nonlinear Programming p.22-p.43

Liang Zeng Han

April 16, 2013

April 16, 2013

Page 2: Nonlinear Programming 02

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

Page 3: Nonlinear Programming 02

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

Page 4: Nonlinear Programming 02

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

Page 5: Nonlinear Programming 02

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

Page 6: Nonlinear Programming 02

Descent Directions

アフィン変換に対する不変性

数値のアフィン変換 (単位変換など)に対して、アルゴリズムの挙動が変わらない性質を、アフィン変換に対して不変 (invariant underaffine transformation)、という [田村, 村松, p.104]

April 16, 2013

Page 7: Nonlinear Programming 02

Descent Directions

収束の早さ

反復点 xk が極小解 x∗ に近くなった時に、どのくらいの速さで極小解に近づくか、を表す指標が欲しい

q-収束 (quotient) と r-収束 (root) [矢部, p.128] を導入しよう

April 16, 2013

Page 8: Nonlinear Programming 02

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

Page 9: Nonlinear Programming 02

Descent Directions

Steep Desecent

.再急降下法..

......

降下行列:Dk = I.

単純

目的関数の形状によっては収束が遅い (1次収束)

アフィン変換に対して不変でない

April 16, 2013

Page 10: Nonlinear Programming 02

Descent Directions

Newton’s Method

.ニュートン法..

......

降下行列:

Dk =(∇2f(xk)

)−1

∇2f(xk

)が正定値である必要がある

もし正定値じゃなかったら quasi-Newton (Section 1.7)に逃げる

2次収束 (2次形式による近似において最適解を 1反復で求める)

ヘッセ行列の逆行列の計算がネック O(n3)アフィン変換に対して不変

April 16, 2013

Page 11: Nonlinear Programming 02

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

Page 12: Nonlinear Programming 02

Descent Directions

Modified Newton’s Method

.修正ニュートン法..

......

降下行列:Dk =

(∇2f(x0)

)−1

ヘッセ行列を更新しない手抜き版

April 16, 2013

Page 13: Nonlinear Programming 02

Descent Directions

Discretized Newton’s Method

.離散ニュートン法..

......

降下行列:

Dk =(H(xk)

)−1

H(xk)はヘッセ行列に対する離散近似

April 16, 2013

Page 14: Nonlinear Programming 02

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

Page 15: Nonlinear Programming 02

Descent Directions

Other Methods

降下方向が dk = −Dk∇f(xk) で記述されないようなうまい方法も存在する

主なものとしてConjugate Gradient 共役勾配法 (Section 1.6)Coordinate Descent 座標降下法 (?) (Section 1.8)

April 16, 2013

Page 16: Nonlinear Programming 02

Stepsize Rule

どのようにステップサイズを選ぶか

どうやってステップサイズ αkを選ぶか

いろいろな方法がある

Constant Stepsize 一定ステップ幅Diminishing Stepsize だんだん減少するステップ幅Minimization RuleLimited Minimization RuleArmijo Rule アルミホの基準Goldstein Rule アルミホの基準の改良Wolfe Rule アルミホの基準の改良

April 16, 2013

Page 17: Nonlinear Programming 02

Stepsize Rule

Constant Stepsize

.

......

ステップサイズ αk :

αk = s , s > 0

どうやって s を決めるのか

April 16, 2013

Page 18: Nonlinear Programming 02

Stepsize Rule

Diminishing Stepsize

.

......

ステップサイズ αk :

limk→∞

αk → 0 ,

∞∑k=0

αk = ∞

を満足するように選ぶ

収束するとわかっている場合に使える

April 16, 2013

Page 19: Nonlinear Programming 02

Stepsize Rule

Minimization Rule

.

......

ステップサイズ αk :

f(xk + αkdk) = minα≥0

f(xk + αdk)

を満足するように選ぶ

いわゆる、直線探索 (line search) 問題

f(x) が狭義凸 2次関数の時は解ける ([田村, 村松, ex3.2])が、一般的に解くのは困難

April 16, 2013

Page 20: Nonlinear Programming 02

Stepsize Rule

Limited Minimization Rule

.

......

ステップサイズ αk :

f(xk + αkdk) = minα∈[0,s]

f(xk + αdk) , s > 0

を満足するように選ぶ

一度の探索の距離に制限あり

Minimization Rule より実装はしやすい、らしい

どうやって s を決めるのか

April 16, 2013

Page 21: Nonlinear Programming 02

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

Page 22: Nonlinear Programming 02

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

Page 23: Nonlinear Programming 02

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

Page 24: Nonlinear Programming 02

Convregence Issue

収束先に関して

勾配法により停留点への収束を期待できる

目的関数が凸ならば、大域的最適解へ収束凸じゃなかったら、どうする?

異なる初期値から複数回試してみる勾配法を諦める

{x|f(x) ≤ f(xo)} が有界かつ反復ごとに目的関数の値が減少するならば、収束先は少なくとも 1つ以上存在

April 16, 2013

Page 25: Nonlinear Programming 02

Limit Points of Gradient Methods

それ、本当に停留点ですか

降下方向 dkと勾配∇f(xk)が漸近的に垂直に近づく場合、すなわち

∇f(xk)⊤dk

∥∇f(xk)∥∥dk∥→ 0

である時、目的関数の更新がほとんどされない

どういうときにこんなことが起きるのか、がわかるとうれしい

April 16, 2013

Page 26: Nonlinear Programming 02

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

Page 27: Nonlinear Programming 02

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

Page 28: Nonlinear Programming 02

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

Page 29: Nonlinear Programming 02

Termination of Gradient Methods

収束判定

...1 ∥∇f(xk)∥ ≤ ϵ : ϵ の大きさに関する事前知識が必要

...2 ∥∇f(xk)∥∥∇f(x0)∥ ≤ ϵ : 一見よさげだが、さほど好転してない

...3 ∥dk∥ ≤ ϵ : やはり ϵ の大きさに関する事前知識が必要

...4 上記の基準を AND で使う

...5 ヘッセ行列の正値性を仮定できる場合にもう少しマシな議論ができる?

April 16, 2013

Page 30: Nonlinear Programming 02

Gradient Methods with Random and Nonrandom Errors

誤差に関する考察

∇f(xk) だと思って計算しているものは実は厳密にそうでない

gk = ∇f(xk) + ek

ekの原因は、丸め誤差、離散化による誤差とかがある (Section 1.5)

∥ek∥ ≤ ∥f(xk)∥ であれば大抵は問題ない

April 16, 2013

Page 31: Nonlinear Programming 02

The Role of Convergence Analysis

収束の解析の必要性について

お説教 (?)パート我々は解を速く求められれば満足なのに、どうして小難しい議論をいちいちする必要があるのか?

...1 目的関数の形、性質に応じたアルゴリズムの選択の必要がある

...2 使用している手法の定性的なふるまい、メリット、デメリットをしておくに越したことはない

...3 手法選択の際の基準を作りたい (収束の速さとか)

April 16, 2013