Ograniczony problem optymalizacji w Entropii macierzy

10

Mam ograniczony problem optymalizacji w entropii macierzy (Shannona) (sum(entr(eig(A)))) . Macierz A można zapisać jako sumę macierzy rangi 1 w postaci gdzie jest danym znormalizowanym wektorem. Współczynniki macierzy pierwszego stopnia to niewiadome, w których optymalizujemy i muszą być większe od zera i sumować do 1.v i[viviT]vi

W składni podobnej do CVX problem wygląda następująco: podana zmiennac(n)

minimizesum(entr(eig(A)))

subject toA=civiviTci=1ci0
.

Czy ktoś ma pomysł na skuteczne rozwiązanie tego problemu? Wiem już, że prawdopodobnie nie można go traktować jako problemu programowania pół-określonego (SDP).

Wysycha
źródło

Odpowiedzi:

8

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 ici>0

A(c):=i=1NciviviT
AviA

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.ci0AAσmin(A(c))0ci0σlog(σ)σ0ci0

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={uiTdAujλjλi,i=j0,i=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(dU2TdA1U+UTdA1dU2)=2I(dU2TdA1U).

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 i=1Nci=1N1

cN=1i=1N1ci.

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 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).

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)

  1. Zacznij od .c~=[1/N,1/N,,1/N]
  2. Skonstruuj ostatni współczynnik, .c=[c~,1i=1N1ci]
  3. Skonstruować .A=iciviviT
  4. Znajdź wektorów własnych i wartości własne od .UΛA
  5. Konstruuj gradient .G=MT[I(VTUBUTV)]
  6. 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)]
  7. Ustaw .c~c~p
  8. 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. wprowadź opis zdjęcia tutaj

Kod Matlab

Funkcja wszystko w 1, aby zminimalizować entropię (nowo dodana do tego postu): https://github.com/NickAlger/various_scripts/blob/master/maxEntropyMatrix.m

Nick Alger
źródło
Dziękuję Ci bardzo! Rozwiązałem to sam, stosując założenie gradientowe, ale jest to prawdopodobnie bardziej niezawodne. Niepokoi mnie tylko fakt, że v musi mieć pełną pozycję w pliku matlab.
Suszy
@NickAlger Podany link nie działa, czy mogę poprosić o obejrzenie?
Twórca
@Creator zaktualizował link w poście! github.com/NickAlger/various_scripts/blob/master/…
Nick Alger
@NickAlger Czy matryca jest ograniczona, aby algorytm mógł działać? Czy ten algorytm jest odpowiedni dla macierzy ze złożonymi elementami? W moim przypadku SVD zawodzi po pewnym czasie, ponieważ matryca ma Nan.
Twórca
Nie uważam, że liczby zespolone powinny stanowić problem. Jednym z ograniczeń tej metody jest to, że optymalne rozwiązanie nie może mieć powtarzalnych wartości własnych, co, jak sądzę, dzieje się tutaj. W tym przypadku metoda jest zbieżna do czegoś, co dzieli przez zero w równaniu C. Możesz spróbować trochę przypadkowo zakłócać sygnały wejściowe i sprawdzić, czy to pomaga. Istnieje sposób obejścia tego problemu w cytowanym wyżej dokumencie Overton, ale mój kod nie jest tak zaawansowany.
Nick Alger