L-BFGSはどのように機能しますか?


14

このペーパーの目的は、正則化された対数尤度を最大化することにより、いくつかのパラメーターを最適化することでした。次に、偏微分を計算します。そして、著者らは、L-BFGSを使用して方程式を最適化し、標準的な準ニュートン法で多くの変数の滑らかな関数を最適化すると述べています(詳細はありません)。

それはどのように機能しますか?


3
どんな紙?紙へのリンクを貼るコンテキストが必要。L-BFGSなどの頭字語へのリンクを挿入し、それらをスペルアウトします。L-BFGS=限定メモリのブロイデン・フレッチャー・ゴールドファーブ・シャンノ(BFGS)アルゴリズム
Carl

1
en.wikipedia.org/wiki/Limited-memory_BFGS多くのバリエーションがあり、機能とパフォーマンスは大きく異なります。
Mark L. Stone

こんにちは、ありがとうMr Mark :)見ていきます。論文はcs.stanford.edu/people/jure/pubs/circles-tkdd14.pdf (式6の最適化)
Abir

基本的に、L-BFGSは、目的関数の(ローカル)最小値を見つけ、目的関数の値と目的関数の勾配を利用する方法として考えます。そのレベルの説明は、L-BFGSに加えて多くの最適化方法をカバーしています。詳細については、springer.com / us / book / 9780387303031のセクション7.2を参照してください
マークL.ストーン

1
BFGSは、セカントメソッドを介して2次メソッド(ニュートン)を模倣する1次メソッドを取得しようとする方法です
user795305

回答:


27

基本的に、L-BFGSは、目的関数の(局所的な)最小値を見つけ、目的関数の値と目的関数の勾配を利用する方法であると考えてください。そのレベルの説明は、L-BFGSに加えて多くの最適化方法をカバーしています。詳細については、Nocedal and Wrightの「数値最適化、第2版」http://www.springer.com/us/book/9780387303031のセクション7.2を参照してください。L-BFGSの非常に大まかな議論はhttps://en.wikipedia.org/wiki/Limited-memory_BFGSで提供されています

1次法とは、勾配(1次導関数)(および多分目的関数値)が使用されるが、ヘッセ行列(2次導関数)は使用されないことを意味します。たとえば、勾配降下法や最急降下法などを考えてみてください。

2次法とは、勾配とヘッセ行列(および多分目的関数の値)が使用されることを意味します。二次メソッドは、

  1. "正確な"ヘッセ行列(または勾配の有限差分)。この場合、ニュートン法または

  2. 準ニュートン法は、 "割線"(準ニュートン)条件を課すことにより、数回の反復にわたる勾配の差に基づいてヘッセ行列を近似します。ヘッセ行列を異なる方法で推定する多くの異なる準ニュートン法があります。最も人気のあるものはBFGSです。BFGSヘッセ近似は、勾配の完全な履歴に基づくことができます(その場合はBFGSと呼ばれます)、または最新のm勾配のみに基づくことができます。 L-BFGSとして。L-BFGSの利点は、最新のm勾配のみを保持する必要があることです。ここで、mは通常約10から20です。 BFGSで必要なヘッセ推定の(三角形)ここで、nは問題の次元です。(完全な)BFGSとは異なり、ヘッシアンの推定値が明示的に形成されたり、L-BFGSに保存されたりすることはありません(ただし、BFGSの一部の実装では、ヘッシアン近似自体ではなく、ヘッセ近似のチェルスキー係数のみを形成および更新します); むしろ、ヘッセ行列の推定に必要な計算は、明示的に形成することなく実行されます。非常に大きな問題(nが非常に大きい場合)には、BFGSの代わりにL-BFGSが使用されますが、BFGSほどうまく機能しない可能性があります。したがって、BFGSのメモリ要件を満たすことができる場合、BFGSはL-BFGSよりも優先されます。一方、L-BFGSはBFGSよりもパフォーマンスがそれほど悪くない場合があります。ヘッセ行列の推定値が明示的に形成されたり、L-BFGSに保存されたりすることはありません(ただし、BFGSの一部の実装では、ヘッセ行列近似自体ではなく、ヘッセ行列近似のチョルスキー係数のみを形成および更新します); むしろ、ヘッセ行列の推定に必要な計算は、明示的に形成することなく実行されます。非常に大きな問題(nが非常に大きい場合)には、BFGSの代わりにL-BFGSが使用されますが、BFGSほどうまく機能しない可能性があります。したがって、BFGSのメモリ要件を満たすことができる場合、BFGSはL-BFGSよりも優先されます。一方、L-BFGSはBFGSよりもパフォーマンスがそれほど悪くない場合があります。ヘッセ行列の推定値が明示的に形成されたり、L-BFGSに保存されたりすることはありません(ただし、BFGSの実装によっては、ヘッセ行列の近似自体ではなく、ヘッセ行列の近似のチェルスキー係数のみを形成および更新します)。むしろ、ヘッセ行列の推定に必要な計算は、明示的に形成することなく実行されます。非常に大きな問題(nが非常に大きい場合)には、BFGSの代わりにL-BFGSが使用されますが、BFGSほどうまく機能しない可能性があります。したがって、BFGSのメモリ要件を満たすことができる場合、BFGSはL-BFGSよりも優先されます。一方、L-BFGSはBFGSよりもパフォーマンスがそれほど悪くない場合があります。ヘッセ行列の推定に必要な計算は、明示的に形成することなく実行されます。非常に大きな問題(nが非常に大きい場合)には、BFGSの代わりにL-BFGSが使用されますが、BFGSほどうまく機能しない可能性があります。したがって、BFGSのメモリ要件を満たすことができる場合、BFGSはL-BFGSよりも優先されます。一方、L-BFGSはBFGSよりもパフォーマンスがそれほど悪くない場合があります。ヘッセ行列の推定に必要な計算は、明示的に形成することなく実行されます。非常に大きな問題(nが非常に大きい場合)には、BFGSの代わりにL-BFGSが使用されますが、BFGSほどうまく機能しない可能性があります。したがって、BFGSのメモリ要件を満たすことができる場合、BFGSはL-BFGSよりも優先されます。一方、L-BFGSはBFGSよりもパフォーマンスがそれほど悪くない場合があります。

このレベルの説明でさえ、多くのバリエーションがあります。たとえば、メソッドは完全に保護されていない場合があり、その場合は何でも起こり、凸問題であっても何にも収束しない可能性があります。または、それらを保護することができます。安全な方法は通常、信頼領域またはラインサーチに基づいており、何かへの収束を保証することを目的としています。非常に重要なのは、メソッドがL-BFGSであることを知っているだけでは、使用されている保護の種類(存在する場合)が通知されないことです。自動車が4ドアセダンだと言っているようなものですが、4ドアセダンの性能や信頼性がすべて同じというわけではありません。これは、最適化アルゴリズムの属性の1つにすぎません。


1
こんにちはマーク、私はもう一度あなたの助けが必要です、あなたはニュートンとquaziニュートンメソッドの違いを簡単に教えていただけますか?感謝
Abir

3
ニュートン法は、アルゴリズムの各反復で、正確に、またはその反復における勾配の有限差分によって、「スクラッチ」でヘッセ行列を計算します。準ニュートン法は、ヘッセ行列の近似を、反復間の勾配差。これにはさまざまな方法があり、BFGS、DFP、SR1など、さまざまな準ニュートン法が使用されます。通常、ニュートン法は、ヘッシアンを計算するために反復ごとに大量の共役を必要とし、準ニュートン法よりも反復ごとの計算量が多くなります。
マークL.ストーン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.