Loading...
Searching...
No Matches
itk::GradientDescentOptimizer2 Class Reference
Components » Optimizers

`#include <itkGradientDescentOptimizer2.h>`

## Detailed Description

Implement a gradient descent optimizer.

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

The learning rate is a fixed scalar defined via SetLearningRate(). The optimizer steps through a user defined number of iterations; no convergence checking is done.

Additionally, user can scale each component of the but setting a scaling vector using method SetScale().

The difference of this class with the itk::GradientDescentOptimizer is that it's based on the ScaledSingleValuedNonLinearOptimizer

See also
  ScaledSingleValuedNonLinearOptimizer

Definition at line 54 of file itkGradientDescentOptimizer2.h.

Inheritance diagram for itk::GradientDescentOptimizer2:
[legend]

## Public Types

using | ConstPointer = SmartPointer<const Self>
using | Pointer = SmartPointer<Self>
using | ScaledCostFunctionPointer
using | ScaledCostFunctionType
using | ScalesType
using | Self = GradientDescentOptimizer2
enum | StopConditionType { MaximumNumberOfIterations , MetricError , MinimumStepSize }
using | Superclass = ScaledSingleValuedNonLinearOptimizer
Public Types inherited from itk::ScaledSingleValuedNonLinearOptimizer
using | ConstPointer = SmartPointer<const Self>
using | Pointer = SmartPointer<Self>
using | ScaledCostFunctionPointer = ScaledCostFunctionType::Pointer
using | ScaledCostFunctionType = ScaledSingleValuedCostFunction
using | ScalesType = NonLinearOptimizer::ScalesType
using | Self = ScaledSingleValuedNonLinearOptimizer
using | Superclass = SingleValuedNonLinearOptimizer

## Public Member Functions

virtual void | AdvanceOneStep ()
virtual const char * | GetClassName () const
virtual unsigned int | GetCurrentIteration () const
virtual const DerivativeType & | GetGradient ()
virtual const double & | GetLearningRate ()
virtual const unsigned long & | GetNumberOfIterations ()
virtual const DerivativeType & | GetSearchDirection ()
virtual const StopConditionType & | GetStopCondition ()
virtual const double & | GetValue ()
| ITK_DISALLOW_COPY_AND_MOVE (GradientDescentOptimizer2)
virtual void | MetricErrorResponse (ExceptionObject &err)
virtual void | ResumeOptimization ()
virtual void | SetLearningRate (double _arg)
virtual void | SetNumberOfIterations (unsigned long _arg)
void | StartOptimization () override
virtual void | StopOptimization ()
Public Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
const ParametersType & | GetCurrentPosition () const override
virtual bool | GetMaximize () const
virtual const ScaledCostFunctionType * | GetScaledCostFunction ()
virtual const ParametersType & | GetScaledCurrentPosition ()
bool | GetUseScales () const
virtual void | InitializeScales ()
| ITK_DISALLOW_COPY_AND_MOVE (ScaledSingleValuedNonLinearOptimizer)
virtual void | MaximizeOff ()
virtual void | MaximizeOn ()
void | SetCostFunction (CostFunctionType *costFunction) override
virtual void | SetMaximize (bool _arg)
virtual void | SetUseScales (bool arg)

## Static Public Member Functions

static Pointer | New ()
Static Public Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
static Pointer | New ()

## Protected Member Functions

| GradientDescentOptimizer2 ()
void | PrintSelf (std::ostream &os, Indent indent) const override
| ~GradientDescentOptimizer2 () override=default
Protected Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
virtual void | GetScaledDerivative (const ParametersType &parameters, DerivativeType &derivative) const
virtual MeasureType | GetScaledValue (const ParametersType &parameters) const
virtual void | GetScaledValueAndDerivative (const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const
void | PrintSelf (std::ostream &os, Indent indent) const override
| ScaledSingleValuedNonLinearOptimizer ()
void | SetCurrentPosition (const ParametersType &param) override
virtual void | SetScaledCurrentPosition (const ParametersType &parameters)
| ~ScaledSingleValuedNonLinearOptimizer () override=default

## Protected Attributes

DerivativeType | m_Gradient {}
DerivativeType | m_SearchDirection {}
StopConditionType | m_StopCondition { MaximumNumberOfIterations }
Protected Attributes inherited from itk::ScaledSingleValuedNonLinearOptimizer
ScaledCostFunctionPointer | m_ScaledCostFunction {}
ParametersType | m_ScaledCurrentPosition {}

## Private Attributes

unsigned long | m_CurrentIteration { 0 }
double | m_LearningRate { 1.0 }
unsigned long | m_NumberOfIterations { 100 }
bool | m_Stop { false }
double | m_Value { 0.0 }

## Member Typedef Documentation

## ConstPointer

using itk::GradientDescentOptimizer2::ConstPointer = SmartPointer<const Self>

Definition at line 63 of file itkGradientDescentOptimizer2.h.

## Pointer

using itk::GradientDescentOptimizer2::Pointer = SmartPointer<Self>

Definition at line 62 of file itkGradientDescentOptimizer2.h.

## ScaledCostFunctionPointer

using itk::ScaledSingleValuedNonLinearOptimizer::ScaledCostFunctionPointer

Definition at line 87 of file itkScaledSingleValuedNonLinearOptimizer.h.

## ScaledCostFunctionType

using itk::ScaledSingleValuedNonLinearOptimizer::ScaledCostFunctionType

Definition at line 86 of file itkScaledSingleValuedNonLinearOptimizer.h.

## ScalesType

using itk::ScaledSingleValuedNonLinearOptimizer::ScalesType

Definition at line 85 of file itkScaledSingleValuedNonLinearOptimizer.h.

## Self

using itk::GradientDescentOptimizer2::Self = GradientDescentOptimizer2

Standard class typedefs.

Definition at line 60 of file itkGradientDescentOptimizer2.h.

## Superclass

using itk::GradientDescentOptimizer2::Superclass = ScaledSingleValuedNonLinearOptimizer

Definition at line 61 of file itkGradientDescentOptimizer2.h.

## Member Enumeration Documentation

## StopConditionType

enum itk::GradientDescentOptimizer2::StopConditionType

Codes of stopping conditions The MinimumStepSize stopcondition never occurs, but may be implemented in inheriting classes

Enumerator
MaximumNumberOfIterations |
MetricError |
MinimumStepSize |

Definition at line 83 of file itkGradientDescentOptimizer2.h.

## Constructor & Destructor Documentation

## GradientDescentOptimizer2()

itk::GradientDescentOptimizer2::GradientDescentOptimizer2 | ( |  | ) |

protected

## ~GradientDescentOptimizer2()

itk::GradientDescentOptimizer2::~GradientDescentOptimizer2 | ( |  | ) |

override protected default

## Member Function Documentation

## AdvanceOneStep()

virtual void itk::GradientDescentOptimizer2::AdvanceOneStep | ( |  | ) |

virtual

Advance one step following the gradient direction.

Reimplemented in elastix::AdaGrad< TElastix >, elastix::PreconditionedStochasticGradientDescent< TElastix >, and itk::StandardGradientDescentOptimizer.

## GetClassName()

virtual const char * itk::GradientDescentOptimizer2::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

Reimplemented from itk::ScaledSingleValuedNonLinearOptimizer.

Reimplemented in elastix::AdaGrad< TElastix >, elastix::AdaptiveStochasticGradientDescent< TElastix >, elastix::PreconditionedStochasticGradientDescent< TElastix >, elastix::StandardGradientDescent< TElastix >, itk::AdaptiveStepsizeOptimizer, itk::AdaptiveStochasticGradientDescentOptimizer, itk::PreconditionedASGDOptimizer, and itk::StandardGradientDescentOptimizer.

## GetCurrentIteration()

virtual unsigned int itk::GradientDescentOptimizer2::GetCurrentIteration | ( |  | ) | const

virtual

Get the current iteration number.

## GetGradient()

virtual const DerivativeType & itk::GradientDescentOptimizer2::GetGradient | ( |  | ) |

virtual

Get current gradient.

## GetLearningRate()

virtual const double & itk::GradientDescentOptimizer2::GetLearningRate | ( |  | ) |

virtual

Get the learning rate.

## GetNumberOfIterations()

virtual const unsigned long & itk::GradientDescentOptimizer2::GetNumberOfIterations | ( |  | ) |

virtual

Get the number of iterations.

## GetSearchDirection()

virtual const DerivativeType & itk::GradientDescentOptimizer2::GetSearchDirection | ( |  | ) |

virtual

Get current search direction

## GetStopCondition()

virtual const StopConditionType & itk::GradientDescentOptimizer2::GetStopCondition | ( |  | ) |

virtual

Get Stop condition.

## GetValue()

virtual const double & itk::GradientDescentOptimizer2::GetValue | ( |  | ) |

virtual

Get the current value.

## ITK_DISALLOW_COPY_AND_MOVE()

itk::GradientDescentOptimizer2::ITK_DISALLOW_COPY_AND_MOVE | ( | GradientDescentOptimizer2 |  | ) |

## MetricErrorResponse()

virtual void itk::GradientDescentOptimizer2::MetricErrorResponse | ( | ExceptionObject & | err | ) |

virtual

Stop optimization and pass on exception.

## New()

Pointer itk::GradientDescentOptimizer2::New | ( |  | ) |

static

Method for creation through the object factory.

## PrintSelf()

void itk::GradientDescentOptimizer2::PrintSelf | ( | std::ostream & | os,
|  | Indent | indent ) const

override protected

## ResumeOptimization()

virtual void itk::GradientDescentOptimizer2::ResumeOptimization | ( |  | ) |

virtual

Resume previously stopped optimization with current parameters

See also
  StopOptimization.

Reimplemented in elastix::AdaGrad< TElastix >, elastix::AdaptiveStochasticGradientDescent< TElastix >, and elastix::PreconditionedStochasticGradientDescent< TElastix >.

## SetLearningRate()

virtual void itk::GradientDescentOptimizer2::SetLearningRate | ( | double | _arg | ) |

virtual

Set the learning rate.

## SetNumberOfIterations()

virtual void itk::GradientDescentOptimizer2::SetNumberOfIterations | ( | unsigned long | _arg | ) |

virtual

Set the number of iterations.

## StartOptimization()

void itk::GradientDescentOptimizer2::StartOptimization | ( |  | ) |

override

Start optimization.

## StopOptimization()

virtual void itk::GradientDescentOptimizer2::StopOptimization | ( |  | ) |

virtual

Stop optimization.

See also
  ResumeOptimization

## Field Documentation

## m_CurrentIteration

unsigned long itk::GradientDescentOptimizer2::m_CurrentIteration { 0 }

private

Definition at line 155 of file itkGradientDescentOptimizer2.h.

## m_Gradient

DerivativeType itk::GradientDescentOptimizer2::m_Gradient {}

protected

Definition at line 146 of file itkGradientDescentOptimizer2.h.

## m_LearningRate

double itk::GradientDescentOptimizer2::m_LearningRate { 1.0 }

private

Definition at line 152 of file itkGradientDescentOptimizer2.h.

## m_NumberOfIterations

unsigned long itk::GradientDescentOptimizer2::m_NumberOfIterations { 100 }

private

Definition at line 154 of file itkGradientDescentOptimizer2.h.

## m_SearchDirection

DerivativeType itk::GradientDescentOptimizer2::m_SearchDirection {}

protected

Definition at line 147 of file itkGradientDescentOptimizer2.h.

## m_Stop

bool itk::GradientDescentOptimizer2::m_Stop { false }

private

Definition at line 153 of file itkGradientDescentOptimizer2.h.

## m_StopCondition

StopConditionType itk::GradientDescentOptimizer2::m_StopCondition { MaximumNumberOfIterations }

protected

Definition at line 148 of file itkGradientDescentOptimizer2.h.

## m_Value

double itk::GradientDescentOptimizer2::m_Value { 0.0 }

private

Definition at line 151 of file itkGradientDescentOptimizer2.h.

Generated on 1768596610 for elastix by 1.15.0 |