Überblick
Vielleicht möchten Sie eine Variante der ADMM- Methode ( Alternating Directions Method of Multipliers) ausprobieren, die bei Problemen vom Typ Lasso überraschend schnell konvergiert . Die Strategie besteht darin, das Problem mit einem erweiterten Lagrange zu formulieren und dann einen Gradientenanstieg auf das duale Problem durchzuführen. Besonders schön ist es für diese besondere regularisiert Problem , weil das nicht glatte Teil jeder Iteration des Verfahrens eine exakte Lösung hat , kann man einfach Element für Element zu bewerten, während der glatte Teil ein lineares System beinhaltet die Lösung.l 1l1l1
In diesem Beitrag haben wir
- eine allgemeine ADMM-Formulierung für eine Verallgemeinerung Ihres Problems ableiten,
- Leiten Sie die Teilprobleme für jede ADMM-Iteration ab und spezialisieren Sie sie auf Ihre Situation
- Untersuchen Sie das resultierende lineare System, das bei jeder Iteration gelöst werden muss, und entwickeln Sie einen schnellen Löser (oder Vorkonditionierer), der auf der Vorberechnung der Eigenwertzerlegungen (oder von Annäherungen mit niedrigem Rang) für und basiert .Y Y T.MTMYYT
- fassen Sie mit einigen abschließenden Bemerkungen zusammen
Die meisten der großen Ideen hier werden in dem folgenden hervorragenden Übersichtsartikel behandelt:
Boyd, Stephen et al. "Verteilte Optimierung und statistisches Lernen über die Wechselrichtungsmethode von Multiplikatoren." Grundlagen und Trends® im maschinellen Lernen 3.1 (2011): 1-122. http://www.stanford.edu/~boyd/papers/pdf/admm_distr_stats.pdf
Bevor ich auf Details eingehe, möchte ich darauf hinweisen, dass dies eine Methode / Algorithmus-Antwort ist, keine praktische Antwort auf vorhandenen Code. Wenn Sie diese Methode verwenden möchten, müssen Sie Ihre eigene Implementierung rollen.
ADMM-Formulierung
Angenommen, Sie möchten im Allgemeinen
minxs.t.∑i|xi|Ax=b.
Das Problem im ursprünglichen Beitrag fällt nach entsprechender Vektorisierung in diese Kategorie. (Dies ist nur im Prinzip - wir werden sehen, dass die Vektorisierung in der Praxis nicht durchgeführt werden muss)
Sie könnten stattdessen das entsprechende Problem lösen:
mit Lagrange
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.
Die von Multiplikatoren löst das duale Problem
über den Gradientenanstieg auf den dualen Variablen, außer mit ungenaue alternierende Projektionen auf die dualen Teilprobleme. Das heißt, man macht die Iteration
x k + 1
maxλ,γminx,zL(x,z,λ,γ),
xk+1zk+1γk+1λk+1=argminxL(x,zk,λk,γk)=argminzL(xk+1,z,λk,γk)=γk+α(xk+1−zk+1)=λk+β(Azk+1−b).
Unter bestimmten milden Bedingungen für die Parameter und (erläutert in dem oben verlinkten Boyd & Parikh-Artikel) konvergiert die ADMM-Methode zur wahren Lösung. Die Konvergenzrate ist linear, da es sich im Kern um eine Gradientenaufstiegsmethode handelt. Oft kann es beschleunigt werden, um superlinear zu sein, indem 1) die Parameter und basierend auf der Heuristik geändert werden oder 2) die Nesterov-Beschleunigung verwendet wird. Hinweise zum Ändern der Strafparameter finden Sie im Boyd-Umfragepapier. Informationen zur Verwendung der Nesterov-Beschleunigung mit ADMM finden Sie im folgenden Dokument:β α βαβαβ
Goldstein, Tom, Brendan O'Donoghue und Simon Setzer. "Schnelle Methoden zur Optimierung der Richtungsänderung." CAM-Bericht (2012): 12-35. ftp://ftp.math.ucla.edu/pub/camreport/cam12-35.pdf
Doch selbst wenn die Gesamtkonvergenzrate ist nur linear, für Probleme des Verfahren beobachtet wurde , sehr schnell die sparsity Muster zu finden, und dann konvergieren langsamer auf den exakten Werten. Da es am schwierigsten ist, das Sparsity-Muster zu finden, ist dies sehr zufällig! Die genauen Gründe dafür scheinen ein Bereich der aktuellen Forschung zu sein. Jeder sieht, dass das Sparsity-Muster schnell konvergiert, aber niemand scheint genau zu wissen, warum es passiert. Vor einiger Zeit habe ich Boyd und Parikh per E-Mail danach gefragt, und Parikh dachte, dies könnte durch die Interpretation der Methode in einem Kontrollsystemkontext erklärt werden. Eine weitere heuristische Erklärung des Phänomens findet sich im Anhang des folgenden Papiers:l1
Goldstein, Tom und Stanley Osher. "Die Split-Bregman-Methode für L1-regulierte Probleme." SIAM Journal on Imaging Sciences 2.2 (2009): 323 & ndash; 343. ftp://ftp.math.ucla.edu/pub/camreport/cam08-29.pdf
Natürlich liegt die Schwierigkeit jetzt darin, die und Update-Teilprobleme für Ihre spezifische Situation zu lösen . Da der Lagrange in quadratisch ist , erfordert das Teilproblem der Aktualisierung lediglich die Lösung eines linearen Systems. Das Teilproblem scheint schwieriger zu sein, da es nicht differenzierbar ist, aber es stellt sich heraus, dass es eine genaue Formel für die Lösung gibt, die Element für Element angewendet werden kann! Wir diskutieren diese Teilprobleme nun detaillierter und spezifizieren sie für das Problem im ursprünglichen Beitrag.z z z xxzzzx
Setup für das Teilproblem update (lineares System)z
Für das Update haben wir
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.
Spezialisiert auf Ihr Problem wird dies:
argminZJ,ZBα2||Jk+1−ZJ+1αΓJ||2Fro+α2||Bk+1−ZB+1αΓB||2Fro+β2||MZJ+ZBY−X+1αΛ||2Fro,
Dabei bezeichnet die Frobenius- Norm (elementweise ). Dies ist ein quadratisches Minimierungsproblem, bei dem die Optimalitätsbedingungen erster Ordnung gefunden werden können, indem partielle Ableitungen des Objektivs in Bezug auf und und auf Null gesetzt werden. Dies ist
l 2 Z J Z B 0||⋅||Frol2ZJZB
00=−α2(Jk+1−ZJ+1αΓJ)+β2MT(MZJ+ZBY−X+1βΛ),=−α2(Bk+1−ZB+1αΓB)+β2(MZJ+ZBY−X+1βΛ)YT.
Wie in den Kommentaren des Originalplakats Justin Solomon erwähnt, ist dieses System für symmetrisch, sodass der konjugierte Gradient eine ideale Methode ist. In einem späteren Abschnitt wird dieses System und seine Lösung / Vorkonditionierung ausführlicher beschrieben.ZJ,ZB
Lösen des Update-Teilproblems (analytische Schwellenwertlösung)x
Nun wenden wir uns dem Teilproblem zu:
x
argminxL(x,zk,λk,γk)=argminx∑i|xi|+α2||x−zk+1αγk||2
Das erste, was zu sehen ist, ist, dass die Summe Element für Element aufgeteilt werden kann,
∑i|xi|+α2||x−zk+1αγk||2=∑i|xi|+α2∑i(xi−zki+1αγki)2,
So können wir das Optimierungsproblem Element für Element parallel lösen und
xk+1i=argminxi|xi|+α2(xi−zki+1αγki)2.
Die allgemeine Form dieser Gleichung lautet
mins|s|+α2(s−t)2.
Die Absolutwertfunktion versucht, den optimalen Punkt in Richtung zu ziehen , während der quadratische Term versucht, den optimalen Punkt in Richtung zu ziehen . Die wahre Lösung liegt daher irgendwo auf dem Segment zwischen den beiden, wobei zunehmendes dazu neigt, den optimalen Punkt in Richtung zu ziehen , und abnehmendes den optimalen Punkt in Richtung zieht .s=0s=t[0,t)αtα0
Dies ist eine konvexe Funktion, die jedoch bei Null nicht differenzierbar ist. Die Bedingung für einen Minimierungspunkt ist, dass das Subderivat des Objektivs an diesem Punkt Null enthält. Der quadratische Term hat die Ableitung , und die Absolutwertfunktion hat die Ableitung für , die festgelegte Subderivation als Intervall wenn , und die Ableitung für . Somit erhalten wir das Subderivativ für die Gesamtzielfunktion
α(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.
Daraus sehen wir, dass das Subderivat des Ziels bei genau dann enthält, wenn , in diesem Fall ist der Minimierer. Wenn andererseits nicht der Minimierer ist, können wir die einwertige Ableitung gleich Null setzen und nach dem Minimierer auflösen. dies tun, erhalten Sie
s=00|t|≤1αs=0s=0
argmins|s|+α2(s−t)2=⎧⎩⎨⎪⎪t−1α,0,t+1α,t>1α,|t|≤1α,t<−1α
Spezialisieren Sie dieses Ergebnis erneut auf das eigentliche Problem, das wir in der ursprünglichen Frage zu lösen versuchen, wobei ergibt,
Das Update für ist einfach
t=Zkij−1αΓkij
Jk+1ij=⎧⎩⎨⎪⎪⎪⎪Zkij−1αΓkij−1α,0,Zkij−1αΓkij+1α,Zkij−1αΓkij>1α,|Zkij−1αΓkij|≤1α,Zkij−1αΓkij<−1α.
BBk+1=ZB−1αΓB,
wie vom Originalplakat Justin Solomon in den Kommentaren vermerkt. Insgesamt erfordert das Update für nur das Durchlaufen der Einträge Ihrer Matrizen und das Auswerten der obigen Formeln für jeden Eintrag.J,B
Schur-Komplement für das SystemZJ,ZB
Der teuerste Schritt der Iteration ist das Lösen des Systems:
00=−α2(Jk+1−ZJ+1αΓJ)+β2MT(MZJ+ZBY−X+1βΛ),=−α2(Bk+1−ZB+1αΓB)+β2(MZJ+ZBY−X+1βΛ)YT.
Zu diesem Zweck lohnt es sich, einen guten Löser / Vorkonditionierer für dieses System zu konstruieren. In diesem Abschnitt vektorisieren wir , bilden ein Schur-Komplement , führen einige Krnoecker-Produktmanipulationen durch und enthüllen dann. Das resultierende Schur-Komplementsystem ist eine leicht modifizierte Sylvester-Gleichung .
Im Folgenden sind folgende Identitäten zu Vektorisierung und Kronecker-Produkten absolut entscheidend:
- vec(ABC)=(CT⊗A)vec(B),
- (A⊗B)(C⊗D)=AC⊗BD ,
- (A⊗B)−1=A−1⊗B−1 , und
- (A⊗B)T=AT⊗BT .
Diese Identitäten gelten immer dann, wenn die Matrixgrößen und die Invertierbarkeit so sind, dass jede Seite der Gleichung ein gültiger Ausdruck ist.
Die vektorisierte Form des Systems ist
(αI+β[I⊗MTMY⊗M(Y⊗M)TYYT⊗I])[vec(ZJ)vec(ZB)]=[vec(αJ+βMTX+ΓJ−MTΛ)vec(αB+βXYT+ΓB−ΛYT)],
oder
[I⊗(αI+βMTM)βY⊗Mβ(Y⊗M)T(αI+βYYT)⊗I][vec(ZJ)vec(ZB)]=[vec(F)vec(G)],
wobei und die komprimierte Notation für die rechte Seite sind. Jetzt führen wir eine Block-Gauß-Eliminierung / Schur-Ergänzung durch, um den unteren linken Block der Matrix zu eliminieren, wobei die Kronecker-Produkte kondensiert werden. Dies ist
FG
[I⊗(αI+βMTM)0β(Y⊗M)T(αI+βYYT)⊗I−β2YYT⊗M(αI+βMTM)−1MT]…⋅[vec(ZJ)vec(ZB)]=[vec(F)vec(G)−βY⊗M(αI+βMTM)−1vec(F)].
Die beiden Gleichungen, die wir nacheinander lösen müssen, sind:
ZB(αI+βYYT)−(βM(αI+βMTM)−1MT)ZB(βYYT)…=G−βM(αI+βMTM)−1FYT
(αI+βMTM)ZJ=F−βMTZBY.
Lösung des Schur-Komplementsystems, wenn quadratisch sind, hoher RangY,M
In diesem Abschnitt lösen wir das Schur-Komplementsystem für (Gleichung 1. oben), indem wir vorberechnete vollständige SVDs der Matrizen und eine modifizierte Version des Bartels-Stewart-Algorithmus für den Sylvester anwenden Gleichung. Der Algorithmus wurde gegenüber der Standardversion leicht modifiziert, um das zusätzliche im zweiten Term zu berücksichtigen , was ihn nicht ganz zur Sylvester-Gleichung macht. Sobald über die erste Gleichung gefunden wurde, kann leicht aus der zweiten Gleichung gefunden werden. Die zweite Gleichung ist trivial mit einer beliebigen Methode zu lösen.ZBYYT,MMT,MTMβYYTZBZJ
Diese Methode erfordert Vorabkosten für die Vorberechnung von zwei vollständigen SVDs vor dem Start des ADMM-Prozesses, kann jedoch schnell in den tatsächlichen ADMM-Iterationen angewendet werden. Da sich die Methode mit vollständigen SVDs der Beschränkungsmatrizen befasst, ist es angemessen, wenn sie nahe am Quadrat liegen und einen hohen Rang haben. Eine kompliziertere Methode unter Verwendung von SVDs mit niedrigem Rang ist ebenfalls möglich, wird jedoch in einem späteren Abschnitt vorgestellt.
Das Verfahren entwickelt sich wie folgt. Lassen
bezeichnet vorberechneten volle Singulärwertzerlegungen und kondensiert die rechte Seite zu sein . Dann wird die erste Gleichung:
Multiplizieren durch die orthogonalen Faktoren, um links und rechts und ein neues temporäres Unbekanntes , wird dies weiter
QDQT=YYT,WΣWT=MMT,VTVT=MTM
HZBQ(αI+D)QT−WβΣ(αI+Σ)−1ΣWTZBQDQT=H.
A=WTZBQA(αI+D)−βΣ(αI+Σ)−1ΣAD=WHQT.
Jetzt können wir finden, indem wir das diagonale System lösen :
A
((αI+D)⊗I+D⊗βΣ(αI+Σ)−1Σ)vec(A)=vec(WHQT).
Nachdem wir gefunden haben , berechnen wir , und wenn wir , lösen wir die zweite Gleichung für , was trivial ist, da wir bereits die Eigenwertzerlegung für .AZB=WAQTZBZJMTM
Die Vorabkosten berechnen zwei symmetrische positive definitive Eigenwertzerlegungen von und , und dann wird die Kosten pro Iteration für eine vollständige Lösung von einer Handvoll Matrix-Matrix-Multiplikationen dominiert, die in der gleichen Größenordnung von liegen Größe wie 1 CG-Subiteration. Wenn die Vorab-Eigenwertzerlegungen zu kostspielig sind, können sie ungenau berechnet werden, indem beispielsweise die Lanczos-Iteration vorzeitig beendet und die größten Eigenvektoren beibehalten werden . Dann kann die Methode eher als guter Vorkonditionierer für CG als als direkter Löser verwendet werden.MTMYYT
Lösungsverfahren, wenn sehr rechteckig sind oder eine Annäherung mit niedrigem Rang habenM,Y
Jetzt wenden wir uns der Lösung oder Vorkonditionierung von wenn entweder a) die Eingabematrizen sehr rechteckig sind - was bedeutet, dass sie viel mehr Zeilen als Spalten haben oder umgekehrt - oder b) sie eine Annäherung mit niedrigem Rang haben. Die folgende Ableitung beinhaltet die umfassende Verwendung der Woodbury-Formel, des Schur-Komplements und anderer ähnlicher Manipulationen.ZJ,ZBM,Y
Wir beginnen mit unserem Schur-Komplementsystem
(αI+βYYT)⊗I−β2YYT⊗M(αI+βMTM)−1MT.
Einige Manipulationen transformieren dieses System in eine symmetrischere Form
(αI+βI⊗MMT+βYYT⊗I)vec(ZB)=(I⊗(I+βαMMT))vec(H).
Jetzt bringen wir die Annäherungen mit niedrigem Rang ein. Sei
entweder die reduzierte SVD oder die Annäherung von und niedrigem Rang ( ist ein Platzhalter und ist es nicht gebraucht). Wenn wir diese in unser System einsetzen, erhalten wir die folgende Matrixinverse, die wir anwenden möchten
QD1/2QT2=YWΣ1/2VT=M
YMQ2(αI+βI⊗WΣWT+βYYT⊗I)−1.
Da es sich bei der zu invertierenden Matrix um eine Aktualisierung der Identität mit niedrigem Rang handelt, besteht die logische Strategie darin, die Woodbury-Formel
(A+UCUT)−1=A−1−A−1U(C−1+UTA−1U)−1UTA−1.
Es ist jedoch einige Sorgfalt erforderlich, da die niedrigrangigen Teile und nicht orthogonal sind. Um die Woodbury-Formel anzuwenden, sammeln wir beide Updates mit niedrigem Rang in einem einzigen großen Update. So salben und die Woodbury-Formel anwenden, ergibt,
I⊗WY⊗I
(1αI+β[I⊗WQ⊗I][I⊗ΣD⊗Y][I⊗ΣTQT⊗I])−1=αI−βα2[I⊗WQ⊗I][I⊗(Σ−1+βαI)βαQT⊗WβαQ⊗WT(D−1+βαI)⊗Y]−1[I⊗ΣTQT⊗I].
Die Kernumkehrung kann durch die blockweise 2x2-Umkehrformel berechnet werden
[ABTBC]−1=[(A−BC−1BT)−1−C−1BT(A−BC−1BT)−1−A−1B(C−BTA−1B)−1(C−BTA−1B)−1].
Dieser Beitrag ist bereits lang genug, sodass ich die langen Details der Berechnung ersparen werde. Das Endergebnis ist jedoch, dass das Einfügen der erforderlichen Submatrizen in die blockweise Inverse und das Multiplizieren aller Elemente die folgende explizite Form für die gesamte Inverse ergibt
(αI+βI⊗MMT+βYYT⊗I)−1=1αI−βα2(t11+s11+t12+s12+t21+s21+t22+s22),
wo
t11s11t12s12t21s21t22s22D11D22lh=αβI⊗Wl−1WT=(Q⊗Wl−1)D11(QT⊗l−1WT)=−αβQh−1QT⊗Wl−1WT=−(Qh−1⊗Wl−1)D22(h−1QT⊗WT)=t12=−(Qh−1⊗W)D22(h−1QT⊗l−1WT)=αβQh−1QT⊗I=(Qh−1⊗W)D22(h−1QT⊗WT)=αβ(h⊗I−I⊗l−1)−1=αβ(I⊗l−h−1⊗I)−1=αβΣ−1+I=αβD−1+I.
In dieser Form können wir die Umkehrung anwenden und durch 8 Multiplikationssandwiches für die linke und rechte Matrix finden. Die allgemeine Formel zum Anwenden der Summe der Kronecker-Produkte lautet
ZB
((A1⊗B1)+(A2⊗B2)+…)vec(C)=vec(BT1CA1+BT2CA2+…).
Beachten Sie, dass alle expliziten Inversen, mit denen wir endeten, diagonal sind, sodass nichts "gelöst" werden muss.
Code des linearen Lösers
Ich habe die beiden oben genannten Löser in Matlab implementiert . Die scheinen gut zu funktionieren. Der Solver-Code ist hier.zJ,ZB
https://github.com/NickAlger/MeshADMM/blob/master/zkronsolve.m
Hier finden Sie ein Testskript zur Überprüfung der Funktionsweise der Löser. Es zeigt auch anhand eines Beispiels, wie der Solver-Code aufgerufen wird.
https://github.com/NickAlger/MeshADMM/blob/master/test_zkronsolve.m
Abschließende Bemerkungen
ADMM-Methoden eignen sich gut für solche Probleme, aber Sie müssten Ihre eigene Implementierung rollen. Die Gesamtstruktur der Methode ist ziemlich einfach, so dass die Implementierung in so etwas wie MATLAB nicht allzu schwierig ist.
Das in diesem Beitrag fehlende Teil, das angegeben werden müsste, um die Methode für Ihr Problem vollständig zu definieren, ist eine Auswahl von Strafparametern . Glücklicherweise ist die Methode im Allgemeinen ziemlich robust, solange die Parameterwerte nicht verrückt sind. Das Boyd and Parikh-Papier enthält einen Abschnitt über die Strafparameter sowie die darin enthaltenen Referenzen, aber ich würde nur mit den Parametern experimentieren, bis Sie angemessene Konvergenzraten erhalten.α,β
Die vorgestellten sind sehr effektiv, wenn die Beschränkungsmatrizen entweder a) dicht, quadratisch und hochrangig sind oder b) eine gute Näherung für niedrigen Rang haben. Ein weiterer nützlicher Solver , die ein Thema der zukünftigen Arbeit sein könnte , wäre ein Löser für folgenden Fall optimiert werden - die Beschränkungsmatrix spärlich und squareish und hohen Rang ist, aber es gibt einen guten Vorkonditionierer für . Dies wäre der Fall, wenn beispielsweise ein diskretisierter Laplace ist.ZJ,ZBMαI+MMTM