Gradient Descent
Manopt.steepestDescent
— Function.steepestDescent(M, F, ∇F, x)
perform a steepestDescent $x_{k+1} = \mathrm{retr}_{x_k} s_k\nabla f(x_k)$ with different choices of $s_k$ available (see stepsize
option below).
Input
M
– a manifold $\mathcal M$F
– a cost function $F\colon\mathcal M\to\mathbb R$ to minimize∇F
– the gradient $\nabla F\colon\mathcal M\to T\mathcal M$ of Fx
– an initial value $x\in\mathcal M$
Optional
stepsize
– (ConstantStepsize
(1.)
) specify aStepsize
functor.retraction
– (exp
) aretraction(M,x,ξ)
to use.stoppingCriterion
– ([
stopWhenAny](@ref)
([
stopAfterIteration](@ref)
(200),[
stopWhenGradientNormLess](@ref)
(10.0^-8))) a functor inheriting from [
StoppingCriterion`](@ref) indicating when to stop.returnOptions
– (false
) – if actiavated, the extended result, i.e. the completeOptions
re returned. This can be used to access recorded values. If set to false (default) just the optimal valuexOpt
if returned
... and the ones that are passed to decorateOptions
for decorators.
Output
xOpt
– the resulting (approximately critical) point of gradientDescent
OR
options
- the options returned by the solver (seereturnOptions
)
Options
Manopt.GradientDescentOptions
— Type.GradientDescentOptions{P,T} <: Options where {P <: MPoint, T <: TVector}
Describes a Gradient based descent algorithm, with
Fields
a default value is given in brackets if a parameter can be left out in initialization.
x0
– anMPoint
as starting pointstoppingCriterion
– (stopAfterIteration
(100)
) aStoppingCriterion
stepsize
– (ConstantStepsize
(1.)
)aStepsize
retraction
– (exp
) the rectraction to use
Constructor
GradientDescentOptions(x, stop, s [, retr=exp])
construct a Gradient Descent Option with the fields and defaults as above
See also
Debug Actions
Manopt.DebugGradient
— Type.DebugGradient <: DebugAction
debug for the gradient evaluated at the current iterate
Constructors
DebugGradient([long=false,p=print])
display the short (false
) or long (true
) default text for the gradient.
DebugGradient(prefix[, p=print])
display the a prefix
in front of the gradient.
Manopt.DebugGradientNorm
— Type.DebugGradientNorm <: DebugAction
debug for gradient evaluated at the current iterate.
Constructors
DebugGradientNorm([long=false,p=print])
display the short (false
) or long (true
) default text for the gradient norm.
DebugGradientNorm(prefix[, p=print])
display the a prefix
in front of the gradientnorm.
Manopt.DebugStepsize
— Type.DebugStepsize <: DebugAction
debug for the current step size.
Constructors
DebugStepsize([long=false,p=print])
display the short (false
) or long (true
) default text for the step size.
DebugStepsize(prefix[, p=print])
display the a prefix
in front of the step size.
Record Actions
Manopt.RecordGradient
— Type.RecordGradient <: RecordAction
record the gradient evaluated at the current iterate
Constructors
RecordGradient(ξ)
initialize the RecordAction
to the corresponding type of the TVector
.
Manopt.RecordGradientNorm
— Type.RecordGradientNorm <: RecordAction
record the norm of the current gradient
Manopt.RecordStepsize
— Type.RecordStepsize <: RecordAction
record the step size