go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes
itk::AdaptiveStochasticLBFGSOptimizer Class Reference

#include <itkAdaptiveStochasticLBFGSOptimizer.h>

Detailed Description

Definition at line 69 of file itkAdaptiveStochasticLBFGSOptimizer.h.

Inheritance diagram for itk::AdaptiveStochasticLBFGSOptimizer:
Inheritance graph
[legend]

Public Types

using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = AdaptiveStochasticLBFGSOptimizer
 
using Superclass = StandardStochasticGradientOptimizer
 
- Public Types inherited from itk::StandardStochasticGradientOptimizer
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = StandardStochasticGradientOptimizer
 
enum  StopConditionType
 
using Superclass = StochasticGradientDescentOptimizer
 
- Public Types inherited from itk::StochasticGradientDescentOptimizer
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using ScaledCostFunctionPointer = ScaledCostFunctionType::Pointer
 
using ScaledCostFunctionType = ScaledSingleValuedCostFunction
 
using ScalesType = NonLinearOptimizer::ScalesType
 
using Self = StochasticGradientDescentOptimizer
 
enum  StopConditionType {
  MaximumNumberOfIterations , MetricError , MinimumStepSize , InvalidDiagonalMatrix ,
  GradientMagnitudeTolerance , LineSearchError
}
 
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 const char * GetClassName () const
 
virtual double GetSigmoidMax () const
 
virtual double GetSigmoidMin () const
 
virtual double GetSigmoidScale () const
 
virtual bool GetUseAdaptiveStepSizes () const
 
virtual bool GetUseSearchDirForAdaptiveStepSize () const
 
 ITK_DISALLOW_COPY_AND_MOVE (AdaptiveStochasticLBFGSOptimizer)
 
virtual void SetSigmoidMax (double _arg)
 
virtual void SetSigmoidMin (double _arg)
 
virtual void SetSigmoidScale (double _arg)
 
virtual void SetUseAdaptiveStepSizes (bool _arg)
 
virtual void SetUseSearchDirForAdaptiveStepSize (bool _arg)
 
- Public Member Functions inherited from itk::StandardStochasticGradientOptimizer
void AdvanceOneStep () override
 
virtual const char * GetClassName () const
 
virtual double GetCurrentTime () const
 
virtual double GetInitialTime () const
 
virtual double GetParam_a () const
 
virtual double GetParam_A () const
 
virtual double GetParam_alpha () const
 
virtual double GetParam_beta () const
 
 ITK_DISALLOW_COPY_AND_MOVE (StandardStochasticGradientOptimizer)
 
virtual void ResetCurrentTimeToInitialTime ()
 
virtual void SetInitialTime (double _arg)
 
virtual void SetParam_a (double _arg)
 
virtual void SetParam_A (double _arg)
 
virtual void SetParam_alpha (double _arg)
 
virtual void SetParam_beta (double _arg)
 
void StartOptimization () override
 
- Public Member Functions inherited from itk::StochasticGradientDescentOptimizer
virtual void AdvanceOneStep ()
 
virtual const char * GetClassName () const
 
virtual unsigned int GetCurrentInnerIteration () const
 
virtual unsigned int GetCurrentIteration () const
 
virtual const DerivativeType & GetGradient ()
 
virtual unsigned int GetLBFGSMemory () const
 
virtual const doubleGetLearningRate ()
 
virtual const unsigned long & GetNumberOfInnerIterations ()
 
virtual const unsigned long & GetNumberOfIterations ()
 
virtual const DerivativeType & GetPreviousGradient ()
 
virtual const ParametersType & GetPreviousPosition ()
 
virtual const DerivativeType & GetSearchDir ()
 
virtual const StopConditionTypeGetStopCondition ()
 
virtual const doubleGetValue ()
 
 ITK_DISALLOW_COPY_AND_MOVE (StochasticGradientDescentOptimizer)
 
virtual void MetricErrorResponse (ExceptionObject &err)
 
virtual void ResumeOptimization ()
 
virtual void SetLearningRate (double _arg)
 
virtual void SetNumberOfIterations (unsigned long _arg)
 
void SetNumberOfWorkUnits (ThreadIdType numberOfThreads)
 
virtual void SetPreviousGradient (DerivativeType _arg)
 
virtual void SetPreviousPosition (ParametersType _arg)
 
virtual void SetUseEigen (bool _arg)
 
virtual void SetUseMultiThread (bool _arg)
 
virtual void SetUseOpenMP (bool _arg)
 
void StartOptimization () override
 
virtual void StopOptimization ()
 
- Public Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
virtual const char * GetClassName () const
 
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)
 
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::StandardStochasticGradientOptimizer
static Pointer New ()
 
- Static Public Member Functions inherited from itk::StochasticGradientDescentOptimizer
static Pointer New ()
 
- Static Public Member Functions inherited from itk::ScaledSingleValuedNonLinearOptimizer
static Pointer New ()
 

Protected Member Functions

 AdaptiveStochasticLBFGSOptimizer ()
 
void UpdateCurrentTime () override
 
 ~AdaptiveStochasticLBFGSOptimizer () override=default
 
- Protected Member Functions inherited from itk::StandardStochasticGradientOptimizer
virtual double Compute_a (double k) const
 
virtual double Compute_beta (double k) const
 
 StandardStochasticGradientOptimizer ()
 
virtual void UpdateCurrentTime ()
 
 ~StandardStochasticGradientOptimizer () override=default
 
- Protected Member Functions inherited from itk::StochasticGradientDescentOptimizer
void PrintSelf (std::ostream &os, Indent indent) const override
 
 StochasticGradientDescentOptimizer ()
 
 ~StochasticGradientDescentOptimizer () 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

double m_SearchLengthScale { 10 }
 
std::string m_StepSizeStrategy
 
unsigned long m_UpdateFrequenceL
 
bool m_UseAdaptiveStepSizes { true }
 
bool m_UseSearchDirForAdaptiveStepSize
 
- Protected Attributes inherited from itk::StandardStochasticGradientOptimizer
double m_CurrentTime { 0.0 }
 
bool m_UseConstantStep
 
- Protected Attributes inherited from itk::StochasticGradientDescentOptimizer
unsigned long m_CurrentInnerIteration
 
unsigned long m_CurrentIteration { 0 }
 
DerivativeType m_Gradient
 
unsigned long m_LBFGSMemory { 0 }
 
double m_LearningRate { 1.0 }
 
ParametersType m_MeanSearchDir
 
unsigned long m_NumberOfInnerIterations
 
unsigned long m_NumberOfIterations { 100 }
 
DerivativeType m_PrePreviousGradient
 
ParametersType m_PrePreviousSearchDir
 
DerivativeType m_PreviousGradient
 
ParametersType m_PreviousPosition
 
ParametersType m_PreviousSearchDir
 
ParametersType m_SearchDir
 
bool m_Stop { false }
 
StopConditionType m_StopCondition { MaximumNumberOfIterations }
 
ThreaderType::Pointer m_Threader { ThreaderType::New() }
 
double m_Value { 0.0 }
 
- Protected Attributes inherited from itk::ScaledSingleValuedNonLinearOptimizer
ScaledCostFunctionPointer m_ScaledCostFunction
 
ParametersType m_ScaledCurrentPosition
 

Private Attributes

double m_SigmoidMax { 1.0 }
 
double m_SigmoidMin { -0.8 }
 
double m_SigmoidScale { 1e-8 }
 

Additional Inherited Members

- Protected Types inherited from itk::StochasticGradientDescentOptimizer
using ThreaderType = itk::PlatformMultiThreader
 
using ThreadInfoType = ThreaderType::WorkUnitInfo
 

Member Typedef Documentation

◆ ConstPointer

Definition at line 78 of file itkAdaptiveStochasticLBFGSOptimizer.h.

◆ Pointer

Definition at line 77 of file itkAdaptiveStochasticLBFGSOptimizer.h.

◆ Self

Standard ITK.

Definition at line 75 of file itkAdaptiveStochasticLBFGSOptimizer.h.

◆ Superclass

Definition at line 76 of file itkAdaptiveStochasticLBFGSOptimizer.h.

Constructor & Destructor Documentation

◆ AdaptiveStochasticLBFGSOptimizer()

itk::AdaptiveStochasticLBFGSOptimizer::AdaptiveStochasticLBFGSOptimizer ( )
protected

◆ ~AdaptiveStochasticLBFGSOptimizer()

itk::AdaptiveStochasticLBFGSOptimizer::~AdaptiveStochasticLBFGSOptimizer ( )
overrideprotecteddefault

Member Function Documentation

◆ GetClassName()

virtual const char * itk::AdaptiveStochasticLBFGSOptimizer::GetClassName ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::StandardStochasticGradientOptimizer.

Reimplemented in elastix::AdaptiveStochasticLBFGS< TElastix >.

◆ GetSigmoidMax()

virtual double itk::AdaptiveStochasticLBFGSOptimizer::GetSigmoidMax ( ) const
virtual

◆ GetSigmoidMin()

virtual double itk::AdaptiveStochasticLBFGSOptimizer::GetSigmoidMin ( ) const
virtual

◆ GetSigmoidScale()

virtual double itk::AdaptiveStochasticLBFGSOptimizer::GetSigmoidScale ( ) const
virtual

◆ GetUseAdaptiveStepSizes()

virtual bool itk::AdaptiveStochasticLBFGSOptimizer::GetUseAdaptiveStepSizes ( ) const
virtual

◆ GetUseSearchDirForAdaptiveStepSize()

virtual bool itk::AdaptiveStochasticLBFGSOptimizer::GetUseSearchDirForAdaptiveStepSize ( ) const
virtual

◆ ITK_DISALLOW_COPY_AND_MOVE()

itk::AdaptiveStochasticLBFGSOptimizer::ITK_DISALLOW_COPY_AND_MOVE ( AdaptiveStochasticLBFGSOptimizer  )

◆ New()

static Pointer itk::AdaptiveStochasticLBFGSOptimizer::New ( )
static

Method for creation through the object factory.

◆ SetSigmoidMax()

virtual void itk::AdaptiveStochasticLBFGSOptimizer::SetSigmoidMax ( double  _arg)
virtual

Set/Get the maximum of the sigmoid. Should be >0. Default: 1.0

◆ SetSigmoidMin()

virtual void itk::AdaptiveStochasticLBFGSOptimizer::SetSigmoidMin ( double  _arg)
virtual

Set/Get the maximum of the sigmoid. Should be <0. Default: -0.8

◆ SetSigmoidScale()

virtual void itk::AdaptiveStochasticLBFGSOptimizer::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.

◆ SetUseAdaptiveStepSizes()

virtual void itk::AdaptiveStochasticLBFGSOptimizer::SetUseAdaptiveStepSizes ( bool  _arg)
virtual

Set/Get whether the adaptive step size mechanism is desired. Default: true

◆ SetUseSearchDirForAdaptiveStepSize()

virtual void itk::AdaptiveStochasticLBFGSOptimizer::SetUseSearchDirForAdaptiveStepSize ( bool  _arg)
virtual

Set/Get whether the adaptive step size mechanism is desired. Default: true

◆ UpdateCurrentTime()

void itk::AdaptiveStochasticLBFGSOptimizer::UpdateCurrentTime ( )
overrideprotectedvirtual

Function to update the current time If UseAdaptiveStepSizes is false this function just increments the CurrentTime by $E_0 = (sigmoid_{max} + sigmoid_{min})/2$. 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::StandardStochasticGradientOptimizer.

Field Documentation

◆ m_SearchLengthScale

double itk::AdaptiveStochasticLBFGSOptimizer::m_SearchLengthScale { 10 }
protected

Definition at line 140 of file itkAdaptiveStochasticLBFGSOptimizer.h.

◆ m_SigmoidMax

double itk::AdaptiveStochasticLBFGSOptimizer::m_SigmoidMax { 1.0 }
private

Settings

Definition at line 146 of file itkAdaptiveStochasticLBFGSOptimizer.h.

◆ m_SigmoidMin

double itk::AdaptiveStochasticLBFGSOptimizer::m_SigmoidMin { -0.8 }
private

Definition at line 147 of file itkAdaptiveStochasticLBFGSOptimizer.h.

◆ m_SigmoidScale

double itk::AdaptiveStochasticLBFGSOptimizer::m_SigmoidScale { 1e-8 }
private

Definition at line 148 of file itkAdaptiveStochasticLBFGSOptimizer.h.

◆ m_StepSizeStrategy

std::string itk::AdaptiveStochasticLBFGSOptimizer::m_StepSizeStrategy
protected

Definition at line 141 of file itkAdaptiveStochasticLBFGSOptimizer.h.

◆ m_UpdateFrequenceL

unsigned long itk::AdaptiveStochasticLBFGSOptimizer::m_UpdateFrequenceL
protected

The PreviousGradient, necessary for the CruzAcceleration

Definition at line 137 of file itkAdaptiveStochasticLBFGSOptimizer.h.

◆ m_UseAdaptiveStepSizes

bool itk::AdaptiveStochasticLBFGSOptimizer::m_UseAdaptiveStepSizes { true }
protected

Definition at line 139 of file itkAdaptiveStochasticLBFGSOptimizer.h.

◆ m_UseSearchDirForAdaptiveStepSize

bool itk::AdaptiveStochasticLBFGSOptimizer::m_UseSearchDirForAdaptiveStepSize
protected

Definition at line 138 of file itkAdaptiveStochasticLBFGSOptimizer.h.



Generated on 2023-01-13 for elastix by doxygen 1.9.6 elastix logo