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.composite
A 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).