制約なし非線形最適化アルゴリズム
制約なしの最適化の定義
制約なしの最小化は,スカラ,関数f(x)の局所的最小値ベクトルxを見ける問題です。
“制約なし”はxの範囲に制限がないことを意味します。
fminunc信赖域アルゴリズム
非線形最小化に対する信頼領域法
优化工具箱のソルバ,で使用される多くのメソッドは,<年代pan class="emphasis">“信頼領域法”を基にしています。信頼領域法はシンプルなものですが最適化では重要な概念です。
最適化の信頼領域法のアプロ,チを理解するために制約なし最小化問題を考え,f(x)を最小化します。ここで関数はベクトル引数を取り,スカラ,を出力します。N空間の点xを想定し,より小さい関数値へ移動して最小化を行う場合を考えてみましょう。基本的な概念は,シンプルな関数qでfを近似することです。この関数は,点xの近傍Nで関数fの挙動をよく表すものです。この近傍が信頼領域です。テストステップsがNにおける最小化(または近似最小化)によって計算されます。信頼領域の部分問題を次に示します。
(1)
F (x + s) < F (x)の場合,現在の点がx + sに更新されます。そうでない場合は現在の点は変更されず,信頼領域Nは縮小され,テストステップの計算が繰り返されます。
f (x)を最小化するための信頼領域を決める上で重要な問題は,近似问(現在の点xで定義)の選択および計算方法,信頼領域Nの選択および変更方法,信頼領域の部分問題を解く精度です。この節では制約なしの問題に焦点をあてます。変数上に制約があるために複雑度が増す問題にいては,後節で取り扱います。
標準的な信頼領域法([48])では二次近似qは,xにおけるFのテラ近似のはじめの2項によって決められます。近傍nは球形または楕円体です。数学的に,信頼領域の部分問題は,次のように表現できます。
(2)
前処理付き共役勾配法
線形方程式系<年代pan class="inlineequation">Hp = -gの大きな対称正定値システムを解く一般的な方法は,前処理付き共役勾配法(pcg)です。この反復法は,形式H·vの行列ベクトル積を計算する機能を必要とします。ここでvは任意のベクトルです。対称正定値行列mはhの<年代pan class="emphasis">“前提条件子”です。すなわ,<年代pan class="inlineequation">M = c<年代up>2です。ここで,<年代pan class="inlineequation">C<年代up>1HC<年代up>1は,条件数の良い行列または分類分けされた固有値をも行列です。
最小化の過程で,ヘッセ行列hが対称と仮定します。しかし,hは,強い最小化子の近傍の中でのみ正定値であることが保証されます。PCGアルゴリズムは,負または0の曲率方向が検出された場合に終了します(<年代pan class="inlineequation">d<年代up>THd≤0)。PCG出力方向pは,負の曲率方向またはニュ,トンシステム<年代pan class="inlineequation">Hp = -gへの近似解のどらかです。いずれにせよpは信頼領域法のアプローチで使用される2次元部分空間を定義するために役立ちます(非線形最小化に対する信頼領域法を参照)。
fminunc拟牛顿アルゴリズム<年代pan id="unconstrained_opt" class="anchor_target">
制約なしの最適化の基礎
制約なしの最適化に対して,種々の方法が存在していますが,導関数情報を使うか,使わないかにより大きく分類されます。関数評価のみを使う探索法(たとえば,内德と米德[30]のシンプレックス探索)は,非線形な問題や多くの不連続点をも問題に非常に有効です。勾配法は,一般に最小化される関数の1次導関数が連続型であれば非常に有効です。ニュートン法のような高次の項を使う方法は,2次導関数の情報が既に用意されていたり,簡単に計算できるときにのみ有効です。これは,2次導関数の情報を得るのに数値微分を使い,非常に多くの計算を必要とするためです。
勾配法は,最小値が存在すると考えられる探索の方向を示すために勾配の情報を使います。この中で最も簡単な方法は,最急降下法で<年代pan class="inlineequation">∇f (x)を目的関数の勾配とすると<年代pan class="inlineequation">——∇f (x)の方向で探索を行うものです。この方法は最小化される関数が長く狭い谷をもとき,あまり効果的なものではありません。たとえば,罗森布洛克関数の場合です。
(5)
この関数の最小値は<年代pan class="inlineequation">F (x) = 0となる<年代pan class="inlineequation">X = [1,1]です。この関数の等高線図を下図に示します。点[-1.9,2]の位置を初期推定値として最急降下法を使った場合の最小値を求めるまでの解の方向も示します。最適化は,1000回の反復の後終了しますが,最小値の位置とかなり離れています。図で黒色で表される部分は,谷の片側へ行ったり来たりのジグザグ運動を連続的に行っていることを示しています。プロット図の中央に向かって,ある点が谷の中心に正確に到達するとき,より多くのステップ数が生じることに注意してください。
図5-1,罗森布洛克関数における最急降下法
このような関数は原点回りで曲率が歪んでいるために,制約なしの例の中で悪名高いものでバナナ関数として知られています。罗森布洛克関数はさまざまな最適化手法の使い方を示すために,この節全体で使われています。等高線は,u字谷の急斜面のために指数的な刻み幅でプロットされています。
反復点を生成するスクリプトを含めたこの図の詳細にいては,バナナ関数の最小化を参照してください。
準ニュ,トン法
勾配情報を使う方法の中で,最も良く使われるものは準ニュ,トン法です。この方法は,各反復で曲率情報を構築し,次の二次モデルの問題を定式化します。
(6)
ここでヘッセ行列Hは正定値対称行列で,cは定数ベクトル,bは定数です。この問題の最適解はxの偏導関数をゼロに近づけたときに求められます。すなわ以下のようになります。
(7)
最適解x*は次のように記述することができます。
(8)
ニュートンタイプの方法は(準ニュートン法と違って)直接Hを計算し,何回かの反復後,最小値に到達するために減少する方向に進みます。数値的にhを計算するには,非常に多くの計算を必要とします。準ニュ,トン法は観測されたf(x)と<年代pan class="inlineequation">∇f (x)の動作から適切な更新法を使ってHを近似するための曲率情報を構築することにより,計算時間が長くならないようにします。
多くのヘッシアン更新法が開発されてきました。しかしながら,布罗伊登[3],弗莱彻[12]戈德法布,[20], Shanno[37]の式(bfgs法)は,一般的な問題に使用するのに最も効果的と考えられています。
BFGS法は次のように与えられます。
(9)
ここで,
最適化を始める出発点h<年代ub>0は,対称な正定値行列,たとえば,単位行列我を設定してください。ヘッシアンhの逆行列を計算することを避けるため,更新法を導入します。この方法は各更新でヘッシアンの逆行列h<年代up>1の近似を求める式を使うことにより,hの逆行列を直接計算することを避けるものです。よく知られた方法として,戴维顿[7],弗莱彻と鲍威尔[14]のDFP式があります。これはBFGSメソッド(式 9)と同じ式を使用しますが,q<年代ub>kが年代<年代ub>kの代わりに使用される点が異なります。
勾配の情報は,解析的に計算された勾配から得られるか,または有限差分を使った数値微分法により偏導関数として求めるかのどちらかです。これは各設計変数xに個々の変動を含ませ,目的関数中で変化率を計算するものです。
主要な各反復のk番目で直線探索は次の方向になります。
(10)
準ニュ,トン法は,図5-2,罗森布洛克関数のBFGS法の適用にある罗森布罗克関数の解を求める経路に示されています。方法は,谷の型に従って,有限差分勾配のみを使って140回の関数評価の後,最小値に収束します。
図5-2,罗森布洛克関数のBFGS法の適用
反復点を生成するスクリプトを含めたこの図の詳細にいては,バナナ関数の最小化を参照してください。
直線探索法
"直線探索" は,大規模最適化アルゴリズムの一部として使用される探索法です。メ超市超市ンアルゴリズムの各ステップで,ラ超市超市ン探索法はメ超市超市ンアルゴリズムが決めるベクトルである,<年代pan class="emphasis">"探索方向"と平行に,現在の点x<年代ub>kを含むラ@ @ンに沿って探索します。すなわこの方法は,次式の次の反復x .<年代ub>k + 1を見けます。
(11)
ここでx<年代ub>kは現在の反復を示し,d<年代ub>kは探索方向,α*はスカラ,ステップ長のパラメ,タ,です。
直線探索法は,目的関数の多項式の内挿を反復最小化することにより,ラesc escン<年代pan class="inlineequation">x<年代ub>k+α* d<年代ub>kに沿って目的関数を減少させようと試みます。直線探索法には、2 つのメイン ステップがあります。
“囲い込み” 段階では探索されるラ@ @ン<年代pan class="inlineequation">
上の点の範囲を決めます。この"囲い"<年代pan class="emphasis">は,αの値の範囲を指定する区間に相当します。
"区分化"<年代pan class="emphasis">ステップはこの囲いを部分区間に分け,その上で目的関数の最小が多項式内挿により近似されます。
結果のステップ長αは沃尔夫条件を満たします。
(12)
(13)
ここで,c<年代ub>1とc<年代ub>2は0 < c<年代ub>1< c<年代ub>2< 1を満たす定数です。
第1の条件(式 12)は,α<年代ub>kが目的関数を十分減少させることを要求します。第2の条件(式 13)は,ステップ長が小さすぎないことを保証します。両方の条件(式 12と式 13)を満たす点は,<年代pan class="emphasis">“許容点”と呼ばれます。
直線探索法は[13]の2-6節で述べるアルゴリズムの実装です。直線探索の詳細は[31]を参照してください。
ヘッシアンの更新
最適化関数の多くは,bfgs法(式 9)を使用して,各反復でヘッセ行列を更新することにより探索方向を決めます。関数fminuncは準ニュ,トン法に与えられたDFP法を使用するオプションも提供します(DFP法の選択は选项でHessUpdateを“dfp”に設定します)。ヘッシアンHは探索方向dが常に減少する方向になるように正定値に保存されます。これは,方向dで任意のステップαに対して目的関数の大きさが必ず小さくなることを意味しています。Hが正定値であることはHを正定値で初期化し,その後<年代pan class="inlineequation">
(式 14から導出)が常に正であることにより保証されます。<年代pan class="inlineequation">
の項は,直線探索ステップ長を表すパラメ,タ,α<年代ub>kと,探索方向dと過去および現在の勾配評価を組み合わせたものの積として表せます。
(14)
が正である条件は,十分な精度で直線探索を行うことにより必ず可能になります。これは探索方向dが減少する方向であるためで,α<年代ub>kと負の勾配<年代pan class="inlineequation">——∇f (x<年代ub>k)<年代up>Tdは常に正です。したがって,<年代pan class="inlineequation">——∇f (x<年代ub>k + 1)<年代up>Tdの項が負の値を取る場合は,直線探索の精度増加と同程度の小ささにしなければなりません。
LBFGSヘッセ近似
大規模な問題の場合,bfgsヘッセ近似法は比較的遅くなり,大量のメモリを使用します。これらの問題を回避するには,HessianApproximationオプションを“lbfgs”に設定してLBFGSヘッセ近似を使用します。これにより,fminuncが低メモリのBFGSヘッセ近似を使用するようになります(後述)。大規模な問題でLBFGSを使用する利点にいては,多くの変数を使用した非線形問題の求解を参照してください。
诺赛达と赖特[31]が述べているように,低メモリのBFGSヘッセ近似は準ニュ,トン法で説明するBFGS近似とよく似ていますが,前の反復に対して限られた量のメモリしか使用しません。式 9で与えられるヘッシアンの更新式は次のようになります。
ここで,
他に,bfgs手続きは次のようにも記述されます。
(15)
ɑ<年代ub>kは直線探索が選択したステップ長,h<年代ub>kは逆ヘッセ近似です。H<年代ub>kにいての式は次のようになります。
年代<年代ub>kおよびq<年代ub>kは前の定義と同様です。また,次を定義します。
LBFGSアルゴリズムの場合は,このアルゴリズムで直前の反復からのパラメ,タ,s .<年代ub>kと问<年代ub>kの固定有限数mを保持します。初期のh<年代ub>0から開始すると,式 15からのステップを得るために近似のh<年代ub>kを計算します。<年代pan class="inlineequation">
の計算は,ρ<年代ub>j,问<年代ub>j,およびs<年代ub>jの最新のm値を使用して,前の方程式からの再帰として進みます。詳細にいては,NocedalとWright[31]の算法7.4を参照してください。
参考
関連するトピック
制約なしの最適化の定義
制約なしの最小化は,スカラ,関数f(x)の局所的最小値ベクトルxを見ける問題です。
“制約なし”はxの範囲に制限がないことを意味します。
制約なしの最小化は,スカラ,関数f(x)の局所的最小値ベクトルxを見ける問題です。
“制約なし”はxの範囲に制限がないことを意味します。
fminunc信赖域アルゴリズム
非線形最小化に対する信頼領域法
优化工具箱のソルバ,で使用される多くのメソッドは,<年代pan class="emphasis">“信頼領域法”を基にしています。信頼領域法はシンプルなものですが最適化では重要な概念です。
最適化の信頼領域法のアプロ,チを理解するために制約なし最小化問題を考え,f(x)を最小化します。ここで関数はベクトル引数を取り,スカラ,を出力します。N空間の点xを想定し,より小さい関数値へ移動して最小化を行う場合を考えてみましょう。基本的な概念は,シンプルな関数qでfを近似することです。この関数は,点xの近傍Nで関数fの挙動をよく表すものです。この近傍が信頼領域です。テストステップsがNにおける最小化(または近似最小化)によって計算されます。信頼領域の部分問題を次に示します。
(1)
F (x + s) < F (x)の場合,現在の点がx + sに更新されます。そうでない場合は現在の点は変更されず,信頼領域Nは縮小され,テストステップの計算が繰り返されます。
f (x)を最小化するための信頼領域を決める上で重要な問題は,近似问(現在の点xで定義)の選択および計算方法,信頼領域Nの選択および変更方法,信頼領域の部分問題を解く精度です。この節では制約なしの問題に焦点をあてます。変数上に制約があるために複雑度が増す問題にいては,後節で取り扱います。
標準的な信頼領域法([48])では二次近似qは,xにおけるFのテラ近似のはじめの2項によって決められます。近傍nは球形または楕円体です。数学的に,信頼領域の部分問題は,次のように表現できます。
(2)
前処理付き共役勾配法
線形方程式系<年代pan class="inlineequation">Hp = -gの大きな対称正定値システムを解く一般的な方法は,前処理付き共役勾配法(pcg)です。この反復法は,形式H·vの行列ベクトル積を計算する機能を必要とします。ここでvは任意のベクトルです。対称正定値行列mはhの<年代pan class="emphasis">“前提条件子”です。すなわ,<年代pan class="inlineequation">M = c<年代up>2です。ここで,<年代pan class="inlineequation">C<年代up>1HC<年代up>1は,条件数の良い行列または分類分けされた固有値をも行列です。
最小化の過程で,ヘッセ行列hが対称と仮定します。しかし,hは,強い最小化子の近傍の中でのみ正定値であることが保証されます。PCGアルゴリズムは,負または0の曲率方向が検出された場合に終了します(<年代pan class="inlineequation">d<年代up>THd≤0)。PCG出力方向pは,負の曲率方向またはニュ,トンシステム<年代pan class="inlineequation">Hp = -gへの近似解のどらかです。いずれにせよpは信頼領域法のアプローチで使用される2次元部分空間を定義するために役立ちます(非線形最小化に対する信頼領域法を参照)。
信赖域アルゴリズム
非線形最小化に対する信頼領域法
优化工具箱のソルバ,で使用される多くのメソッドは,<年代pan class="emphasis">“信頼領域法”を基にしています。信頼領域法はシンプルなものですが最適化では重要な概念です。
最適化の信頼領域法のアプロ,チを理解するために制約なし最小化問題を考え,f(x)を最小化します。ここで関数はベクトル引数を取り,スカラ,を出力します。N空間の点xを想定し,より小さい関数値へ移動して最小化を行う場合を考えてみましょう。基本的な概念は,シンプルな関数qでfを近似することです。この関数は,点xの近傍Nで関数fの挙動をよく表すものです。この近傍が信頼領域です。テストステップsがNにおける最小化(または近似最小化)によって計算されます。信頼領域の部分問題を次に示します。
(1)
F (x + s) < F (x)の場合,現在の点がx + sに更新されます。そうでない場合は現在の点は変更されず,信頼領域Nは縮小され,テストステップの計算が繰り返されます。
f (x)を最小化するための信頼領域を決める上で重要な問題は,近似问(現在の点xで定義)の選択および計算方法,信頼領域Nの選択および変更方法,信頼領域の部分問題を解く精度です。この節では制約なしの問題に焦点をあてます。変数上に制約があるために複雑度が増す問題にいては,後節で取り扱います。
標準的な信頼領域法([48])では二次近似qは,xにおけるFのテラ近似のはじめの2項によって決められます。近傍nは球形または楕円体です。数学的に,信頼領域の部分問題は,次のように表現できます。
(2)
前処理付き共役勾配法
線形方程式系<年代pan class="inlineequation">Hp = -gの大きな対称正定値システムを解く一般的な方法は,前処理付き共役勾配法(pcg)です。この反復法は,形式H·vの行列ベクトル積を計算する機能を必要とします。ここでvは任意のベクトルです。対称正定値行列mはhの<年代pan class="emphasis">“前提条件子”です。すなわ,<年代pan class="inlineequation">M = c<年代up>2です。ここで,<年代pan class="inlineequation">C<年代up>1HC<年代up>1は,条件数の良い行列または分類分けされた固有値をも行列です。
最小化の過程で,ヘッセ行列hが対称と仮定します。しかし,hは,強い最小化子の近傍の中でのみ正定値であることが保証されます。PCGアルゴリズムは,負または0の曲率方向が検出された場合に終了します(<年代pan class="inlineequation">d<年代up>THd≤0)。PCG出力方向pは,負の曲率方向またはニュ,トンシステム<年代pan class="inlineequation">Hp = -gへの近似解のどらかです。いずれにせよpは信頼領域法のアプローチで使用される2次元部分空間を定義するために役立ちます(非線形最小化に対する信頼領域法を参照)。
fminunc拟牛顿アルゴリズム<年代pan id="unconstrained_opt" class="anchor_target">
拟牛顿アルゴリズム<年代pan id="unconstrained_opt" class="anchor_target">
制約なしの最適化の基礎
制約なしの最適化に対して,種々の方法が存在していますが,導関数情報を使うか,使わないかにより大きく分類されます。関数評価のみを使う探索法(たとえば,内德と米德[30]のシンプレックス探索)は,非線形な問題や多くの不連続点をも問題に非常に有効です。勾配法は,一般に最小化される関数の1次導関数が連続型であれば非常に有効です。ニュートン法のような高次の項を使う方法は,2次導関数の情報が既に用意されていたり,簡単に計算できるときにのみ有効です。これは,2次導関数の情報を得るのに数値微分を使い,非常に多くの計算を必要とするためです。
勾配法は,最小値が存在すると考えられる探索の方向を示すために勾配の情報を使います。この中で最も簡単な方法は,最急降下法で<年代pan class="inlineequation">∇f (x)を目的関数の勾配とすると<年代pan class="inlineequation">——∇f (x)の方向で探索を行うものです。この方法は最小化される関数が長く狭い谷をもとき,あまり効果的なものではありません。たとえば,罗森布洛克関数の場合です。
(5)
この関数の最小値は<年代pan class="inlineequation">F (x) = 0となる<年代pan class="inlineequation">X = [1,1]です。この関数の等高線図を下図に示します。点[-1.9,2]の位置を初期推定値として最急降下法を使った場合の最小値を求めるまでの解の方向も示します。最適化は,1000回の反復の後終了しますが,最小値の位置とかなり離れています。図で黒色で表される部分は,谷の片側へ行ったり来たりのジグザグ運動を連続的に行っていることを示しています。プロット図の中央に向かって,ある点が谷の中心に正確に到達するとき,より多くのステップ数が生じることに注意してください。
図5-1,罗森布洛克関数における最急降下法
このような関数は原点回りで曲率が歪んでいるために,制約なしの例の中で悪名高いものでバナナ関数として知られています。罗森布洛克関数はさまざまな最適化手法の使い方を示すために,この節全体で使われています。等高線は,u字谷の急斜面のために指数的な刻み幅でプロットされています。
反復点を生成するスクリプトを含めたこの図の詳細にいては,バナナ関数の最小化を参照してください。
制約なしの最適化に対して,種々の方法が存在していますが,導関数情報を使うか,使わないかにより大きく分類されます。関数評価のみを使う探索法(たとえば,内德と米德 勾配法は,最小値が存在すると考えられる探索の方向を示すために勾配の情報を使います。この中で最も簡単な方法は,最急降下法で<年代pan class="inlineequation">∇f (x) この関数の最小値は<年代pan class="inlineequation">F (x) = 0 図5-1,罗森布洛克関数における最急降下法 このような関数は原点回りで曲率が歪んでいるために,制約なしの例の中で悪名高いものでバナナ関数として知られています。罗森布洛克関数はさまざまな最適化手法の使い方を示すために,この節全体で使われています。等高線は,u字谷の急斜面のために指数的な刻み幅でプロットされています。 反復点を生成するスクリプトを含めたこの図の詳細にいては,
(5)
準ニュ,トン法
勾配情報を使う方法の中で,最も良く使われるものは準ニュ,トン法です。この方法は,各反復で曲率情報を構築し,次の二次モデルの問題を定式化します。
(6)
ここでヘッセ行列Hは正定値対称行列で,cは定数ベクトル,bは定数です。この問題の最適解はxの偏導関数をゼロに近づけたときに求められます。すなわ以下のようになります。
(7)
最適解x*は次のように記述することができます。
(8)
ニュートンタイプの方法は(準ニュートン法と違って)直接Hを計算し,何回かの反復後,最小値に到達するために減少する方向に進みます。数値的にhを計算するには,非常に多くの計算を必要とします。準ニュ,トン法は観測されたf(x)と<年代pan class="inlineequation">∇f (x)の動作から適切な更新法を使ってHを近似するための曲率情報を構築することにより,計算時間が長くならないようにします。
多くのヘッシアン更新法が開発されてきました。しかしながら,布罗伊登[3],弗莱彻[12]戈德法布,[20], Shanno[37]の式(bfgs法)は,一般的な問題に使用するのに最も効果的と考えられています。
BFGS法は次のように与えられます。
(9)
ここで,
最適化を始める出発点h<年代ub>0は,対称な正定値行列,たとえば,単位行列我を設定してください。ヘッシアンhの逆行列を計算することを避けるため,更新法を導入します。この方法は各更新でヘッシアンの逆行列h<年代up>1の近似を求める式を使うことにより,hの逆行列を直接計算することを避けるものです。よく知られた方法として,戴维顿[7],弗莱彻と鲍威尔[14]のDFP式があります。これはBFGSメソッド(式 9)と同じ式を使用しますが,q<年代ub>kが年代<年代ub>kの代わりに使用される点が異なります。
勾配の情報は,解析的に計算された勾配から得られるか,または有限差分を使った数値微分法により偏導関数として求めるかのどちらかです。これは各設計変数xに個々の変動を含ませ,目的関数中で変化率を計算するものです。
主要な各反復のk番目で直線探索は次の方向になります。
(10)
準ニュ,トン法は,図5-2,罗森布洛克関数のBFGS法の適用にある罗森布罗克関数の解を求める経路に示されています。方法は,谷の型に従って,有限差分勾配のみを使って140回の関数評価の後,最小値に収束します。
図5-2,罗森布洛克関数のBFGS法の適用
反復点を生成するスクリプトを含めたこの図の詳細にいては,バナナ関数の最小化を参照してください。
勾配情報を使う方法の中で,最も良く使われるものは準ニュ,トン法です。この方法は,各反復で曲率情報を構築し,次の二次モデルの問題を定式化します。 ここでヘッセ行列Hは正定値対称行列で,cは定数ベクトル,bは定数です。この問題の最適解はxの偏導関数をゼロに近づけたときに求められます。すなわ以下のようになります。 最適解x*は次のように記述することができます。 ニュートンタイプの方法は(準ニュートン法と違って)直接Hを計算し,何回かの反復後,最小値に到達するために減少する方向に進みます。数値的にhを計算するには,非常に多くの計算を必要とします。準ニュ,トン法は観測されたf(x)と<年代pan class="inlineequation">∇f (x) 多くのヘッシアン更新法が開発されてきました。しかしながら,布罗伊登 BFGS法は次のように与えられます。 ここで,
最適化を始める出発点h<年代ub>0 勾配の情報は,解析的に計算された勾配から得られるか,または有限差分を使った数値微分法により偏導関数として求めるかのどちらかです。これは各設計変数xに個々の変動を含ませ,目的関数中で変化率を計算するものです。 主要な各反復のk番目で直線探索は次の方向になります。 準ニュ,トン法は, 図5-2,罗森布洛克関数のBFGS法の適用 反復点を生成するスクリプトを含めたこの図の詳細にいては,
(6)
(7)
(8)
(9)
(10)
直線探索法
"直線探索" は,大規模最適化アルゴリズムの一部として使用される探索法です。メ超市超市ンアルゴリズムの各ステップで,ラ超市超市ン探索法はメ超市超市ンアルゴリズムが決めるベクトルである,<年代pan class="emphasis">"探索方向"と平行に,現在の点x<年代ub>kを含むラ@ @ンに沿って探索します。すなわこの方法は,次式の次の反復x .<年代ub>k + 1を見けます。
(11)
ここでx<年代ub>kは現在の反復を示し,d<年代ub>kは探索方向,α*はスカラ,ステップ長のパラメ,タ,です。
直線探索法は,目的関数の多項式の内挿を反復最小化することにより,ラesc escン<年代pan class="inlineequation">x<年代ub>k+α* d<年代ub>kに沿って目的関数を減少させようと試みます。直線探索法には、2 つのメイン ステップがあります。
“囲い込み” 段階では探索されるラ@ @ン<年代pan class="inlineequation">
上の点の範囲を決めます。この"囲い"<年代pan class="emphasis">は,αの値の範囲を指定する区間に相当します。
"区分化"<年代pan class="emphasis">ステップはこの囲いを部分区間に分け,その上で目的関数の最小が多項式内挿により近似されます。
結果のステップ長αは沃尔夫条件を満たします。
(12)
(13)
ここで,c<年代ub>1とc<年代ub>2は0 < c<年代ub>1< c<年代ub>2< 1を満たす定数です。
第1の条件(式 12)は,α<年代ub>kが目的関数を十分減少させることを要求します。第2の条件(式 13)は,ステップ長が小さすぎないことを保証します。両方の条件(式 12と式 13)を満たす点は,<年代pan class="emphasis">“許容点”と呼ばれます。
直線探索法は[13]の2-6節で述べるアルゴリズムの実装です。直線探索の詳細は[31]を参照してください。
"直線探索" ここでx<年代ub>k 直線探索法は,目的関数の多項式の内挿を反復最小化することにより,ラesc escン<年代pan class="inlineequation">x<年代ub>k “囲い込み” "区分化"<年代pan class="emphasis">ステップはこの囲いを部分区間に分け,その上で目的関数の最小が多項式内挿により近似されます。 結果のステップ長αは沃尔夫条件を満たします。 ここで,c<年代ub>1 第1の条件( 直線探索法は
(11)
(12)
(13)
ヘッシアンの更新
最適化関数の多くは,bfgs法(式 9)を使用して,各反復でヘッセ行列を更新することにより探索方向を決めます。関数fminuncは準ニュ,トン法に与えられたDFP法を使用するオプションも提供します(DFP法の選択は选项でHessUpdateを“dfp”に設定します)。ヘッシアンHは探索方向dが常に減少する方向になるように正定値に保存されます。これは,方向dで任意のステップαに対して目的関数の大きさが必ず小さくなることを意味しています。Hが正定値であることはHを正定値で初期化し,その後<年代pan class="inlineequation">
(式 14から導出)が常に正であることにより保証されます。<年代pan class="inlineequation">
の項は,直線探索ステップ長を表すパラメ,タ,α<年代ub>kと,探索方向dと過去および現在の勾配評価を組み合わせたものの積として表せます。
(14)
が正である条件は,十分な精度で直線探索を行うことにより必ず可能になります。これは探索方向dが減少する方向であるためで,α<年代ub>kと負の勾配<年代pan class="inlineequation">——∇f (x<年代ub>k)<年代up>Tdは常に正です。したがって,<年代pan class="inlineequation">——∇f (x<年代ub>k + 1)<年代up>Tdの項が負の値を取る場合は,直線探索の精度増加と同程度の小ささにしなければなりません。
最適化関数の多くは,bfgs法(
が正である条件は,十分な精度で直線探索を行うことにより必ず可能になります。これは探索方向dが減少する方向であるためで,α<年代ub>kfminunc
(14)
LBFGSヘッセ近似
大規模な問題の場合,bfgsヘッセ近似法は比較的遅くなり,大量のメモリを使用します。これらの問題を回避するには,HessianApproximationオプションを“lbfgs”に設定してLBFGSヘッセ近似を使用します。これにより,fminuncが低メモリのBFGSヘッセ近似を使用するようになります(後述)。大規模な問題でLBFGSを使用する利点にいては,多くの変数を使用した非線形問題の求解を参照してください。
诺赛达と赖特[31]が述べているように,低メモリのBFGSヘッセ近似は準ニュ,トン法で説明するBFGS近似とよく似ていますが,前の反復に対して限られた量のメモリしか使用しません。式 9で与えられるヘッシアンの更新式は次のようになります。
ここで,
他に,bfgs手続きは次のようにも記述されます。
(15)
ɑ<年代ub>kは直線探索が選択したステップ長,h<年代ub>kは逆ヘッセ近似です。H<年代ub>kにいての式は次のようになります。
年代<年代ub>kおよびq<年代ub>kは前の定義と同様です。また,次を定義します。
LBFGSアルゴリズムの場合は,このアルゴリズムで直前の反復からのパラメ,タ,s .<年代ub>kと问<年代ub>kの固定有限数mを保持します。初期のh<年代ub>0から開始すると,式 15からのステップを得るために近似のh<年代ub>kを計算します。<年代pan class="inlineequation">
の計算は,ρ<年代ub>j,问<年代ub>j,およびs<年代ub>jの最新のm値を使用して,前の方程式からの再帰として進みます。詳細にいては,NocedalとWright[31]の算法7.4を参照してください。
大規模な問題の場合,bfgsヘッセ近似法は比較的遅くなり,大量のメモリを使用します。これらの問題を回避するには, 诺赛达と赖特
ここで,
他に,bfgs手続きは次のようにも記述されます。 ɑ<年代ub>k
年代<年代ub>k
LBFGSアルゴリズムの場合は,このアルゴリズムで直前の反復からのパラメ,タ,s .<年代ub>k
(15)