ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
itk::GradientDescentOptimizerv4 Class Reference

Gradient descent optimizer. More...

#include <itkGradientDescentOptimizerv4.h>

Inheritance diagram for itk::GradientDescentOptimizerv4:
Collaboration diagram for itk::GradientDescentOptimizerv4:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef Superclass::DerivativeType DerivativeType
typedef
Superclass::InternalComputationValueType 
InternalComputationValueType
typedef Superclass::MeasureType MeasureType
typedef SmartPointer< SelfPointer
typedef GradientDescentOptimizerv4 Self
typedef
GradientDescentOptimizerBasev4 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const
InternalComputationValueType
GetLearningRate ()
virtual const char * GetNameOfClass () const
virtual void ResumeOptimization ()
virtual void SetLearningRate (InternalComputationValueType _arg)
virtual void SetMaximumStepSizeInPhysicalUnits (InternalComputationValueType _arg)
virtual void SetScalesEstimator (OptimizerParameterScalesEstimator *_arg)
virtual void StartOptimization ()

Static Public Member Functions

static Pointer New ()

Protected Member Functions

virtual void AdvanceOneStep (void)
virtual void EstimateLearningRate ()
 GradientDescentOptimizerv4 ()
virtual void PrintSelf (std::ostream &os, Indent indent) const
virtual ~GradientDescentOptimizerv4 ()
virtual void ModifyGradientByScalesOverSubRange (const IndexRangeType &subrange)
virtual void ModifyGradientByLearningRateOverSubRange (const IndexRangeType &subrange)

Protected Attributes

InternalComputationValueType m_LearningRate
InternalComputationValueType m_MaximumStepSizeInPhysicalUnits
OptimizerParameterScalesEstimator::Pointer m_ScalesEstimator

Private Member Functions

 GradientDescentOptimizerv4 (const Self &)
void operator= (const Self &)

Detailed Description

Gradient descent optimizer.

GradientDescentOptimizer implements a simple gradient descent optimizer. At each iteration the current position is updated according to

\[ p_{n+1} = p_n + \mbox{learningRate} \, \frac{\partial f(p_n) }{\partial p_n} \]

The user can scale each component of the df / dp but setting a scaling vector using method SetScales().

The learning rate defaults to 1.0, and can be set via SetLearningRate.

The user may set a member m_ScalesEstimator by calling SetScalesEstimator() before optimization to estimate scales and learning rates automatically.

When m_ScalesEstimator is set, m_MaximumStepSizeInPhysicalUnits may also be set by the user to change the maximum step size at each iteration. Learning rates are automatically restricted such that each step will produce physical impacts on voxels less than m_MaximumStepSizeInPhysicalUnits. m_MaximumStepSizeInPhysicalUnits defaults to the voxel spacing returned by m_ScalesEstimator.

Note:
Unlike the previous version of GradientDescentOptimizer, this version does not have a "maximize/minimize" option to modify the effect of the metric derivative. The assigned metric is assumed to return a parameter derivative result that "improves" the optimization when *added* to the current parameters via the metric::UpdateTransformParameters method, after the optimizer applies scales and a learning rate.

Definition at line 62 of file itkGradientDescentOptimizerv4.h.


Member Typedef Documentation

Reimplemented from itk::GradientDescentOptimizerBasev4.

Reimplemented in itk::QuasiNewtonOptimizerv4.

Definition at line 70 of file itkGradientDescentOptimizerv4.h.

Derivative type

Reimplemented from itk::GradientDescentOptimizerBasev4.

Definition at line 76 of file itkGradientDescentOptimizerv4.h.

Internal computation type, for maintaining a desired precision

Reimplemented from itk::GradientDescentOptimizerBasev4.

Reimplemented in itk::QuasiNewtonOptimizerv4.

Definition at line 83 of file itkGradientDescentOptimizerv4.h.

Metric type over which this class is templated

Reimplemented from itk::GradientDescentOptimizerBasev4.

Definition at line 82 of file itkGradientDescentOptimizerv4.h.

Reimplemented from itk::GradientDescentOptimizerBasev4.

Reimplemented in itk::QuasiNewtonOptimizerv4.

Definition at line 69 of file itkGradientDescentOptimizerv4.h.

Standard class typedefs.

Reimplemented from itk::GradientDescentOptimizerBasev4.

Reimplemented in itk::QuasiNewtonOptimizerv4.

Definition at line 67 of file itkGradientDescentOptimizerv4.h.

Reimplemented from itk::GradientDescentOptimizerBasev4.

Reimplemented in itk::QuasiNewtonOptimizerv4.

Definition at line 68 of file itkGradientDescentOptimizerv4.h.


Constructor & Destructor Documentation

itk::GradientDescentOptimizerv4::GradientDescentOptimizerv4 ( ) [protected]

Default constructor

virtual itk::GradientDescentOptimizerv4::~GradientDescentOptimizerv4 ( ) [protected, virtual]

Destructor

itk::GradientDescentOptimizerv4::GradientDescentOptimizerv4 ( const Self ) [private]

Member Function Documentation

virtual void itk::GradientDescentOptimizerv4::AdvanceOneStep ( void  ) [protected, virtual]

Advance one Step following the gradient direction. Includes transform update.

Reimplemented in itk::QuasiNewtonOptimizerv4.

virtual::itk::LightObject::Pointer itk::GradientDescentOptimizerv4::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

Reimplemented in itk::QuasiNewtonOptimizerv4.

virtual void itk::GradientDescentOptimizerv4::EstimateLearningRate ( ) [protected, virtual]

Estimate the learning rate

Implements itk::GradientDescentOptimizerBasev4.

virtual const InternalComputationValueType& itk::GradientDescentOptimizerv4::GetLearningRate ( ) [virtual]

Get the learning rate.

virtual const char* itk::GradientDescentOptimizerv4::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::GradientDescentOptimizerBasev4.

Reimplemented in itk::QuasiNewtonOptimizerv4.

virtual void itk::GradientDescentOptimizerv4::ModifyGradientByLearningRateOverSubRange ( const IndexRangeType subrange) [protected, virtual]

Modify the gradient over a given index range.

Implements itk::GradientDescentOptimizerBasev4.

virtual void itk::GradientDescentOptimizerv4::ModifyGradientByScalesOverSubRange ( const IndexRangeType subrange) [protected, virtual]

Modify the gradient over a given index range.

Implements itk::GradientDescentOptimizerBasev4.

static Pointer itk::GradientDescentOptimizerv4::New ( ) [static]

New macro for creation of through a Smart Pointer

Reimplemented from itk::Object.

Reimplemented in itk::QuasiNewtonOptimizerv4.

void itk::GradientDescentOptimizerv4::operator= ( const Self ) [private]

Mutex lock to protect modification to the reference count

Reimplemented from itk::GradientDescentOptimizerBasev4.

Reimplemented in itk::QuasiNewtonOptimizerv4.

virtual void itk::GradientDescentOptimizerv4::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::GradientDescentOptimizerBasev4.

Reimplemented in itk::QuasiNewtonOptimizerv4.

virtual void itk::GradientDescentOptimizerv4::ResumeOptimization ( ) [virtual]

Resume the optimization. Can be called after StopOptimization to resume. The bulk of the optimization work loop is here.

Implements itk::GradientDescentOptimizerBasev4.

virtual void itk::GradientDescentOptimizerv4::SetLearningRate ( InternalComputationValueType  _arg) [virtual]

Set the learning rate.

virtual void itk::GradientDescentOptimizerv4::SetMaximumStepSizeInPhysicalUnits ( InternalComputationValueType  _arg) [virtual]

Set the maximum step size.

virtual void itk::GradientDescentOptimizerv4::SetScalesEstimator ( OptimizerParameterScalesEstimator _arg) [virtual]

Set the scales estimator.

virtual void itk::GradientDescentOptimizerv4::StartOptimization ( ) [virtual]

Start and run the optimization

Reimplemented from itk::ObjectToObjectOptimizerBase.

Reimplemented in itk::QuasiNewtonOptimizerv4.


Member Data Documentation

Definition at line 115 of file itkGradientDescentOptimizerv4.h.

The maximum step size to restrict learning rates.

Definition at line 118 of file itkGradientDescentOptimizerv4.h.

Definition at line 131 of file itkGradientDescentOptimizerv4.h.


The documentation for this class was generated from the following file: