genel bakış
kement tipi problemleri için şaşırtıcı bir şekilde hızlı bir şekilde yakınlaştığı tespit edilen Alternatif Yol Çarpanları Yöntemi'nin (ADMM) bir varyantını denemek isteyebilirsiniz . Strateji, sorunu artırılmış bir Lagrangian ile formüle etmek ve daha sonra ikili problem üzerinde gradyan yükselmesi yapmaktır. Bu özel düzenli sorunu için özellikle iyidir, çünkü yöntemin her yinelemesinin düz olmayan kısmı, öğeyi basitçe değerlendirebileceğiniz kesin bir çözüme sahiptir, pürüzsüz kısım ise doğrusal bir sistemi çözmeyi içerir.l 1l1l1
Bu yazıda biz
- probleminizin genelleştirilmesi için genel bir ADMM formülasyonu türetmek,
- her ADMM yinelemesi için alt problemleri elde edin ve durumunuza göre özelleştirin ve ardından
- her bir yinelemenin çözülmesi gereken ortaya çıkan doğrusal sistemi araştırın ve ve için özdeğer ayrışmalarının (veya düşük kademeli yaklaşımlarının) önceden hesaplanmasına dayanan hızlı bir çözücü (veya ön koşullu) geliştirin .Y Y TMTMYYT
- birkaç sonuçla özetleyin
Buradaki büyük fikirlerin çoğu aşağıdaki muhteşem inceleme belgesinde ele alınmıştır,
Boyd, Stephen ve ark. "Dağıtılmış optimizasyon ve istatistiksel öğrenme çarpanları alternatif yön yöntemi ile." Makine Öğreniminde Temeller ve Trendler® 3.1 (2011): 1-122. http://www.stanford.edu/~boyd/papers/pdf/admm_distr_stats.pdf
Ayrıntılara girmeden önce, bunun pratik bir mevcut kod yanıtı olmayan bir yöntem / algoritma cevabı olduğunu belirtmek isterim - bu yöntemi kullanmak istiyorsanız, kendi uygulamanızı yuvarlamanız gerekir.
ADMM formülasyonu
Genel olarak, çözmek istediğinizi varsayalım
minxs.t.∑i|xi|Ax=b.
Orijinal yazıdaki sorun, uygun vektörleştirmeden sonra bu kategoriye girer. (bu sadece prensipte - vektörleştirmenin pratikte yapılması gerekmediğini göreceğiz)
Bunun yerine eşdeğer sorunu çözebilirsiniz,
Lagrange 'ye sahip
L(x,z,λ,γ)=
minx,zs.t.&∑i|xi|+α2||x−z||2+β2||Az−b||2Az=bx=z,
L(x,z,λ,γ)==∑i|xi|+α2||x−z||2+β2||Az−b||2+λT(Az−b)+γT(x−z)∑i|xi|+α2||x−z+1αγ||2+β2||Az−b+1βλ||2+α2||1αγ||2+β2||1βλ||2.
Çarpanları çözer arasında değişen yönü yöntemi ikili problem,
ile hariç çift değişkenlere gradyan çıkış yoluyla ikili alt problemlerde hatalı dönüşümlü projeksiyonlar. Yani, yineleme
x k + 1
maxλ,γminx,zL(x,z,λ,γ),
xk + 1zk + 1γk + 1λk + 1= a r g m i nxL ( x , zk, λk, γk)= a r g m i nzL ( xk + 1, z, λk, γk)= γk+ α ( xk + 1- zk + 1)= λk+ β(Azk+1−b).
ve parametrelerinde (yukarıda bağlanan Boyd & Parikh makalesinde açıklanmıştır) belirli yumuşak koşullar altında , ADMM yöntemi gerçek çözüme dönüşecektir. Yakınsama oranı, çekirdekte bir gradyan çıkış yöntemi olduğu için lineerdir. Genellikle 1) sezgisel tarama temeline göre ve parametrelerini değiştirerek veya 2) Nesterov hızlandırmayı kullanarak süper doğrusal olmak için hızlandırılabilir. Ceza parametrelerini değiştirme hakkında notlar için Boyd anket kağıdına ve ADMM ile Nesterov hızlandırmasını kullanmak için aşağıdaki makaleye bakın,β α βαβαβ
Goldstein, Tom, Brendan O'Donoghue ve Simon Setzer. "Hızlı alternatif yön optimizasyon yöntemleri." CAM raporu (2012): 12-35. ftp://ftp.math.ucla.edu/pub/camreport/cam12-35.pdf
Bununla birlikte, toplam yakınsama oranı sadece doğrusal olsa bile, problemleri için yöntemin, sparite paternini çok hızlı bir şekilde bulduğu ve daha sonra kesin değerler üzerinde daha yavaş yakınsak olduğu gözlemlenmiştir. Seyreklik modelini bulmak en zor kısım olduğu için, bu çok tesadüfi! Mevcut araştırmanın bir alanı gibi görünmesinin kesin nedenleri. Herkes seyreklik modelinin hızlı bir şekilde birleştiğini görür, ancak kimse bunun tam olarak neden olduğunu bilmiyor gibi görünüyor. Bir süre önce Boyd ve Parikh'e e-posta üzerinden bunu sordum ve Parikh, yöntemi bir kontrol sistemleri bağlamında yorumlayarak açıklanabileceğini düşündüm. Bu fenomenin bir başka sezgisel açıklaması aşağıdaki makalenin ekinde bulunmaktadır,l1
Goldstein, Tom ve Stanley Osher. "Bölünmüş Bregman yöntemi L1 düzenli sorunlar için." SIAM Görüntüleme Bilimleri Dergisi 2.2 (2009): 323-343. ftp://ftp.math.ucla.edu/pub/camreport/cam08-29.pdf
Tabii ki şimdi zorluk özel durumunuz için ve güncelleme alt problemlerini çözmektir . Lagrange kuadratik olduğundan, güncelleme alt problemi sadece doğrusal bir sistemin çözülmesini gerektirir. o türevlenemeyen olduğundan subproblem zor görünüyor, ama eleman tarafından uygulanan öğe olabilir çözümü için kesin bir formül var olduğu ortaya çıktı! Şimdi bu alt problemleri daha ayrıntılı olarak tartışıyoruz ve orijinal yayındaki soruna belirliyoruz.z z z xxzzzx
güncelleme alt probleminin kurulumu (doğrusal sistem)z
İçin güncelleme, var
a r g m i n z L ( x k , z , λ k , γ k ) = a r g m i n z αz
argminzL(xk,z,λk,γk)=argminzα2||x−z+1αγ||2+β2||Az−b+1βλ||2.
Sorununuz için uzmanlaştıkça,
a r g m i nZJ, ZBα2| | Jk + 1- ZJ+ 1αΓJ| |2Fr o+ α2| | Bk + 1- ZB+ 1αΓB| |2Fr o+ β2| | MZJ+ ZBY- X+ 1αΛ | |2Fr o,
burada , Frobenius (elementwise ) normunu belirtir . Bu, ve göre objektifin kısmi türevlerini alarak ve sıfıra ayarlayarak birinci dereceden optimallik koşullarının bulunabileceği kuadratik bir minimizasyon problemidir . Bu,
l 2 Z J Z B 0| | ⋅ | | Fr ol2ZJZB
00= - α2( Jk + 1- ZJ+ 1αΓJ) + β2MT( MZJ+ ZBY- X+ 1βΛ ) ,= - α2( Bk + 1- ZB+ 1αΓB) + β2( MZJ+ ZBY- X+ 1βΛ ) YT.
Orijinal poster Justin Solomon'un yorumlarında belirtildiği gibi, için bu sistem simetriktir, bu nedenle eşlenik gradyan ideal bir yöntemdir. Daha sonraki bir bölüm, bu sistemi ve daha ayrıntılı olarak nasıl çözüleceğini / ön koşullandırılacağını açıklar.ZJ, ZB
güncelleme alt problemini çözme (analitik eşik çözümü)x
Şimdi alt ,
a r g m i n x L ( x , z k , λ k , γ k ) = a r g m i n x ∑ i | x i | + αx
a r g m i nxL ( x , zk, λk, γk) = a r g m i nxΣben| xben| + α2||x−zk+1αγk||2
Görülecek ilk şey, toplamın öğeye göre ayrılabileceği,
Σben| xben| + α2| | x- zk+ 1αγk| |2= ∑ben| xben| + α2Σben( xben- zkben+ 1αγkben)2,
Dolayısıyla, optimizasyon problemi öğesini paralel olarak,
xk + 1ben=argminxi|xi|+α2(xi−zki+1αγki)2.
Bu denklemin genel biçimi,
mins|s|+α2(s−t)2.
Mutlak değer fonksiyonu en uygun noktayı çekmeye çalışırken, ikinci dereceden terim en uygun noktayı doğru çekmeye çalışıyor . gerçek çözüm bu nedenle ikisi arasında segmentinde bir yerde bulunur; artan en uygun noktayı doğru çekme eğilimi ve azalan en uygun noktayı doğru çeker .s = t [ 0 , t ) α t α 0s=0s=t[0,t)αtα0
Bu dışbükey bir işlevdir, ancak sıfırda ayırt edilemez. Bir minimizasyon noktasının koşulu, o noktadaki hedefin alt türevinin sıfır içermesidir. İkinci dereceden terim türevine sahiptir ve mutlak değer fonksiyonu için türevine , olduğunda aralığı olarak set değerli alt türevine ve için türev . . Böylece, genel objektif fonksiyon için alt türev alırız,
- 1 s < 0 [ - 1 , 1 ] s = 0 1 s > 0 ∂ s ( | s | + αα(s−t)−1s<0[−1,1]s=01s>0
∂s(|s|+α2(s−t)2)=⎧⎩⎨1+α(s−t)[ - 1 , 1 ] + α t ,- 1 + α ( s - t ) ,s > 0s = 0 ,s < 0.
Bundan biz de objektif bir subderivative görüyoruz içeriyorsa ancak ve ancak , bu durumda küçültücüdür. Öte yandan, eğer minimizer değilse, tek değerli türevi sıfıra eşit olarak ayarlayabilir ve minimizer için çözebiliriz. Bunu yaptığınızda,
0 | t | ≤ 1s = 00 s=0s=0argmins| s| +α| t | ≤ 1αs = 0s = 0
a r g m i ns| s | + α2( s - t )2= ⎧⎩⎨⎪⎪t - 1α,0 ,t + 1α,t > 1α,| t | ≤ 1α,t < - 1α
Bu sonucu tekrar asıl soruna özelleştirmek için verimi,
için güncelleme basitçe
J k + 1 i j ={ Z k i j - 1t = Zkben j- 1αΓkben j
Jk + 1ben j= ⎧⎩⎨⎪⎪⎪⎪Zkben j- 1αΓkben j- 1α,0 ,Zkben j- 1αΓkben j+ 1α,Zkben j- 1αΓkben j> 1α,| Zkben j- 1αΓkben j| ≤ 1α,Zkben j- 1αΓkben j< - 1α.
BBk + 1= ZB- 1αΓB,
Orijinal poster Justin Solomon tarafından belirtildiği gibi yorumlarda. Genel olarak, için güncelleme yapmak sadece matrislerinizin girişleri arasında döngü ve her bir giriş için yukarıdaki formülleri değerlendirmeyi gerektirir.J, B
sistemi için Schur tamamlayıcısıZJ, ZB
Yinelemenin en pahalı adımı sistemi çözmek,
00= - α2( Jk + 1- ZJ+ 1αΓJ) + β2MT( MZJ+ ZBY- X+ 1βΛ ) ,= - α2( Bk + 1- ZB+ 1αΓB) + β2( MZJ+ ZBY- X+ 1βΛ ) YT.
Bu amaçla, bu sistem için iyi bir çözücü / ön koşullandırıcı oluşturmak biraz çaba sarf etmeye değer. Bu bölümde bunu vektörleştirerek , bir Schur tamamlayıcısı oluşturarak , bazı Krnoecker ürün manipülasyonları yaparak ve daha sonra vektörleştirerek yapıyoruz. Ortaya çıkan Schur tamamlayıcı sistemi, hafifçe değiştirilmiş bir Sylvester denklemidir .
Aşağıda, vektörizasyon ve Kronecker ürünleri ile ilgili aşağıdaki kimlikler kesinlikle önemlidir:
- v e c (ABC) = ( CT⊗ A ) v e c ( B ) ,
- ( A ⊗ B ) ( C⊗ D ) = A C⊗ B D ,
- ( A ⊗ B )- 1= A- 1⊗ B- 1 ve
- ( A ⊗ B )T= AT⊗ BT .
Bu kimlikler, matris boyutları ve tersinirliği, denklemin her bir tarafının geçerli bir ifade olacağı şekilde tutulur.
Sistemin vektörleştirilmiş şekli,
( α I+ β[ Ben⊗ MTMY⊗ M( Y⊗ M)TYYT⊗ Ben] ) [ v e c ( ZJ)v e c ( ZB)]= [ H , e c ( α J+ βMTX+ ΓJ- MTΛ )v e c (αB+βXYT+ ΓB- Λ YT)] ,
veya
[ Ben⊗ ( α I+ βMTM)βY⊗ Mβ( Y⊗ M)T( α I+ βYYT) ⊗ Ben] [ v e c ( ZJ)v e c ( ZB)] = [ v e c ( F)v e c (G)] ,
burada ve sağ taraf için yoğun gösterimlerdir. Şimdi, matrisin sol alt bloğunu ortadan kaldırmak için Kronecker ürünlerini yoğunlaştırma sürecinde blok-gauss-eliminasyon / Schur tamamlayıcısı gerçekleştiriyoruz. Bu,
FG,
[ Ben⊗ ( α I+ βMTM)0β( Y⊗ M)T( α I+ βYYT) ⊗ Ben- β2YYT⊗ M( α I+ βMTM)- 1MT] …⋅ [ v e c ( ZJ)v e c ( ZB)] = [ v e c ( F)v e c (G)-βY⊗ M( α I+ βMTM)- 1v e c (F)] .
Unvectorizing, sırayla çözmemiz gereken iki denklem,
ZB( α I+ βYYT) - ( βM( α I+ βMTM)- 1MT) ZB( βYYT) …= G - βM( α I+ βMTM)- 1FYT
( α I+ βMTM) ZJ= F- βMTZBY.
kare, yüksek rütbe olduğunda Schur tamamlayıcı sistemin çözümüY, M
Bu bölümde, matrislerinin önceden hesaplanmış tam kullanarak ve Sylvester için Bartels-Stewart algoritmasının değiştirilmiş bir versiyonunu uygulayarak (yukarıdaki denklem 1) için Schur tamamlayıcı sistemini denklem. Algoritma, standart terimden ikinci ekstra hesaba katmak için biraz değiştirilir , bu da Sylvester denklemini tam olarak yapmaz. Bir kezZBYYT, MMT, MTMβYYTZB ilk denklem yoluyla bulunursa, kolayca ikinci denklemden bulunabilir. İkinci denklemi istediğiniz herhangi bir yöntemle çözmek önemsizdir.ZJ
Bu yöntem, ADMM işlemi başlamadan önce iki tam SVD'yi önceden hesaplamak için önceden bir maliyet gerektirir, ancak daha sonra gerçek ADMM yinelemelerinde uygulanması hızlıdır. Yöntem, kısıtlama matrislerinin tam SVD'leriyle uğraştığından, kareye ve yüksek rütbeye yakın oldukları zaman uygundur. Düşük seviyeli SVD'leri kullanan daha karmaşık bir yöntem de mümkündür, ancak daha sonraki bir bölümde sunulmaktadır.
Yöntem aşağıdaki gibi gelişir. Let
göstermektedirler önceden hesaplanmış tam tekil değer ayrıştırma ve olmak sağ tarafı yoğunlaştırmak . Daha sonra ilk denklem haline gelir
çarpma sola ve sağa temizlemek için dikey faktörler tarafından ve yeni bir geçici bilinmeyen ayarlamak , bu daha da,
Q D QT= YYT,WΣ WT= MMT,VTVT= MTM
'HZBQ ( α I+ D ) ST- WβΣ ( α I+ Σ )- 1Σ WTZBQ D QT= H.
A = WTZBSA ( α I+ D ) - βΣ ( α I+ Σ )- 1Σ A D = W'HST.
Şimdi çapraz sistemi
çözerek bulabilirizbir
( ( α I+ D ) ⊗ I+ D ⊗ βΣ ( α I+ Σ )- 1Σ ) v e c ( A ) = v e c ( W'HST) .
bulduktan sonra , ve , için yukarıdaki ikinci denklemi , bu zaten için özdeğer ayrışmasına sahip olduğumuz için önemsiz .birZB= WA QTZBZJMTM
Ön maliyet, ve iki simetrik pozitif tanımlanmış özdeğer ayrışmasını hesaplıyor ve daha sonra tam bir çözüm için yineleme başına maliyete, aynı sırayla bulunan bir avuç matris-matris çarpımı hakimdir. büyüklük 1 CG alt sınırı yapıyor. Açık özde ayrışma çok maliyetli ise, örneğin Lanczos yinelemesini erken sonlandırarak ve en büyük özvektörleri koruyarak tam olarak hesaplanabilirler . Daha sonra yöntem, doğrudan çözücü yerine CG için iyi bir ön koşul olarak kullanılabilir.MTMYYT
çok dikdörtgen olduğunda veya düşük sıralı yaklaşıma sahip olduğunda çözüm yöntemiM, Y
Şimdi dikkatimizi a) giriş matrisleri çok dikdörtgen olduğunda - veya sütunlardan çok daha fazla satıra sahip olduklarında veya tersi - veya b) düşük sıralı yaklaşıma sahip olduklarında çözmeye veya ön koşullandırmaya . Aşağıdaki derivasyon, Woodbury formülü, Schur tamamlayıcısı ve diğer benzer manipülasyonların kapsamlı kullanımını içerir.ZJ, ZBM, Y
Schur tamamlayıcı sistemimizle başlıyoruz,
( α I+ βYYT) ⊗ Ben- β2YYT⊗ M( α I+ βMTM)- 1MT.
Birkaç manipülasyon bu sistemi daha simetrik bir forma dönüştürür,
( α I+ βben⊗ MMT+ βYYT⊗ Ben) v e c ( ZB) = ( I⊗ ( Ben+ βαMMT) ) v e c ( H) .
Şimdi düşük seviyeli yaklaşımları getiriyoruz. Let
olabilir ya da azaltılmış SVD en ya da düşük seviye yaklaşımları ve ( bir tutucudur olup Kullanılmış). Bunları sistemimize koymak, uygulamak istediğimiz tersi matrisi verir,
Q D1 / 2ST2= YWΣ1 / 2VT= M
YMS2( α I+ βben⊗ WΣ WT+ βYYT⊗ Ben)- 1.
Tersine çevirmek için kullandığımız matris kimliğin düşük dereceli bir güncellemesi olduğundan, mantıksal strateji Woodbury formülünü kullanmaya çalışmaktır
( A + UCUT)- 1= A- 1- A- 1U( C- 1+ UTbir- 1U)- 1UTbir- 1.
Bununla birlikte, ve düşük sıralı parçaları dik olmadığından biraz özen gösterilmelidir . Böylece Woodbury formülünü uygulamak için her iki düşük dereceli güncellemeyi tek bir büyük güncellemede topluyoruz. Bunu yapmak ve Woodbury formül verimlerini uygulamak,
ben⊗ WY⊗ Ben
( 1αben+ β[ Ben⊗ WS ⊗ I] [ Ben⊗ ΣD ⊗ Y] [ Ben⊗ ΣTST⊗ Ben] )- 1= α I- βα2[ Ben⊗ WS ⊗ I] [ Ben⊗ ( Σ- 1+ βαben)βαST⊗ WβαQ ⊗ WT( D- 1+ βαben) ⊗ Y]- 1[ Ben⊗ ΣTST⊗ Ben] .
Çekirdek ters 2x2 ters formülü ile hesaplanabilir,
[ ABTBC]- 1= [ ( A - B C- 1BT)- 1- C- 1BT( A - B C- 1BT)- 1- A- 1B ( C- BTbir- 1B )- 1( C- BTbir- 1B )- 1] .
Bu yazı zaten yeterince uzun, bu yüzden hesaplamanın uzun ayrıntılarını yedekleyeceğim, ancak sonuçta gerekli alt matrisleri blok halinde tersine takmak ve her şeyi çarpmak, genel ters için aşağıdaki açık formu verir
( α I+ βben⊗ MMT+ βYYT⊗ Ben)- 1= 1αben- βα2( t11+ s11+ t12+ s12+ t21+ s21+ t22+ s22) ,
burada
t11s11t12s12t21s21t22s22D11D22lh= αβben⊗ Wl- 1WT= ( Q ⊗ Wl- 1) D11( QT⊗ l- 1WT)= - αβQ s- 1ST⊗ Wl- 1WT= - ( Q s- 1⊗ Wl- 1) D22( s- 1ST⊗ WT)= t12= - ( Q s- 1⊗ W) D22( s- 1ST⊗ l- 1WT)= αβQ s- 1ST⊗ Ben= ( Q s- 1⊗ W) D22( s- 1ST⊗ WT)= αβ( h ⊗ Ben- Ben⊗ l- 1)- 1= αβ( Ben⊗ l - h- 1⊗ Ben)- 1= αβΣ- 1+ I= αβD- 1+ I.
Bu formda, tersi uygulayabilir ve terimini 8 sol ve sağ matris çarpma sandviçinden terime göre bulabiliriz . Kronecker ürünlerinin toplamını uygulamak için genel formül,
ZB
( ( A1⊗ B1) + ( A2⊗ B2) + … ) V e c ( C) = v e c ( BT1Cbir1+ BT2Cbir2+ … ) .
Sonuçta ortaya çıkardığımız tüm açık tersler diyagonaldir, bu yüzden "çözülecek" hiçbir şey yoktur.
Doğrusal çözücü kodu
Matlab'da yukarıdaki iki çözücüsünü . İyi çalışıyor gibi görünüyor. Çözücü kodu burada.zJ, ZB
https://github.com/NickAlger/MeshADMM/blob/master/zkronsolve.m
Çözücülerin çalışıp çalışmadığını kontrol etmek için bir test komut dosyası. Ayrıca örnek olarak çözücü kodunun nasıl çağrılacağını da gösterir.
https://github.com/NickAlger/MeshADMM/blob/master/test_zkronsolve.m
son sözler
ADMM türü yöntemler bu tür sorunlar için çok uygundur, ancak kendi uygulamanızı gerçekleştirmeniz gerekir. Yöntemin genel yapısı oldukça basittir, bu nedenle MATLAB gibi bir şeyde uygulama çok zor değildir.
Sorununuz için yöntemi tam olarak tanımlamak üzere belirtilmesi gereken bu gönderiden eksik olan parça, ceza parametreleri seçimidir . Neyse ki, parametre değerleri çılgın olmadığı sürece yöntem genellikle oldukça sağlamdır. Boyd ve Parikh gazetesinde buradaki referanslar gibi ceza parametreleri hakkında bir bölüm var, ancak makul yakınsama oranları elde edene kadar parametreleri deniyorum.α , β
Sunulan çözücü stratejileri, eğer kısıtlama matrisleri a) yoğun, kare ve yüksek rütbe veya b) iyi bir düşük rütbe yaklaşımına sahipse oldukça etkilidir. Gelecekteki çalışmaların bir konusu olabilecek başka bir yararlı çözücü, aşağıdaki durum için optimize edilmiş bir çözücü olacaktır - kısıtlama matrisi seyrek ve kare şeklinde ve yüksek derecelidir, ancak için iyi bir önkoşul vardır . Örneğin, ayrıklaştırılmış bir Laplacian olması durum böyle olur .ZJ, ZBMα I+ MMTM