Редагувати: колега поінформував мене, що мій спосіб, наведений нижче, є прикладом загального методу в наступному документі, коли він спеціалізується на функції ентропії,
Овертон, Майкл Л. та Роберт С. Вомерслі. "Другі похідні для оптимізації власних значень симетричних матриць." Журнал SIAM щодо матричного аналізу та застосувань 16.3 (1995): 697-718. http://ftp.cs.nyu.edu/cs/facturing/overton/papers/pdffiles/eighess.pdf
Огляд
У цьому дописі я показую, що проблема оптимізації добре поставлена і що обмеження нерівності неактивні при розв’язанні, потім обчислюють першу та другу похідні Фреше функції ентропії, а потім пропонують метод Ньютона щодо проблеми з усуненим обмеженням рівності. Нарешті, представлений код Matlab та числові результати.
Добре поставлена проблема оптимізації
По-перше, сума позитивних визначених матриць є позитивно визначеною, тому для сума матриць рангу-1
A ( c ) : = N ∑ i = 1 c i v i v T i
є позитивно визначеною. Якщо множина v i є повним рангом, то власні значення A позитивні, тому логарифми власних значень можна приймати. Таким чином, цільова функція чітко визначена в інтер'єрі здійсненного набору.ci> 0
A ( c ) : = ∑i = 1NcivivТi
viА
По-друге, як і будь-який , A втрачає ранг, тому найменше власне значення A переходить до нуля. Тобто, σ m i n ( A ( c ) ) → 0 як c i → 0 . Оскільки похідна - σ log ( σ ) вибухає як σ → 0 , не може бути послідовність послідовно кращих і кращих точок, що наближаються до межі доцільної множини. Таким чином, проблема чітко визначена, а крім того, обмеження нерівностіci→ 0ААσм я н( A ( c ) ) → 0ci→ 0- σжурнал( σ)σ→ 0 неактивні.ci≥ 0
Фреш-похідні функції ентропії
У внутрішній частині можливої області функція ентропії є фрешетом, диференційованою скрізь, і двічі диференційованою Фреше, де б не повторилися власні значення. Для здійснення методу Ньютона нам потрібно обчислити похідні ентропії матриці, що залежить від власних значень матриці. Для цього потрібні обчислення чутливості розкладання власного значення матриці щодо змін у матриці.
Нагадаємо, що для матриці з власним значенням розкладання A = U Λ U T похідна матриці власного значення щодо змін вихідної матриці дорівнює,
d Λ = I ∘ ( U T d A U ) ,
і похідна власний вектор матриця,
d U = U C ( d A ) ,
де ∘ є продуктом Адамар , з матрицею коефіцієнтів
C = { UАA = UΛ UТ
гΛ = я∘ ( UТгА У) ,
гU= UС( дА ) ,
∘С= { уТiгА уjλj- λi,0 ,i = ji= j
Такі формули виводяться шляхом диференціювання рівняння власного значення , а формули дотримуються кожного разу, коли власні значення відрізняються. Коли є повторюються власні значення, формула для г Л має знімний розрив , який може бути продовжений до тих пір , як неєдиним власні вектори обрані ретельно. Детальніше про це дивіться у наступній презентації та статті .А У= Λ UгΛ
Друга похідна потім знаходить шляхом повторної диференціації,
г2Λ= d( Я∘ ( UТгА1U) )= Я∘ (dUТ2гА1U+ UТгА1гU2)= 2 я∘ ( dUТ2гА1U) .
г2ΛгU2Сvi
Усунення обмеження рівності
∑Ni = 1ci= 1N- 1
cN= 1 - ∑i = 1N- 1ci.
N- 1
гf= dСТ1МТ[Я∘ ( VТUБ УТV) ]
ггf= dСТ1МТ[Я∘ ( VТ[ 2 дU2БаUТ+ UБбUТ]V) ] ,
М= ⎡⎣⎢⎢⎢⎢⎢⎢⎢1- 11- 1⋱…1- 1⎤⎦⎥⎥⎥⎥⎥⎥⎥,
Ба= d i a g ( 1 + логλ1, 1 + журналλ2, … , 1 + журналλN) ,
Бб= d i a g ( d2λ1λ1, … , Д2λNλN) .
Метод Ньютона після усунення обмеження
Оскільки обмеження нерівності неактивні, ми просто починаємо в здійсненому наборі та запускаємо довірчий регіон чи пошук рядків неточного Ньютона-КГ для квадратичного зближення до внутрішніх максимумів.
Метод такий: (не враховуючи деталі пошуку довіри регіону / рядка)
- c~= [ 1 / N, 1 / Н, … , 1 / N]
- c = [ c~, 1 - ∑N- 1i = 1ci]
- A = ∑icivivТi
- UΛА
- G = MТ[ Я∘ ( VТUБ УТV) ]
- НГ = ppННδc~гU2БаБб
МТ[ Я∘ ( VТ[ 2 дU2БаUТ+ UБбUТ] V) ]
- c~← c~- с
- Перейти 2.
Результати
viN= 100vi
>> N = 100;
>> V = randn (N, N);
>> для k = 1: NV (:, k) = V (:, k) / норма (V (:, k)); кінець
>> maxEntropyMatrix (V);
Ітерація Ньютона = 1, норма (градус f) = 0,67748
Ітерація Ньютона = 2, норма (градус f) = 0,03644
Ітерація Ньютона = 3, норма (градус f) = 0,0012167
Ітерація Ньютона = 4, норма (градус f) = 1.3239e-06
Ітерація Ньютона = 5, норма (градус f) = 7,7114e-13
Щоб побачити, що обчислена оптимальна точка насправді є максимумом, ось графік того, як змінюється ентропія, коли оптимальна точка порушена випадковим чином. Усі збурення спричиняють зменшення ентропії.
Код Matlab
Функція "все в 1" для мінімізації ентропії (щойно додана до цієї публікації):
https://github.com/NickAlger/various_scripts/blob/master/maxEntropyMatrix.m