Eingeschränktes Optimierungsproblem in der Matrixentropie

10

Ich habe ein constrainted Optimierungsproblem in der (Shannon) -Matrix Entropie . Die Matrix A kann als die Summe der Rang-1-Matrizen der Form [ v i(sum(entr(eig(A))))A wobei v i ein gegebener normalisierter Vektor ist. Die Koeffizienten der Rang-1-Matrizen sind die Unbekannten, in denen wir optimieren, und sie müssen größer als Null sein und sich zu 1 summieren.[viviT]vi

In einer CVX-ähnlichen Syntax lautet das Problem wie folgt: gegebene Variable c(n)

minimizesum(entr(eig(A)))

.

subject toA=civiviTci=1ci0

Hat jemand eine Idee, wie man das effizient löst? Ich weiß bereits, dass es wahrscheinlich nicht als semi-definitives Programmierproblem (SDP) angesehen werden kann.

Trocknet
quelle

Antworten:

8

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.ci>0

A(c):=i=1NciviviT
viA

Zweitens, wie jedes , A verliert Rang so kleinsten Eigenwert von A auf Null geht. Dh σ m i n ( A ( c ) ) 0 als c i0 . 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änkungenci0AAσmin(A(c))0ci0σlog(σ)σ0 sind inaktiv.ci0

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={uiTdAujλjλi,i=j0,i=j

AU=ΛUdΛ

d2Λ=d(I(UTdA1U))=I(dU2TdA1U+UTdA1dU2)=2I(dU2TdA1U).

d2ΛdU2Cvi

Beseitigung der Gleichheitsbeschränkung

i=1Nci=1N1

cN=1i=1N1ci.

N1

df=dC1TMT[I(VTUBUTV)]
ddf=dC1TMT[I(VT[2dU2BaUT+UBbUT]V)],
M=[111111],

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)

  1. c~=[1/N,1/N,,1/N]
  2. c=[c~,1i=1N1ci]
  3. A=iciviviT
  4. UΛA
  5. G=MT[I(VTUBUTV)]
  6. HG=ppHHδc~dU2BaBb
    MT[I(VT[2dU2BaUT+UBbUT]V)]
  7. c~c~p
  8. 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. Geben Sie hier die Bildbeschreibung ein

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

Nick Alger
quelle
Vielen Dank! Ich habe es einfach mit Gradient Asscent selbst gelöst, aber das ist wahrscheinlich zuverlässiger. Die Tatsache, dass v in der Matlab-Datei den vollen Rang haben muss, ist das einzige, was mich stört.
Dries
@NickAlger Der angegebene Link funktioniert nicht. Darf ich Sie bitten, einen Blick darauf zu werfen?
Schöpfer
@Creator aktualisierter Link in Post! github.com/NickAlger/various_scripts/blob/master/…
Nick Alger
@NickAlger Gibt es eine Einschränkung für die Matrix, die der Algorithmus ausführen kann? Ist dieser Algorithmus für Matrix mit komplexen Elementen in Ordnung? In meinem Fall versagt die SVD nach einiger Zeit, da die Matrix Nan hat.
Schöpfer
Ich denke nicht, dass komplexe Zahlen ein Problem sein sollten. Eine Einschränkung der Methode besteht darin, dass die optimale Lösung keine wiederholten Eigenwerte haben kann. Ich vermute, dass dies hier geschieht. In diesem Fall konvergiert die Methode zu etwas, das in der C-Gleichung durch Null geteilt wird. Sie können versuchen, die Eingänge zufällig zu stören und zu sehen, ob dies hilfreich ist. In dem oben genannten Overton-Artikel gibt es eine Möglichkeit, dies zu umgehen, aber mein Code ist nicht so fortgeschritten.
Nick Alger