go home Home | Main Page | Topics | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itk::GradientDescentOptimizer2 Class Reference

#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

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

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 $\partial f / \partial p$ 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:

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 unsigned int GetCurrentIteration () const
virtual const DerivativeType & GetGradient ()
virtual const doubleGetLearningRate ()
virtual const unsigned long & GetNumberOfIterations ()
virtual const DerivativeType & GetSearchDirection ()
virtual const StopConditionTypeGetStopCondition ()
virtual const doubleGetValue ()
 ITK_DISALLOW_COPY_AND_MOVE (GradientDescentOptimizer2)
 itkOverrideGetNameOfClassMacro (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 ScaledCostFunctionTypeGetScaledCostFunction ()
virtual const ParametersType & GetScaledCurrentPosition ()
bool GetUseScales () const
virtual void InitializeScales ()
 ITK_DISALLOW_COPY_AND_MOVE (ScaledSingleValuedNonLinearOptimizer)
 itkOverrideGetNameOfClassMacro (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

Definition at line 63 of file itkGradientDescentOptimizer2.h.

◆ Pointer

Definition at line 62 of file itkGradientDescentOptimizer2.h.

◆ ScaledCostFunctionPointer

◆ ScaledCostFunctionType

◆ ScalesType

◆ Self

Standard class typedefs.

Definition at line 60 of file itkGradientDescentOptimizer2.h.

◆ Superclass

Member Enumeration Documentation

◆ 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 ( )
overrideprotecteddefault

Member Function Documentation

◆ AdvanceOneStep()

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

◆ 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 )

◆ itkOverrideGetNameOfClassMacro()

itk::GradientDescentOptimizer2::itkOverrideGetNameOfClassMacro ( GradientDescentOptimizer2 )

Run-time type information (and related methods).

◆ 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
overrideprotected

◆ ResumeOptimization()

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

◆ 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

Member Data 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 26-02-2026 for elastix by doxygen 1.16.1 (669aeeefca743c148e2d935b3d3c69535c7491e6) elastix logo