Wenn ich mich richtig erinnere, wird das ADMM oft als Algorithmus angegeben, um
für zwei konvexe zu lösen
, nieder-halb Funktionales und und linear, beschränkte Operatoren und .
minx,y F(x)+G(y),s.tAx+By=c
G A B.FGAB
Ich finde den folgenden Sonderfall von , und illustrativ. In diesem Fall lautet die Einschränkung , dh wir können ersetzen, um das Problem
Das Lösen kann nun schwierig sein, während das Lösen von Problemen der Form
einfach sein kann. (Sie können sich selbst Beispiele dafür ausdenken, ein beliebtes ist und ). In ADMM beginnen Sie mit der "geteilten Form"
und erstellen das "erweiterte Lagragian"
A=Ic = 0 x - y = 0B=−Ic=0x−y=0
minxF(x)+G(x).
F(x)=λ‖x‖1G(x)=1minxρF(x)+12∥x−z∥2
F(x)=λ∥x∥1minx,yF(x)+G(y),G(x)=12∥Ax−b∥2L ρ ( x , y , z ) = F ( x ) + G ( y ) + z T ( x - y ) + ρminx,y F(x)+G(y),s.tx−y=0
Lρ(x,y,z)=F(x)+G(y)+zT(x−y)+ρ2∥x−y∥2
mit dem Lagrange-
Multiplikator . Jetzt minimieren Sie
abwechselnd den erweiterten Lagragian in den verschiedenen
Richtungen und , dh iterieren
und aktualisiere den Multiplikator gemäß
Dies sollte die Namenswechselmethode
für Multiplikatoren erklären .
z xyxk+1=argminx Lρ(x,yk,zk)
yk+1=argminy Lρ(xk+1,y,z)
zk+1=zk+ρ(xk+1−yk+1).
Wenn Sie diese Minimierungsprobleme für und genauer analysieren , stellen Sie fest, dass für jedes Update nur ein Problem der "einfacheren Form" gelöst werden muss, z. B. für das Update
(Vernachlässigung von Begriffen, die nicht von abhängen ).xyx
xk+1=argminx F(x)+ρ2∥x−yk+ρzk∥2
x
ADMM für das Problem
wird ähnlich abgeleitet, aber dann sind die Zwischenprobleme für die Aktualisierungen immer noch a etwas schwierig, kann aber im Vergleich zum Original vergleichsweise einfach sein. Insbesondere im Fall von und (oder äquivalent , und die Einschränkung ) Die Aktualisierungen sind mehr oder weniger einfach zu implementieren.
minx,y F(x)+G(y),s.tAx+By=c
F(x)=λ∥x∥1G(x)=12∥Ax−b∥2F(x)=λ∥x∥1G(y)=12∥y∥2Ax−y=b