Matris Entropisinde Kısıtlı Optimizasyon Sorunu


10

(Shannon) matris entropi kısıtlı bir optimizasyon problemim var . Matris değerde toplamı olarak yazılabilir form 1 matrisler burada belirli bir normalize edilmiş vektördür. Rütbe bir matrisin katsayıları, optimize ettiğimiz bilinmeyenlerdir ve bunların sıfırdan büyük olması ve 1'e kadar toplamları gerekir.(sum(entr(ebeng(bir))))bir[vbenvbenT]vben

CVX benzeri bir sözdiziminde sorun şu şekildedir: verilen değişkenc(n)

küçültmeksum(entr(ebeng(bir)))

tabibir=ΣcbenvbenvbenTΣcben=1cben0
.

Bunun nasıl verimli bir şekilde çözüleceği hakkında bir fikri var mı? Muhtemelen yarı tanımlı bir programlama (SDP) problemi olarak kullanılamayacağını biliyorum.

Yanıtlar:


8

Düzenleme: Bir meslektaşım bana aşağıdaki yöntem benim entropi fonksiyonu için uzmanlaşmış aşağıdaki makalede genel yöntemin bir örneği olduğunu,

Overton, Michael L. ve Robert S. Womersley. "Simetrik matrislerin özdeğerlerini optimize etmek için ikinci türevler." SIAM Matris Analizi ve Uygulamaları Dergisi 16.3 (1995): 697-718. http://ftp.cs.nyu.edu/cs/faculty/overton/papers/pdffiles/eighess.pdf

genel bakış

Bu yazıda optimizasyon sorununun iyi bir şekilde ortaya konduğunu ve eşitsizlik kısıtlamalarının çözümde etkin olmadığını, daha sonra entropi fonksiyonunun birinci ve ikinci Frechet türevlerini hesapladığını, daha sonra ortadan kaldırılan eşitlik kısıtlamasıyla Newton'un yöntemini önerdim. Son olarak Matlab kodu ve sayısal sonuçlar sunulur.

Optimizasyon probleminin iyi pozlanması

İlk olarak, pozitif belirli matrislerin toplamı pozitif , bu nedenle , - sıralaması matrislerinin toplamı pozitif . Set halinde tam rütbe, sonra özdeğer özdeğerlerinin logaritma alınabilir, böylece olumludur. Böylece, objektif fonksiyon uygulanabilir kümenin iç kısmında iyi tanımlanmıştır.A ( c ) : = N i = 1 c i v i v T i v i Acben>0

bir(c): =Σben=1N-cbenvbenvbenT
vbenbir

Herhangi olarak İkincisi, , rütbe kaybeder en küçük özdeğer böylece sıfıra gider. Yani, , . türevi olarak patladığı için , uygulanabilir kümenin sınırına yaklaşan sıralı olarak daha iyi ve daha iyi noktalar dizisi olamaz. Dolayısıyla problem iyi tanımlanmıştır ve ayrıca eşitsizlik kısıtlamaları aktif değildir.A A σ m i n ( A ( c ) ) 0 c i0 - σ günlüğü ( σ ) σ 0 c i0cben0birbirσmbenn(bir(c))0cben0-σgünlük(σ)σ0cben0

Entropi fonksiyonunun frechet türevleri

Uygulanabilir bölgenin iç kısmında entropi fonksiyonu her yerde Frechet ile ayırt edilebilir ve özdeğerlerin tekrarlanmadığı her yerde iki kez Frechet ayırt edilebilir. Newton'un yöntemini yapmak için, matrisin özdeğerlerine bağlı olan matris entropisinin türevlerini hesaplamamız gerekir. Bu, bir matrisin özdeğer ayrışmasının matristeki değişikliklere göre duyarlılıklarının hesaplanmasını gerektirir.

Özdeğer ayrışması olan bir matris için , orijinal matristeki değişikliklere göre özdeğer matrisinin türevinin ve özvektörler matrisin türevi, olan Hadamard ürün katsayısı matrisi ile, A = U Λ U T d Λ = I ( U T d A U ) , d U = U C ( d A ) , C = { u T i d A u jbirbir=UΛUT

dΛ=ben(UTdbirU),
dU=UC(dbir),
C={ubenTdbirujλj-λben,ben=j0,ben=j

Bu tür formüller, özdeğer denklemini farklılaştırarak türetilir ve formüller, özdeğerler farklı olduğunda tutunur. Tekrarlanan özdeğerler olduğunda, formülü , özdeş olmayan özvektörler dikkatle seçildiği sürece uzatılabilen çıkarılabilir bir süreksizliğe sahiptir. Bununla ilgili ayrıntılar için aşağıdaki sunuma ve makaleye bakın .d ΛbirU=ΛUdΛ

İkinci türev daha sonra tekrar farklılaştırılarak bulunur,

d2Λ=d(ben(UTdbir1U))=ben(dU2Tdbir1U+UTdbir1dU2)=2ben(dU2Tdbir1U).

Özdeğer matris birinci türevi tekrar özdeğerler sürekli yapılabilir olmakla birlikte, ikinci türev olamaz çünkü bağlıdır bağlıdır, özdeğerler birbirine doğru dejenere olarak patlar. Bununla birlikte, gerçek çözüm tekrarlanan özdeğerlere sahip olmadığı sürece, sorun olmaz. Sayısal deneyler , bu noktada bir kanıtım olmamasına rağmen, bu genel için geçerli olduğunu düşündürmektedir . Bunu anlamak gerçekten önemlidir, çünkü entropiyi maksimuma çıkarmak genellikle özdeğerleri mümkünse birbirine yaklaştırmaya çalışır.d2ΛdU2Cvben

Eşitlik kısıtlamasını ortadan kaldırmak

kısıtlamasını yalnızca ilk katsayıları üzerinde çalışarak ve ayarlayarak ortadan Σben=1N-cben=1N--1

cN-=1-Σben=1N--1cben.

Genel olarak, yaklaşık 4 sayfa matris hesaplamalarından sonra, ilk katsayılarındaki değişikliklere göre objektif fonksiyonun azaltılmış birinci ve ikinci türevleri , burada N--1

df=dC1TMT[ben(VTUBUTV)]
ddf=dC1TMT[ben(VT[2dU2BbirUT+UBbUT]V)],
M=[111-1-1...-1],

Bbir=dbenbirg(1+günlükλ1,1+günlükλ2,...,1+günlükλN-),

Bb=dbenbirg(d2λ1λ1,...,d2λN-λN-).

Kısıtlamayı ortadan kaldırdıktan sonra Newton yöntemi

Eşitsizlik kısıtlamaları etkin olmadığından, iç mekan maksimum değerine kuadratik yakınsama için sadece uygulanabilir kümede başlar ve güven bölgesi veya satır arama hatalı newton-CG çalıştırırız.

Yöntem aşağıdaki gibidir (güven bölgesi / satır arama ayrıntıları dahil değil)

  1. başlayın .c~=[1/N-,1/N-,...,1/N-]
  2. Son katsayıyı oluşturun, .c=[c~,1-Σben=1N--1cben]
  3. Konstrukt .bir=ΣbencbenvbenvbenT
  4. Özvektörler ve Özdeğer ait .UΛbir
  5. Degrade .G,=MT[ben(VTUBUTV)]
  6. Çözün için konjugat gradyan ile (uygulamak için sadece yeteneği değil, gerçek girdileri gerektirir). vektörü uygulanır bularak , ve ve daha sonra, formül, takıp 'HG,=pp'H'Hδc~dU2BbirBb
    MT[ben(VT[2dU2BbirUT+UBbUT]V)]
  7. Ayar .c~c~-p
  8. Git 2.

Sonuçlar

Rasgele , steplength için linesearch ile yöntem çok hızlı bir şekilde yakınsar. Örneğin, (100 ) ile aşağıdaki sonuçlar tipiktir - yöntem kuadratik olarak yakınsar.vbenN-=100vben

>> N = 100;
>> V = randn (N, N);
>> k = 1 için: NV (:, k) = V (:, k) / norm (V (:, k)); son
>> maxEntropyMatrix (V);
Newton yinelemesi = 1, norm (grad f) = 0.67748
Newton yinelemesi = 2, norm (grad f) = 0.03644
Newton yinelemesi = 3, norm (grad f) = 0.0012167
Newton yinelemesi = 4, norm (grad f) = 1.3239e-06
Newton iterasyonu = 5, norm (grad f) = 7.7114e-13

Hesaplanan optimal noktanın aslında maksimum olduğunu görmek için, burada optimal nokta rastgele bozulduğunda entropinin nasıl değiştiğinin bir grafiği. Tüm düzensizlikler entropiyi azaltır. resim açıklamasını buraya girin

Matlab kodu

Entropiyi en aza indirmek için hepsi bir arada işlev (bu gönderiye yeni eklendi): https://github.com/NickAlger/various_scripts/blob/master/maxEntropyMatrix.m


Çok teşekkür ederim! Ben de basit degrade asscent ile kendim çözdüm, ama bu muhtemelen daha güvenilir. V'nin matlab dosyasında tam sırada olması gerektiği beni rahatsız eden tek şey.
Dries

@NickAlger Sağlanan bağlantı çalışmıyor, bir göz atmanızı isteyebilir miyim?
Oluşturan

@Creator yayındaki bağlantı güncellendi! github.com/NickAlger/various_scripts/blob/master/…
Nick Alger

@NickAlger Matris üzerinde algoritmanın çalışabileceği bir kısıtlama var mı? Bu algoritma karmaşık elemanlara sahip matris için uygun mu? Benim durumumda SVD, matris Nan'e sahip olduğu için bir süre sonra başarısız oluyor.
Oluşturan

Karmaşık sayıların sorun olması gerektiğini düşünmüyorum. Yöntemin bir sınırlaması, optimal çözümün burada tekrarlanan şey olduğunu tahmin ettiğim özdeğerleri tekrarlayamamasıdır. Bu durumda yöntem, C denkleminde sıfıra bölünen bir şeye yakınsar. Girişleri rastgele bozmayı deneyebilir ve bunun bir şeylere yardımcı olup olmadığını görebilirsiniz. Yukarıda başvurulan Overton kağıdında geçici bir çözüm bulmak için bir yol var, ancak kodum bu kadar gelişmiş değil.
Nick Alger
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.