回答:
編集:同僚は、エントロピー関数に特化した場合、以下の私の方法は次の論文の一般的な方法のインスタンスであると私に知らせました
Overton、Michael L.、およびRobert S. Womersley。「対称行列の固有値を最適化するための2次導関数。」SIAM Journal on Matrix Analysis and Applications 16.3(1995):697-718。http://ftp.cs.nyu.edu/cs/faculty/overton/papers/pdffiles/eighess.pdf
概観
この投稿では、最適化問題が適切に提起されており、不等式制約が解で無効であることを示し、次にエントロピー関数の1次および2次フレシェ微分を計算し、等価制約が削除された問題に関するニュートン法を提案します。最後に、Matlabコードと数値結果が表示されます。
最適化問題の適切性
最初に、正定行列の合計は正定であるため、場合、ランク1行列の合計 A (c ):= N ∑ i = 1 c i v i v T i は正定です。v iのセットがフルランクの場合、Aの固有値は正なので、固有値の対数をとることができます。したがって、目的関数は実行可能セットの内部で明確に定義されています。
第二に、任意の、最小の固有値のでランクを失いAはゼロになります。すなわち、σ M I N(A (C ))→ 0のようなC I → 0。派生以来- σ ログ(σが)として吹くまでσ → 0、1は、実現可能な集合の境界に近づいて連続的に良くポイントのシーケンスを持つことはできません。したがって、問題は明確に定義されており、さらに不等式制約非アクティブです。
エントロピー関数のフレシェ微分
実行可能領域の内部では、エントロピー関数はどこでもフレシェ微分可能であり、固有値が繰り返されない場合はどこでも2倍フレシェ微分可能です。ニュートン法を実行するには、行列の固有値に依存する行列エントロピーの導関数を計算する必要があります。これには、行列の変化に関する行列の固有値分解の感度を計算する必要があります。
リコール行列の場合との固有値分解を伴うA = U Λ U Tであり、元の行列の変化に対する固有値行列の誘導体、 および誘導体固有ベクトル行列は、 d U = U C (d A )です。 ここで、 ∘はアダマール積で、係数行列 C = { u
等式制約の排除
制約を取り除くことができます
制約を取り除いた後のニュートンの方法
不等式制約が非アクティブであるため、実行可能なセットから始めて、内部最大値への2次収束のために信頼領域またはラインサーチの不正確なニュートンCGを実行します。
方法は次のとおりです(trust-region / line検索の詳細は含まれません)。
結果
>> N = 100; >> V = randn(N、N); >> for k = 1:NV(:、k)= V(:、k)/ norm(V(:、k)); 終わり >> maxEntropyMatrix(V); ニュートン反復= 1、norm(grad f)= 0.67748 ニュートン反復= 2、norm(grad f)= 0.03644 ニュートン反復= 3、norm(grad f)= 0.0012167 ニュートン反復= 4、norm(grad f)= 1.3239e-06 ニュートン反復= 5、norm(grad f)= 7.7114e-13
計算された最適点が実際に最大であることを確認するために、最適点がランダムに摂動されたときのエントロピーの変化のグラフを次に示します。すべての摂動はエントロピーを減少させます。
Matlabコード
エントロピーを最小化するオールインワン機能(この投稿に新しく追加):https : //github.com/NickAlger/various_scripts/blob/master/maxEntropyMatrix.m