problems.dual_problem¶
Module: problems.dual_problem¶
Inheritance diagram for regreg.problems.dual_problem:
dual_problem¶
-
class
regreg.problems.dual_problem.dual_problem(f_conjugate, transform, atom)¶ Bases:
regreg.problems.composite.compositeA class for specifying a problem of the form
\[\text{minimize}_{x} f(x) + g(Dx)\]which will be solved by a dual problem
\[\text{minimize}_{u} f^*(-D^Tu) + g^*(u)\]while the primal variable is stored in the computation of the gradient of \(f^*\).
-
__init__(f_conjugate, transform, atom)¶ Initialize self. See help(type(self)) for accurate signature.
-
apply_offset(x)¶ If self.offset is not None, return x-self.offset, else return x.
-
static
fromprimal(f, *g)¶
-
get_offset()¶
-
get_quadratic()¶ Get the quadratic part of the composite.
-
latexify(var=None)¶
-
nonsmooth_objective(x, check_feasibility=False)¶
-
objective(x, check_feasibility=False)¶
-
objective_template= 'f(%(var)s)'¶
-
objective_vars= {'offset': '\\alpha', 'shape': 'p', 'var': '\\beta'}¶
-
property
offset¶
-
proximal(proxq, prox_control=None)¶ The proximal function for the dual problem
-
proximal_optimum(quadratic)¶
-
proximal_step(quadratic, prox_control=None)¶ Compute the proximal optimization
- Parameters
prox_control: [None, dict]
If not None, then a dictionary of parameters for the prox procedure
-
property
quadratic¶ Quadratic part of the object, instance of regreg.identity_quadratic.identity_quadratic.
-
set_offset(value)¶
-
set_quadratic(quadratic)¶ Set the quadratic part of the composite.
-
smooth_objective(x, mode='both', check_feasibility=False)¶ The smooth_objective DOES NOT INCLUDE the identity quadratic of all the smooth atoms.
-
smoothed(smoothing_quadratic)¶ Add quadratic smoothing term
-
solve(quadratic=None, return_optimum=False, **fit_args)¶
-
-
regreg.problems.dual_problem.stacked_dual(shape, *primary_atoms)¶ Computes a dual of
\[\sum_i g_i(D_i\beta)\]under the substitutions \(v_i=D_i\beta\).
That is, it returns the following dual function after minimizing over \((v_i,\beta_i)\):
\[-\sum_i g_i^*(u_i)\]as well as the transform \(D \mapsto \mathbb{R}^p \prod_i \mathbb{R}^{m_i}\) where \(p\) is the primal shape and \(m_i\) are the corresponding dual shapes.
- Parameters
primary_atoms : [atoms]
Objects that have dual attributes, which is a pair (ltransform, conjugate).