problems.admm¶
Module: problems.admm
¶
Inheritance diagram for regreg.problems.admm
:
Simple ADMM implementation
admm_problem
¶
-
class
regreg.problems.admm.
admm_problem
(loss, atom, transform, augmented_param, quadratic=None, fit_args={})¶ Bases:
object
Objective function is the loss plus the atom composed with the transform.
\[\ell(x) + {\cal P}(Dx + lpha)\]Our transform is a map \(eta \mapsto Deta + lpha, and we introduce new variables \) so our affine constraint is Dx-z=-lpha:math:.
In ADMM slides p.14 of https://stanford.edu/class/ee364b/lectures/admm_slides.pdf we have `A,B,c=D,-I,-lpha$.
-
__init__
(loss, atom, transform, augmented_param, quadratic=None, fit_args={})¶ Initialize self. See help(type(self)) for accurate signature.
-
solve
(niter=20)¶
-
update_atom_coefs
()¶ Minimize over z: atom(z) + rho/2 |z-Dx-lpha|^2_2 - z^Ty
-
update_dual_coefs
()¶ Dual update
-
update_loss_coefs
()¶ Minimize over x: self.loss(x) + rho/2 x^TD^TDx + x^T D^T(y -rho * (z - lpha))
-