Proximal Maps

For a function $\varphi\colon\mathcal M \to\mathbb R$ the proximal map is defined as

\[\displaystyle\operatorname{prox}_{\lambda\varphi}(x) = \operatorname*{argmin}_{y ∈ \mathcal M} d_{\mathcal M}^2(x,y) + \varphi(y), \quad \lambda > 0,\]

where $d_{\mathcal M}\colon \mathcal M \times \mathcal M \to \mathbb R$ denotes the geodesic distance on (\mathcal M). While it might still be difficult to compute the minimizer, there are several proximal maps known (locally) in closed form. Furthermore if $x^{\star} ∈ \mathcal M$ is a minimizer of $\varphi$, then

\[\displaystyle\operatorname{prox}_{\lambda\varphi}(x^\star) = x^\star,\]

i.e. a minimizer is a fixed point of the proximal map.

This page lists all proximal maps available within Manopt. To add you own, just extend the functions/proximal_maps.jl file.

Manopt.project_collaborative_TVFunction
project_collaborative_TV(M,λ,x [,p=2,q=1])

compute the projection onto collaborative Norm unit (or α-) ball, i.e. of the function

\[F^q(x) = \sum_{i\in\mathcal G} \Bigl( \sum_{j\in\mathcal I_i} \sum_{k=1^d} \lVert X_{i,j}\rVert_x^p\Bigr)^\frac{q/p},\]

where $\mathcal G$ is the set of indices for $x\in\mathcal M$ and $\mathcal I_i$ is the set of its forward neighbors. This is adopted from the paper by Duran, Möller, Sbert, Cremers: Collaborative Total Variation: A General Framework for Vectorial TV Models (arxiv: 1508.01308), where the most inner norm is not on a manifold but on a vector space, see their Example 3 for details.

source
Manopt.prox_TVMethod
ξ = prox_TV(M,λ,x [,p=1])

compute the proximal maps $\operatorname{prox}_{\lambda\varphi}$ of all forward differences orrucirng in the power manifold array, i.e. $\varphi(xi,xj) = d_{\mathcal M}^p(xi,xj)$ with xi and xj are array elemets of x and j = i+e_k, where e_k is the $k$th unitvector. The parameter λ is the prox parameter.

Input

  • M – a Manifold
  • λ – a real value, parameter of the proximal map
  • x – a point.

Optional

(default is given in brackets)

  • p – (1) exponent of the distance of the TV term

Ouput

  • y – resulting point containinf with all mentioned proximal points evaluated (in a cylic order).
source
Manopt.prox_TVMethod
(y1,y2) = prox_TV(M,λ,(x1,x2) [,p=1])

Compute the proximal map $\operatorname{prox}_{\lambda\varphi}$ of $\varphi(x,y) = d_{\mathcal M}^p(x,y)$ with parameter λ.

Input

  • M – a Manifold
  • λ – a real value, parameter of the proximal map
  • (x1,x2) – a tuple of two points,

Optional

(default is given in brackets)

  • p – (1) exponent of the distance of the TV term

Ouput

  • (y1,y2) – resulting tuple of points of the $\operatorname{prox}_{\lambda\varphi}($ (x1,x2) $)$
source
Manopt.prox_TV2Method
(y1,y2,y3) = prox_TV2(M,λ,(x1,x2,x3),[p=1], kwargs...)

Compute the proximal map $\operatorname{prox}_{\lambda\varphi}$ of $\varphi(x_1,x_2,x_3) = d_{\mathcal M}^p(c(x_1,x_3),x_2)$ with parameter λ>0, where $c(x,z)$ denotes the mid point of a shortest geodesic from x1 to x3 that is closest to x2.

Input

  • M – a manifold

  • λ – a real value, parameter of the proximal map

  • (x1,x2,x3) – a tuple of three points

  • p – (1) exponent of the distance of the TV term

Optional

kwargs... – parameters for the internal subgradient_method (if M is neither Euclidean nor Circle, since for these a closed form is given)

Output

  • (y1,y2,y3) – resulting tuple of points of the proximal map
source
Manopt.prox_TV2Method
ξ = prox_TV2(M,λ,x,[p])

compute the proximal maps $\operatorname{prox}_{\lambda\varphi}$ of all centered second order differences orrucirng in the power manifold array, i.e. $\varphi(x_k,x_i,x_j) = d_2(x_k,x_i.x_j)$, where $k,j$ are backward and forward neighbors (along any dimension in the array of x). The parameter λ is the prox parameter.

Input

  • M – a Manifold
  • λ – a real value, parameter of the proximal map
  • x – a points.

Optional

(default is given in brackets)

  • p – (1) exponent of the distance of the TV term

Ouput

  • y – resulting point with all mentioned proximal points evaluated (in a cylic order).
source
Manopt.prox_distanceFunction
y = prox_distance(M,λ,f,x [,p=2])

compute the proximal map $\operatorname{prox}_{\lambda\varphi}$ with parameter λ of $\varphi(x) = \frac{1}{p}d_{\mathcal M}^p(f,x)$.

Input

  • M – a Manifold $\mathcal M$
  • λ – the prox parameter
  • f – a point $f ∈ \mathcal M$ (the data)
  • x – the argument of the proximal map

Optional argument

  • p – (2) exponent of the distance.

Ouput

  • y – the result of the proximal map of $\varphi$
source
Manopt.prox_parallel_TVMethod
ξ = prox_parallel_TV(M,λ,x [,p=1])

compute the proximal maps $\operatorname{prox}_{\lambda\varphi}$ of all forward differences orrucirng in the power manifold array, i.e. $\varphi(xi,xj) = d_{\mathcal M}^p(xi,xj)$ with xi and xj are array elemets of x and j = i+e_k, where e_k is the $k$th unitvector. The parameter λ is the prox parameter.

Input

  • M – a PowerManifold manifold
  • λ – a real value, parameter of the proximal map
  • x – a point

Optional

(default is given in brackets)

  • p – (1) exponent of the distance of the TV term

Ouput

  • y – resulting Array of points with all mentioned proximal points evaluated (in a parallel within the arrays elements).

See also prox_TV

source