Bearbeiten: Ein Kollege informierte mich, dass meine Methode unten eine Instanz der allgemeinen Methode im folgenden Artikel ist, wenn sie auf die Entropiefunktion spezialisiert ist.
Overton, Michael L. und Robert S. Womersley. "Zweite Ableitungen zur Optimierung der Eigenwerte symmetrischer Matrizen." SIAM Journal on Matrix Analysis and Applications 16.3 (1995): 697 & ndash; 718. http://ftp.cs.nyu.edu/cs/faculty/overton/papers/pdffiles/eighess.pdf
Überblick
In diesem Beitrag zeige ich, dass das Optimierungsproblem gut gestellt ist und dass die Ungleichheitsbeschränkungen bei der Lösung inaktiv sind. Berechnen Sie dann die erste und zweite Frechet-Ableitung der Entropiefunktion und schlagen Sie dann Newtons Methode für das Problem vor, wobei die Gleichheitsbeschränkung beseitigt ist. Abschließend werden Matlab-Code und numerische Ergebnisse vorgestellt.
Gut gestelltes Optimierungsproblem
Erstens ist die Summe der positiv definierten Matrizen positiv definit, so dass für die Summe der Rang-1-Matrizen
A ( c ) : = N ∑ i = 1 c i v i v T i
positiv definit ist. Wenn die Menge von v i den vollen Rang hat, sind die Eigenwerte von A positiv, so dass die Logarithmen der Eigenwerte genommen werden können. Somit ist die Zielfunktion im Inneren des realisierbaren Satzes genau definiert.cich> 0
A ( c ) : = ∑i = 1N.cichvichvT.ich
vichEIN
Zweitens, wie jedes , A verliert Rang so kleinsten Eigenwert von A auf Null geht. Dh σ m i n ( A ( c ) ) → 0 als c i → 0 . Da die Ableitung von - σ log ( σ ) als σ → 0 explodiert , kann man keine Folge von immer besseren Punkten haben, die sich der Grenze der realisierbaren Menge nähern. Somit ist das Problem genau definiert und darüber hinaus die Ungleichheitsbeschränkungencich→ 0EINEINσm i n( A ( c ) ) → 0cich→ 0−σlog(σ)σ→0 sind inaktiv.ci≥0
Frechet-Ableitungen der Entropiefunktion
Im Inneren des realisierbaren Bereichs ist die Entropiefunktion überall Frechet-differenzierbar und zweimal Frechet-differenzierbar, wo immer die Eigenwerte nicht wiederholt werden. Um Newtons Methode anzuwenden, müssen wir Ableitungen der Matrixentropie berechnen, die von den Eigenwerten der Matrix abhängen. Dies erfordert die Berechnung der Empfindlichkeiten der Eigenwertzerlegung einer Matrix in Bezug auf Änderungen in der Matrix.
Recall , daß für eine Matrix mit Eigenwertzerlegung A = U Λ U T , die Ableitung der Eigenwertmatrix in Bezug auf Änderungen in der ursprünglichen Matrix ist,
d Λ = I ∘ ( U T D A U ) ,
und die Ableitung der Die Eigenvektormatrix ist
d U = U C ( d A ) ,
wobei ∘ das Hadamard-Produkt ist , mit der Koeffizientenmatrix
C = { uAA=UΛUT
dΛ=I∘(UTdAU),
dU=UC(dA),
∘C={uTidAujλj−λi,0,i=ji=j
AU=ΛUdΛ
d2Λ=d(I∘(UTdA1U))=I∘(dUT2dA1U+UTdA1dU2)=2I∘(dUT2dA1U).
d2ΛdU2Cvi
Beseitigung der Gleichheitsbeschränkung
∑Ni=1ci=1N−1
cN=1−∑i=1N−1ci.
N−1
df=dCT1MT[I∘(VTUBUTV)]
ddf=dCT1MT[I∘(VT[2dU2BaUT+UBbUT]V)],
M=⎡⎣⎢⎢⎢⎢⎢⎢⎢1−11−1⋱…1−1⎤⎦⎥⎥⎥⎥⎥⎥⎥,
Ba=diag(1+logλ1,1+logλ2,…,1+logλN),
Bb=diag(d2λ1λ1,…,d2λNλN).
Newtons Methode nach Beseitigung der Einschränkung
Da die Ungleichheitsbeschränkungen inaktiv sind, beginnen wir einfach in der realisierbaren Menge und führen eine ungenaue Newton-CG-Vertrauensregion oder Liniensuche durch, um eine quadratische Konvergenz mit den inneren Maxima zu erreichen.
Die Methode ist wie folgt (ohne Angaben zur Vertrauensregion / Zeilensuche)
- c~=[1/N,1/N,…,1/N]
- c=[c~,1−∑N−1i=1ci]
- A=∑icivivTi
- UΛA
- G=MT[I∘(VTUBUTV)]
- HG=ppHHδc~dU2BaBb
MT[I∘(VT[2dU2BaUT+UBbUT]V)]
- c~←c~−p
- Gehe zu 2.
Ergebnisse
viN=100vi
>> N = 100;
>> V = Randn (N, N);
>> für k = 1: NV (:, k) = V (:, k) / Norm (V (:, k)); Ende
>> maxEntropyMatrix (V);
Newton-Iteration = 1, Norm (Grad f) = 0,67748
Newton-Iteration = 2, Norm (Grad f) = 0,03644
Newton-Iteration = 3, Norm (Grad f) = 0,0012167
Newton-Iteration = 4, Norm (Grad f) = 1,3239e-06
Newton-Iteration = 5, Norm (Grad f) = 7,7114e-13
Um zu sehen, dass der berechnete optimale Punkt tatsächlich das Maximum ist, ist hier ein Diagramm, wie sich die Entropie ändert, wenn der optimale Punkt zufällig gestört wird. Alle Störungen verringern die Entropie.
Matlab-Code
All-in-1-Funktion zur Minimierung der Entropie (neu zu diesem Beitrag hinzugefügt):
https://github.com/NickAlger/various_scripts/blob/master/maxEntropyMatrix.m