![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <itkStandardGradientDescentOptimizer.h>
This class implements a gradient descent optimizer with a decaying 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:
.
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:
S. Klein, M. Staring, J.P.W. Pluim, "Comparison of gradient approximation techniques for optimisation of mutual information in nonrigid registration", in: SPIE Medical Imaging: Image Processing, Editor(s): J.M. Fitzpatrick, J.M. Reinhardt, SPIE press, 2005, vol. 5747, Proceedings of SPIE, pp. 192-203.
Or:
S. Klein, M. Staring, J.P.W. Pluim, "Evaluation of Optimization Methods for Nonrigid Medical Image Registration using Mutual Information and B-Splines" IEEE Transactions on Image Processing, 2007, nr. 16(12), December.
This class also serves as a base class for other GradientDescent type algorithms, like the AcceleratedGradientDescentOptimizer.
Definition at line 61 of file itkStandardGradientDescentOptimizer.h.
typedef SmartPointer<const Self> itk::StandardGradientDescentOptimizer::ConstPointer |
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >, elastix::StandardGradientDescent< TElastix >, and itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 71 of file itkStandardGradientDescentOptimizer.h.
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >, elastix::StandardGradientDescent< TElastix >, and itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 83 of file itkStandardGradientDescentOptimizer.h.
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 82 of file itkStandardGradientDescentOptimizer.h.
Typedefs inherited from the superclass.
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 77 of file itkStandardGradientDescentOptimizer.h.
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >, elastix::StandardGradientDescent< TElastix >, and itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 81 of file itkStandardGradientDescentOptimizer.h.
typedef SmartPointer<Self> itk::StandardGradientDescentOptimizer::Pointer |
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >, elastix::StandardGradientDescent< TElastix >, and itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 70 of file itkStandardGradientDescentOptimizer.h.
typedef Superclass::ScaledCostFunctionPointer itk::StandardGradientDescentOptimizer::ScaledCostFunctionPointer |
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 86 of file itkStandardGradientDescentOptimizer.h.
typedef Superclass::ScaledCostFunctionType itk::StandardGradientDescentOptimizer::ScaledCostFunctionType |
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 85 of file itkStandardGradientDescentOptimizer.h.
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 84 of file itkStandardGradientDescentOptimizer.h.
Standard ITK.
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >, elastix::StandardGradientDescent< TElastix >, and itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 67 of file itkStandardGradientDescentOptimizer.h.
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >, elastix::StandardGradientDescent< TElastix >, and itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 87 of file itkStandardGradientDescentOptimizer.h.
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in itk::AdaptiveStochasticGradientDescentOptimizer.
Definition at line 68 of file itkStandardGradientDescentOptimizer.h.
virtual itk::StandardGradientDescentOptimizer::~StandardGradientDescentOptimizer | ( | ) | [inline, protected, virtual] |
Definition at line 131 of file itkStandardGradientDescentOptimizer.h.
itk::StandardGradientDescentOptimizer::StandardGradientDescentOptimizer | ( | const Self & | ) | [private] |
virtual void itk::StandardGradientDescentOptimizer::AdvanceOneStep | ( | void | ) | [virtual] |
Sets a new LearningRate before calling the Superclass' implementation, and updates the current time.
Reimplemented from itk::GradientDescentOptimizer2.
virtual double itk::StandardGradientDescentOptimizer::Compute_a | ( | double | k | ) | const [protected, virtual] |
Function to compute the parameter at time/iteration k.
virtual const char* itk::StandardGradientDescentOptimizer::GetClassName | ( | ) | const [virtual] |
Run-time type information (and related methods).
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >, elastix::StandardGradientDescent< TElastix >, and itk::AdaptiveStochasticGradientDescentOptimizer.
virtual double itk::StandardGradientDescentOptimizer::GetCurrentTime | ( | ) | const [virtual] |
Get the current time. This equals the CurrentIteration in this base class but may be different in inheriting classes, such as the AccelerateGradientDescent
virtual double itk::StandardGradientDescentOptimizer::GetInitialTime | ( | ) | const [virtual] |
virtual double itk::StandardGradientDescentOptimizer::GetParam_a | ( | ) | const [virtual] |
virtual double itk::StandardGradientDescentOptimizer::GetParam_A | ( | ) | const [virtual] |
virtual double itk::StandardGradientDescentOptimizer::GetParam_alpha | ( | ) | const [virtual] |
static Pointer itk::StandardGradientDescentOptimizer::New | ( | ) | [static] |
Method for creation through the object factory.
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >, elastix::StandardGradientDescent< TElastix >, and itk::AdaptiveStochasticGradientDescentOptimizer.
void itk::StandardGradientDescentOptimizer::operator= | ( | const Self & | ) | [private] |
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >, elastix::StandardGradientDescent< TElastix >, and itk::AdaptiveStochasticGradientDescentOptimizer.
virtual void itk::StandardGradientDescentOptimizer::ResetCurrentTimeToInitialTime | ( | void | ) | [inline, virtual] |
Set the current time to the initial time. This can be useful to 'reset' the optimisation, for example if you changed the cost function while optimisation. Be careful with this function.
Definition at line 123 of file itkStandardGradientDescentOptimizer.h.
virtual void itk::StandardGradientDescentOptimizer::SetInitialTime | ( | double | _arg | ) | [virtual] |
Set/Get the initial time. Should be >=0. This function is superfluous, since Param_A does effectively the same. However, in inheriting classes, like the AcceleratedGradientDescent the initial time may have a different function than Param_A. Default: 0.0
virtual void itk::StandardGradientDescentOptimizer::SetParam_a | ( | double | _arg | ) | [virtual] |
Set/Get a.
virtual void itk::StandardGradientDescentOptimizer::SetParam_A | ( | double | _arg | ) | [virtual] |
Set/Get A.
virtual void itk::StandardGradientDescentOptimizer::SetParam_alpha | ( | double | _arg | ) | [virtual] |
Set/Get alpha.
virtual void itk::StandardGradientDescentOptimizer::StartOptimization | ( | void | ) | [virtual] |
Set current time to 0 and call superclass' implementation.
Reimplemented from itk::GradientDescentOptimizer2.
Reimplemented in elastix::AdaptiveStochasticGradientDescent< TElastix >, and elastix::StandardGradientDescent< TElastix >.
virtual void itk::StandardGradientDescentOptimizer::UpdateCurrentTime | ( | void | ) | [protected, virtual] |
Function to update the current time This function just increments the CurrentTime by 1. Inheriting functions may implement something smarter, for example, dependent on the progress
Reimplemented in itk::AdaptiveStochasticGradientDescentOptimizer.
The current time, which serves as input for Compute_a
Definition at line 143 of file itkStandardGradientDescentOptimizer.h.
Settings
Definition at line 156 of file itkStandardGradientDescentOptimizer.h.
Parameters, as described by Spall.
Definition at line 151 of file itkStandardGradientDescentOptimizer.h.
Definition at line 152 of file itkStandardGradientDescentOptimizer.h.
Definition at line 153 of file itkStandardGradientDescentOptimizer.h.
Generated on 24-05-2012 for elastix by ![]() |
![]() |