BFGSアップデートの直感的な動機


15

私は数値分析調査クラスを教えており、最適化の背景/直感が限られている学生のためのBFGS法の動機付けを求めています!

JのK(→ X K - → Xのk - 1)= F (→ X K)- F (→ Xのk - 1)‖Jk−Jk−1‖あちこち2Jk(バツ→k−バツ→k−1)=f(バツ→k)−f(バツ→k−1)

BFGSアップデートの派生は、はるかに複雑で曖昧なようです!特に、更新がランク2であるか、特定の形式をとるべきであるとアプリオリに仮定したくない。BroydenのようなBFGS Hessianの更新には、変則的に見える短い動機がありますか?


4
任意の更新を許可する場合、Newtonのメソッドで完全なヘッセ行列を使用できます。低ランク更新の1つの主要な計算上の利点は、近似ヘッセ行列の分解を非常に迅速に更新できることです。
— ブライアンボーチャーズ

回答:


12

BFGSの導出は、(厳密に)凸コスト関数を考慮すると、より直感的です。

ただし、いくつかの 背景 情報が必要です。たとえば、凸関数 を最小化するとし 近似解x_kがあるとします。そして、1は最小の近似Fを切り捨てテイラー展開の最小値によって F(X_K + P)\約F(X_K)+ \ナブラF(X_K)^ Tpを+ \ FRAC {1} {2} P ^ TH( x_k)p。\ quad(*) つまり、(*)が最小になるようにpを探し、x_ {k + 1}:= x_k + pを設定します。(*)の勾配を計算します-「pに関して」-そしてそれをゼロに設定すると関係が得られます X K F F (X 、K + P )≈ F (X 、K)+ ∇ F (X 、K )Tの P + 1

f(バツ)→分バツ∈Rn。
バツkfP (* )X K + 1:= X K + P (* )P H (X K)[ X K + 1 - X K ] = ∇ F (X 、K + 1)- ∇ F (X 、K)、
f(バツk+p)≈f(バツk)+∇f(バツk)Tp+12pTH(バツk)p。(∗)
p(∗)バツk+1:=バツk+p(∗)p
H(バツk)[バツk+1−バツk]=∇f(バツk+1)−∇f(バツk)、
ここで、Hは「勾配のヤコビアン」またはヘッセ行列です。

ヘッセ行列の計算と反転は高価なので...


... 短い答え

(Broydenの更新を参照)BFGS更新H_ {k + 1} ^ {-1} は、賢明に選択された重み付きフロベニウスノルムで \ | H_k ^ {-1}-H ^ {-1} \ | _W をHk+1−1最小化する かもしれません。の対象

‖Hk−1−H−1‖W
  1. H[バツk+1−バツk]=∇f(バツk+1)−∇f(バツk) -これが目的です-そして
  2. HT=Hヘッセ行列は対称であるため、H ^ T = Hです。

重量の次に選択にの逆数として平均ヘッセ、cf。ここでは、ステートメントではあるが証明なしで、BFGS更新式を提供します()。W‖H‖W:=‖W1/2HW1/2‖F G:=∫01H(バツk+τp)dταk=1

主なポイントは次のとおりです。

  • 二次近似の解によって実際のコストの解を近似しようとします
  • ヘッセ行列とその逆の計算は高価です。単純な更新が好まれます。
  • 更新は、実際のヘッセ行列ではなく、逆行列に対して最適に選択されます。
  • ランク2の更新であることは、フロベニウスノルムの重みの特定の選択の結果です。

長い答えは、非凸問題(探索方向のスケーリング必要と湾曲状態が表示され、この作品を作る方法を、重みを選択する方法を含むべきである)、そしてどのように更新のため、実際の式を導出します。参照はこちら(ドイツ語)。p


ありがたいことに、これは素晴らしいことです(そして、Nocedal&Wrightでの議論に基づいて、多かれ少なかれ期待していました)。残っている質問の1つは、なぜと標準を選択するのかということです。私はそれがユニットに関係していることを理解していますが、これを行うと規範の多くの潜在的な選択があります。WW
— ジャスティンソロモン

そうですね。よくわかりません。1つの答えは、計算が簡単で適切に機能する更新式を提供することです。歴史的に、このアップデートへのアプローチ-アップデートの違いを最小限に抑える-はShannoによるものでした。重みの特定の選択がブロイデンとフレッチャーの公式につながることを発見したのは審判(ゴールドファーブ)でした。BFGSの開発者の直観については、この博士論文(BFGS secantメソッドの歴史的発展)を参照してください。ただし、3つのアプローチはすべて非常に抽象的です。
— 1

1
興味深いことに、ガイダンスをありがとう!私の現在の記事(助けが必要ないくつかの数学の間違い)はここにあります:graphics.stanford.edu/courses/cs205a-13-fall/assets/notes / ...(もしあなたがあなたの助けに感謝し たいなら私はそれを喜んで提供します) -適切な連絡先情報をメールで送信してください)
— ジャスティンソロモン

@janなぜあなたの方程式はであり によって与えられた割線条件ではない
H(バツk)[バツk+1−バツk]=∇f(バツk+1)−∇f(バツk)
H(バツk+1)[バツk+1−バツk]=∇f(バツk+1)−∇f(バツk)?
Hk+1sk=yk。ここで、です。ありがとう!sk=バツk+1−バツk、yk=∇fk+1−∇fk
— ジェフファラチ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.