forward_backward_pd¶
- odl.solvers.nonsmooth.forward_backward.forward_backward_pd(x, f, g, L, h, tau, sigma, niter, callback=None, **kwargs)[source]¶
The forward-backward primal-dual splitting algorithm.
The algorithm minimizes the sum of several convex functionals composed with linear operators:
min_x f(x) + sum_i g_i(L_i x) + h(x)
where
f
,g_i
are convex functionals,L_i
are linear operators, andh
is a convex and differentiable functional.The method can also be used to solve the more general problem:
min_x f(x) + sum_i (g_i @ l_i)(L_i x) + h(x)
where
l_i
are strongly convex functionals and @ is the infimal convolution:(g @ l)(x) = inf_y { g(y) + l(x-y) }
Note that the strong convexity of
l_i
makes the convex conjugatel_i^*
differentiable; see the Notes section for more information on this.- Parameters:
- x
LinearSpaceElement
Initial point, updated in-place.
- f
Functional
The functional
f
. Needs to havef.proximal
.- gsequence of
Functional
's The functionals
g_i
. Needs to haveg_i.convex_conj.proximal
.- Lsequence of
Operator
's' Sequence of linear operators
L_i
, with as many elements asg
.- h
Functional
The functional
h
. Needs to haveh.gradient
.- taufloat
Step size-like parameter for
f
.- sigmasequence of floats
Sequence of step size-like parameters for the sequence
g
.- niterint
Number of iterations.
- callbackcallable, optional
Function called with the current iterate after each iteration.
- x
- Other Parameters:
- lsequence of
Functional
's, optional The functionals
l_i
. Needs to haveg_i.convex_conj.gradient
. If omitted, the simpler problem withoutl_i
will be considered.
- lsequence of
See also
odl.solvers.nonsmooth.primal_dual_hybrid_gradient.pdhg
Solver for similar problems without differentiability in any of the terms.
odl.solvers.nonsmooth.douglas_rachford.douglas_rachford_pd
Solver for similar problems without differentiability in any of the terms.
Notes
The mathematical problem to solve is
where , , and are functionals and are linear operators. The infimal convolution is defined by
The exact conditions on the involved functionals are as follows: and are proper, convex and lower semicontinuous, and is convex and differentiable with -Lipschitz continuous gradient, .
The optional operators need to be -Lipschitz continuous. Note that in the paper, the condition is formulated as being proper, lower semicontinuous, and -strongly convex, which implies that have -Lipschitz continuous gradients.
If the optional operators are omitted, the simpler problem without will be considered. Mathematically, this is done by taking to be the functionals that are zero only in the zero element and otherwise. This gives that are the zero functionals, and hence the corresponding gradients are the zero operators.
To guarantee convergence, the parameters , and need to satisfy
where, if the simpler problem is considered, all can be considered to be .
For reference on the forward-backward primal-dual algorithm, see [BC2015].
For more on proximal operators and algorithms see [PB2014].
References
[BC2015] Bot, R I, and Csetnek, E R. On the convergence rate of a forward-backward type primal-dual splitting algorithm for convex optimization problems. Optimization, 64.1 (2015), pp 5--23.
[PB2014] Parikh, N, and Boyd, S. Proximal Algorithms. Foundations and Trends in Optimization, 1 (2014), pp 127-239.