![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
This class implements a gradient descent optimizer with adaptive gain. More...
#include <itkAdaptiveStochasticGradientDescentOptimizer.h>
This class implements a gradient descent optimizer with adaptive gain.
If is a costfunction that has to be minimised, the following iterative algorithm is used to find the optimal parameters
:
The gain at each iteration
is defined by:
.
And the time is updated according to:
where equals
at iteration
. For
the InitialTime is used, which is defined in the the superclass (StandardGradientDescentOptimizer). Whereas in the superclass this parameter is superfluous, in this class it makes sense.
This method is described in the following references:
[1] P. Cruz, "Almost sure convergence and asymptotical normality of a generalization of Kesten's stochastic approximation algorithm for multidimensional case." Technical Report, 2005. http://hdl.handle.net/2052/74
[2] S. Klein, J.P.W. Pluim, and M. Staring, M.A. Viergever, "Adaptive stochastic gradient descent optimisation for image registration," International Journal of Computer Vision, vol. 81, no. 3, pp. 227-239, 2009. http://dx.doi.org/10.1007/s11263-008-0168-y
It is very suitable to be used in combination with a stochastic estimate of the gradient . For example, in image registration problems it is often advantageous to compute the metric derivative (
) on a new set of randomly selected image samples in each iteration. You may set the parameter
NewSamplesEveryIteration
to "true"
to achieve this effect. For more information on this strategy, you may have a look at:
Definition at line 68 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
typedef SmartPointer<const Self> itk::AdaptiveStochasticGradientDescentOptimizer::ConstPointer |
Reimplemented from itk::StandardGradientDescentOptimizer.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >.
Definition at line 78 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
typedef Superclass::CostFunctionType itk::AdaptiveStochasticGradientDescentOptimizer::CostFunctionType |
Reimplemented from itk::StandardGradientDescentOptimizer.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >.
Definition at line 91 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
Reimplemented from itk::StandardGradientDescentOptimizer.
Definition at line 90 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
Typedefs inherited from the superclass.
Reimplemented from itk::StandardGradientDescentOptimizer.
Definition at line 85 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
Reimplemented from itk::StandardGradientDescentOptimizer.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >.
Definition at line 89 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
typedef SmartPointer<Self> itk::AdaptiveStochasticGradientDescentOptimizer::Pointer |
Reimplemented from itk::StandardGradientDescentOptimizer.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >.
Definition at line 77 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
typedef Superclass::ScaledCostFunctionPointer itk::AdaptiveStochasticGradientDescentOptimizer::ScaledCostFunctionPointer |
Reimplemented from itk::StandardGradientDescentOptimizer.
Definition at line 94 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
typedef Superclass::ScaledCostFunctionType itk::AdaptiveStochasticGradientDescentOptimizer::ScaledCostFunctionType |
Reimplemented from itk::StandardGradientDescentOptimizer.
Definition at line 93 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
Reimplemented from itk::StandardGradientDescentOptimizer.
Definition at line 92 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
typedef AdaptiveStochasticGradientDescentOptimizer itk::AdaptiveStochasticGradientDescentOptimizer::Self |
Standard ITK.
Reimplemented from itk::StandardGradientDescentOptimizer.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >.
Definition at line 74 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
typedef Superclass::StopConditionType itk::AdaptiveStochasticGradientDescentOptimizer::StopConditionType |
Reimplemented from itk::StandardGradientDescentOptimizer.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >.
Definition at line 95 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
typedef StandardGradientDescentOptimizer itk::AdaptiveStochasticGradientDescentOptimizer::Superclass |
Reimplemented from itk::StandardGradientDescentOptimizer.
Definition at line 75 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
itk::AdaptiveStochasticGradientDescentOptimizer::AdaptiveStochasticGradientDescentOptimizer | ( | ) | [protected] |
virtual itk::AdaptiveStochasticGradientDescentOptimizer::~AdaptiveStochasticGradientDescentOptimizer | ( | ) | [inline, protected, virtual] |
Definition at line 119 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
itk::AdaptiveStochasticGradientDescentOptimizer::AdaptiveStochasticGradientDescentOptimizer | ( | const Self & | ) | [private] |
virtual const char* itk::AdaptiveStochasticGradientDescentOptimizer::GetClassName | ( | ) | const [virtual] |
Run-time type information (and related methods).
Reimplemented from itk::StandardGradientDescentOptimizer.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >.
virtual double itk::AdaptiveStochasticGradientDescentOptimizer::GetSigmoidMax | ( | ) | const [virtual] |
virtual double itk::AdaptiveStochasticGradientDescentOptimizer::GetSigmoidMin | ( | ) | const [virtual] |
virtual double itk::AdaptiveStochasticGradientDescentOptimizer::GetSigmoidScale | ( | ) | const [virtual] |
virtual bool itk::AdaptiveStochasticGradientDescentOptimizer::GetUseAdaptiveStepSizes | ( | ) | const [virtual] |
static Pointer itk::AdaptiveStochasticGradientDescentOptimizer::New | ( | ) | [static] |
Method for creation through the object factory.
Reimplemented from itk::StandardGradientDescentOptimizer.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >.
void itk::AdaptiveStochasticGradientDescentOptimizer::operator= | ( | const Self & | ) | [private] |
Reimplemented from itk::StandardGradientDescentOptimizer.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >.
virtual void itk::AdaptiveStochasticGradientDescentOptimizer::SetSigmoidMax | ( | double | _arg | ) | [virtual] |
Set/Get the maximum of the sigmoid. Should be >0. Default: 1.0
virtual void itk::AdaptiveStochasticGradientDescentOptimizer::SetSigmoidMin | ( | double | _arg | ) | [virtual] |
Set/Get the maximum of the sigmoid. Should be <0. Default: -0.8
virtual void itk::AdaptiveStochasticGradientDescentOptimizer::SetSigmoidScale | ( | double | _arg | ) | [virtual] |
Set/Get the scaling of the sigmoid width. Large values cause a more wide sigmoid. Default: 1e-8. Should be >0.
virtual void itk::AdaptiveStochasticGradientDescentOptimizer::SetUseAdaptiveStepSizes | ( | bool | _arg | ) | [virtual] |
Set/Get whether the adaptive step size mechanism is desired. Default: true
virtual void itk::AdaptiveStochasticGradientDescentOptimizer::UpdateCurrentTime | ( | void | ) | [protected, virtual] |
Function to update the current time If UseAdaptiveStepSizes is false this function just increments the CurrentTime by . Else, the CurrentTime is updated according to:
time = max[ 0, time + sigmoid( -gradient*previousgradient) ]
In that case, also the m_PreviousGradient is updated.
Reimplemented from itk::StandardGradientDescentOptimizer.
The PreviousGradient, necessary for the CruzAcceleration
Definition at line 131 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
Definition at line 140 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
Definition at line 141 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
Definition at line 142 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
Settings
Definition at line 139 of file itkAdaptiveStochasticGradientDescentOptimizer.h.
Generated on 24-10-2011 for elastix by ![]() |
![]() |