Gradients
For a function $f:\mathcal M→ℝ$ the Riemannian gradient $\operatorname{grad}f(x)$ at $x∈\mathcal M$ is given by the unique tangent vector fulfilling
\[\langle \operatorname{grad}f(x), ξ\rangle_x = D_xf[ξ],\quad \forall ξ ∈ T_x\mathcal M,\]
where $D_xf[ξ]$ denotes the differential of $f$ at $x$ with respect to the tangent direction (vector) $ξ$ or in other words the directional derivative.
This page collects the available gradients.
Manopt.forward_logs
— MethodY = forward_logs(M,x)
forward_logs!(M, Y, x)
compute the forward logs $F$ (generalizing forward differences) occurring, in the power manifold array, the function
\[F_i(x) = \sum_{j ∈ \mathcal I_i} \log_{x_i} x_j,\quad i ∈ \mathcal G,\]
where $\mathcal G$ is the set of indices of the PowerManifold
manifold M
and $\mathcal I_i$ denotes the forward neighbors of $i$. This can also be done in place of ξ
.
Input
M
– aPowerManifold
manifoldx
– a point.
Ouput
Y
– resulting tangent vector in $T_x\mathcal M$ representing the logs, where $\mathcal N$ is thw power manifold with the number of dimensions added tosize(x)
. The computation can be done in place ofY
.
Manopt.grad_L2_acceleration_bezier
— Methodgrad_L2_acceleration_bezier(
M::AbstractManifold,
B::AbstractVector{P},
degrees::AbstractVector{<:Integer},
T::AbstractVector,
λ,
d::AbstractVector{P}
) where {P}
compute the gradient of the discretized acceleration of a composite Bézier curve on the Manifold
M
with respect to its control points B
together with a data term that relates the junction points p_i
to the data d
with a weight $λ$ compared to the acceleration. The curve is evaluated at the points given in pts
(elementwise in $[0,N]$), where $N$ is the number of segments of the Bézier curve. The summands are grad_distance
for the data term and grad_acceleration_bezier
for the acceleration with interpolation constrains. Here the get_bezier_junctions
are included in the optimization, i.e. setting $λ=0$ yields the unconstrained acceleration minimization. Note that this is ill-posed, since any Bézier curve identical to a geodesic is a minimizer.
Note that the Beziér-curve is given in reduces form as a point on a PowerManifold
, together with the degrees
of the segments and assuming a differentiable curve, the segments can internally be reconstructed.
See also
grad_acceleration_bezier
, cost_L2_acceleration_bezier
, cost_acceleration_bezier
.
Manopt.grad_TV
— FunctionX = grad_TV(M, λ, x[, p=1])
grad_TV!(M, X, λ, x[, p=1])
Compute the (sub)gradient $\partial F$ of all forward differences occurring, in the power manifold array, i.e. of the function
\[F(x) = \sum_{i}\sum_{j ∈ \mathcal I_i} d^p(x_i,x_j)\]
where $i$ runs over all indices of the PowerManifold
manifold M
and $\mathcal I_i$ denotes the forward neighbors of $i$.
Input
M
– aPowerManifold
manifoldx
– a point.
Ouput
- X – resulting tangent vector in $T_x\mathcal M$. The computation can also be done in place.
Manopt.grad_TV
— MethodX = grad_TV(M, (x,y)[, p=1])
grad_TV!(M, X, (x,y)[, p=1])
compute the (sub) gradient of $\frac{1}{p}d^p_{\mathcal M}(x,y)$ with respect to both $x$ and $y$ (in place of X
and Y
).
Manopt.grad_TV2
— Functiongrad_TV2(M::PowerManifold, q[, p=1])
computes the (sub) gradient of $\frac{1}{p}d_2^p(q_1,q_2,q_3)$ with respect to all $q_1,q_2,q_3$ occurring along any array dimension in the point q
, where M
is the corresponding PowerManifold
.
Manopt.grad_TV2
— FunctionY = grad_TV2(M, q[, p=1])
grad_TV2!(M, Y, q[, p=1])
computes the (sub) gradient of $\frac{1}{p}d_2^p(q_1, q_2, q_3)$ with respect to all three components of $q∈\mathcal M^3$, where $d_2$ denotes the second order absolute difference using the mid point model, i.e. let
\[\mathcal C = \bigl\{ c ∈ \mathcal M \ |\ g(\tfrac{1}{2};q_1,q_3) \text{ for some geodesic }g\bigr\}\]
denote the mid points between $q_1$ and $q_3$ on the manifold $\mathcal M$. Then the absolute second order difference is defined as
\[d_2(q_1,q_2,q_3) = \min_{c ∈ \mathcal C_{q_1,q_3}} d(c, q_2).\]
While the (sub)gradient with respect to $q_2$ is easy, the other two require the evaluation of an adjoint_Jacobi_field
.
Manopt.grad_acceleration_bezier
— Methodgrad_acceleration_bezier(
M::AbstractManifold,
B::AbstractVector,
degrees::AbstractVector{<:Integer}
T::AbstractVector
)
compute the gradient of the discretized acceleration of a (composite) Bézier curve $c_B(t)$ on the Manifold
M
with respect to its control points B
given as a point on the PowerManifold
assuming C1 conditions and known degrees
. The curve is evaluated at the points given in T
(elementwise in $[0,N]$, where $N$ is the number of segments of the Bézier curve). The get_bezier_junctions
are fixed for this gradient (interpolation constraint). For the unconstrained gradient, see grad_L2_acceleration_bezier
and set $λ=0$ therein. This gradient is computed using adjoint_Jacobi_field
s. For details, see [BergmannGousenbourger2018]. See de_casteljau
for more details on the curve.
See also
cost_acceleration_bezier
, grad_L2_acceleration_bezier
, cost_L2_acceleration_bezier
.
Manopt.grad_distance
— Functiongrad_distance(M,y,x[, p=2])
grad_distance!(M,X,y,x[, p=2])
compute the (sub)gradient of the distance (squared), in place of X
.
\[f(x) = \frac{1}{p} d^p_{\mathcal M}(x,y)\]
to a fixed point y
on the manifold M
and p
is an integer. The gradient reads
\[ \operatorname{grad}f(x) = -d_{\mathcal M}^{p-2}(x,y)\log_xy\]
for $p\neq 1$ or $x\neq y$. Note that for the remaining case $p=1$, $x=y$ the function is not differentiable. In this case, the function returns the corresponding zero tangent vector, since this is an element of the subdifferential.
Optional
p
– (2
) the exponent of the distance, i.e. the default is the squared distance
Manopt.grad_intrinsic_infimal_convolution_TV12
— Methodgrad_u, grad_v = grad_intrinsic_infimal_convolution_TV12(M, f, u, v, α, β)
compute (sub)gradient of the intrinsic infimal convolution model using the mid point model of second order differences, see costTV2
, i.e. for some $f ∈ \mathcal M$ on a PowerManifold
manifold $\mathcal M$ this function computes the (sub)gradient of
\[E(u,v) = \frac{1}{2}\sum_{i ∈ \mathcal G} d_{\mathcal M}(g(\frac{1}{2},v_i,w_i),f_i) + \alpha \bigl( β\mathrm{TV}(v) + (1-β)\mathrm{TV}_2(w) \bigr),\]
where both total variations refer to the intrinsic ones, grad_TV
and grad_TV2
, respectively.
- BergmannGousenbourger2018
Bergmann, R. and Gousenbourger, P.-Y.: A variational model for data fitting on manifolds by minimizing the acceleration of a Bézier curve. Frontiers in Applied Mathematics and Statistics (2018). doi 10.3389/fams.2018.00059, arXiv: 1807.10090