Edycja: kolega poinformował mnie, że moja metoda poniżej jest przykładem metody ogólnej w poniższym artykule, gdy jest ona wyspecjalizowana w funkcji entropii,
Overton, Michael L. i Robert S. Womersley. „Drugie pochodne do optymalizacji wartości własnych macierzy symetrycznych”. SIAM Journal on Matrix Analysis and Applications 16.3 (1995): 697-718. http://ftp.cs.nyu.edu/cs/faculty/overton/papers/pdffiles/eighess.pdf
Przegląd
W tym poście pokazuję, że problem optymalizacji jest dobrze postawiony i że ograniczenia nierówności są nieaktywne w rozwiązaniu, a następnie oblicz pierwszą i drugą pochodną Frecheta funkcji entropii, a następnie zaproponuję metodę Newtona dotyczącą problemu z wyeliminowanym ograniczeniem równości. Na koniec prezentowany jest kod Matlab i wyniki numeryczne.
Dobrze postawiony problem optymalizacji
Po pierwsze, suma dodatnio określonych macierzy jest dodatnia, więc dla suma macierzy rangi 1
jest dodatnia. Jeśli zbiór ma pełną rangę, wówczas wartości własne są dodatnie, więc można przyjąć logarytmy wartości własnych. Zatem funkcja celu jest dobrze zdefiniowana we wnętrzu wykonalnego zestawu.A ( c ) : = N ∑ i = 1 c i v i v T idoja> 0
A ( c ) : = ∑i = 1N.dojavjavT.ja
AvjaA
Po drugie, jak każdy , traci pozycję, więc najmniejsza wartość własna spada do zera. Tj. as . Ponieważ pochodna wysadza się jako , nie można mieć sekwencji kolejnych coraz lepszych punktów zbliżających się do granicy wykonalnego zbioru. Zatem problem jest dobrze zdefiniowany, a ponadto ograniczenia nierówności są nieaktywne.ci→0AAσmin(A(c))→0ci→0−σlog(σ)σ→0ci≥0
Pochodne Frecheta funkcji entropii
We wnętrzu wykonalnego regionu funkcją entropii jest wszędzie różnicowalność Frecheta i dwukrotność różnicowania Frecheta wszędzie tam, gdzie wartości własne nie są powtarzane. Aby wykonać metodę Newtona, musimy obliczyć pochodne entropii macierzy, które zależą od wartości własnych macierzy. Wymaga to obliczenia czułości rozkładu wartości własnej macierzy w odniesieniu do zmian w macierzy.
Przypomnijmy, że dla macierzy z rozkładem wartości własnej pochodną macierzy wartości własnej w odniesieniu do zmian w oryginalnej macierzy jest:
i pochodną macierzy wektorów własnych jest
gdzie jest iloczynem Hadamarda , o macierzy współczynników
AA=UΛUT
dΛ=I∘(UTdAU),
dU=UC(dA),
∘C={uTidAujλj−λi,0,i=ji=j
Takie formuły wyprowadza się przez różnicowanie równania wartości własnej , a formuły zachowują się, gdy wartości własne są różne. Gdy powtarzane są wartości własne, formuła dla ma usuwalną nieciągłość, którą można przedłużyć, o ile nietypowe wektory własne zostaną starannie wybrane. Aby uzyskać szczegółowe informacje na ten temat, zobacz następującą prezentację i artykuł .AU=ΛUdΛ
Następnie można znaleźć drugą pochodną, różnicując ponownie:
d2Λ=d(I∘(UTdA1U))=I∘(dUT2dA1U+UTdA1dU2)=2I∘(dUT2dA1U).
Podczas gdy pierwsza pochodna macierzy wartości własnych mogłaby być ciągła przy powtarzanych wartościach własnych, druga pochodna nie może, ponieważ zależy od , która zależy od , który wysadza się, gdy wartości własne ulegają degeneracji względem siebie. Jednak dopóki prawdziwe rozwiązanie nie ma powtarzających się wartości własnych, jest OK. Eksperymenty numeryczne sugerują, że tak jest w przypadku generycznego , chociaż nie mam na to dowodu. Jest to naprawdę ważne, aby to zrozumieć, ponieważ maksymalizacja entropii zazwyczaj próbowałaby przybliżyć wartości własne, jeśli to możliwe.d2ΛdU2Cvi
Eliminacja ograniczenia równości
Możemy wyeliminować ograniczenie , pracując tylko na pierwszych współczynnikach i ustawiając ostatni na
∑Ni=1ci=1N−1
cN=1−∑i=1N−1ci.
Ogólnie, po około 4 stronach obliczeń macierzowych, zredukowane pierwsze i drugie pochodne funkcji celu w odniesieniu do zmian pierwszych współczynników są podane przez
gdzie
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).
Metoda Newtona po wyeliminowaniu ograniczenia
Ponieważ ograniczenia nierówności są nieaktywne, zaczynamy po prostu od wykonalnego zestawu i uruchamiamy dokładny region zaufania lub wyszukiwanie liniowe z dokładnym newtonem-CG dla kwadratowej zbieżności z maksimami wewnętrznymi.
Metoda jest następująca (bez uwzględnienia szczegółów przeszukiwania regionu zaufania / linii)
- Zacznij od .c~=[1/N,1/N,…,1/N]
- Skonstruuj ostatni współczynnik, .c=[c~,1−∑N−1i=1ci]
- Skonstruować .A=∑icivivTi
- Znajdź wektorów własnych i wartości własne od .UΛA
- Konstruuj gradient .G=MT[I∘(VTUBUTV)]
- Rozwiąż dla za pomocą gradientu sprzężonego ( potrzebna jest tylko umiejętność zastosowania , a nie rzeczywiste wpisy). stosuje się do wektora , znajdując , i a następnie podłączając do formuły,
p H H δ ˜ cHG=ppHHδc~B a B b M T [ I ∘ ( V T [ 2 d U 2 B a U T + U B b U T ] V ) ]dU2BaBb
MT[I∘(VT[2dU2BaUT+UBbUT]V)]
- Ustaw .c~←c~−p
- Idź 2.
Wyniki
W przypadku losowego , przy przeszukiwaniu linii dla długości kroku metoda bardzo szybko się zbiega. Na przykład typowe są następujące wyniki dla (100 ) - metoda jest zbieżna kwadratowo. N = 100 v iviN=100vi
>> N = 100;
>> V = randn (N, N);
>> dla k = 1: NV (:, k) = V (:, k) / norma (V (:, k)); koniec
>> maxEntropyMatrix (V);
Iteracja Newtona = 1, norma (stopień f) = 0,67748
Iteracja Newtona = 2, norma (stopień f) = 0,03644
Iteracja Newtona = 3, norma (stopień f) = 0,0012167
Iteracja Newtona = 4, norma (stopień f) = 1,3239e-06
Iteracja Newtona = 5, norma (stopień f) = 7,7114e-13
Aby zobaczyć, że obliczony punkt optymalny jest w rzeczywistości maksimum, oto wykres, w jaki sposób entropia zmienia się, gdy punkt optymalny jest zaburzony losowo. Wszystkie zaburzenia powodują zmniejszenie entropii.
Kod Matlab
Funkcja wszystko w 1, aby zminimalizować entropię (nowo dodana do tego postu):
https://github.com/NickAlger/various_scripts/blob/master/maxEntropyMatrix.m