template<typename TInternalComputationValueType>
class itk::GradientDescentLineSearchOptimizerv4Template< TInternalComputationValueType >
Gradient descent optimizer with a golden section line search.
GradientDescentLineSearchOptimizer implements a simple gradient descent optimizer that is followed by a line search to find the best value for the learning rate. At each iteration the current position is updated according to
\[ p_{n+1} = p_n
+ \mbox{learningRateByGoldenSectionLineSearch}
\, \frac{\partial f(p_n) }{\partial p_n}
\]
Options are identical to the superclass's except for:
options Epsilon, LowerLimit and UpperLimit that will guide a golden section line search to find the optimal gradient update within the range :
[ learningRate * LowerLimit , learningRate * UpperLimit ]
where Epsilon sets the resolution of the search. Smaller values lead to additional computation time but better localization of the minimum.
By default, this optimizer will return the best value and associated parameters that were calculated during the optimization. See SetReturnBestParametersAndValue().
Definition at line 60 of file itkGradientDescentLineSearchOptimizerv4.h.
|
| virtual::itk::LightObject::Pointer | CreateAnother () const |
| |
| virtual const char * | GetNameOfClass () const |
| |
|
| virtual void | SetEpsilon (TInternalComputationValueType _arg) |
| |
| virtual TInternalComputationValueType | GetEpsilon () |
| |
|
| virtual void | SetLowerLimit (TInternalComputationValueType _arg) |
| |
| virtual TInternalComputationValueType | GetLowerLimit () |
| |
| virtual void | SetUpperLimit (TInternalComputationValueType _arg) |
| |
| virtual TInternalComputationValueType | GetUpperLimit () |
| |
| virtual void | SetMaximumLineSearchIterations (unsigned int _arg) |
| |
| virtual unsigned int | GetMaximumLineSearchIterations () |
| |
| virtual::itk::LightObject::Pointer | CreateAnother () const |
| |
| virtual void | EstimateLearningRate () |
| |
| | itkVirtualGetConstReferenceMacro (ConvergenceValue, TInternalComputationValueType) |
| |
| | itkVirtualSetMacro (ConvergenceWindowSize, SizeValueType) |
| |
| | itkVirtualSetMacro (MinimumConvergenceValue, TInternalComputationValueType) |
| |
| void | ResumeOptimization () override |
| |
| void | StartOptimization (bool doOnlyInitialization=false) override |
| |
| void | StopOptimization () override |
| |
| virtual void | SetLearningRate (TInternalComputationValueType _arg) |
| |
| virtual const TInternalComputationValueType & | GetLearningRate () const |
| |
| virtual void | SetMaximumStepSizeInPhysicalUnits (TInternalComputationValueType _arg) |
| |
| virtual const TInternalComputationValueType & | GetMaximumStepSizeInPhysicalUnits () const |
| |
| virtual void | SetDoEstimateLearningRateAtEachIteration (bool _arg) |
| |
| virtual const bool & | GetDoEstimateLearningRateAtEachIteration () const |
| |
| virtual void | DoEstimateLearningRateAtEachIterationOn () |
| |
| virtual void | DoEstimateLearningRateAtEachIterationOff () |
| |
| virtual void | SetDoEstimateLearningRateOnce (bool _arg) |
| |
| virtual const bool & | GetDoEstimateLearningRateOnce () const |
| |
| virtual void | DoEstimateLearningRateOnceOn () |
| |
| virtual void | DoEstimateLearningRateOnceOff () |
| |
| virtual void | SetReturnBestParametersAndValue (bool _arg) |
| |
| virtual const bool & | GetReturnBestParametersAndValue () const |
| |
| virtual void | ReturnBestParametersAndValueOn () |
| |
| virtual void | ReturnBestParametersAndValueOff () |
| |
| virtual const DerivativeType & | GetGradient () const |
| |
| StopConditionReturnStringType | GetStopConditionDescription () const override |
| |
| | itkVirtualGetConstReferenceMacro (StopCondition, StopConditionObjectToObjectOptimizerEnum) |
| |
| virtual void | ModifyGradientByScales () |
| |
| virtual void | ModifyGradientByLearningRate () |
| |
| virtual bool | CanUseScales () const |
| |
| virtual bool | CanUseScales () const |
| |
| virtual SizeValueType | GetCurrentIteration () const |
| |
| virtual SizeValueType | GetCurrentIteration () const |
| |
| virtual const MeasureType & | GetCurrentMetricValue () const |
| |
| virtual const MeasureType & | GetCurrentMetricValue () const |
| |
| virtual const ParametersType & | GetCurrentPosition () const |
| |
| virtual const ParametersType & | GetCurrentPosition () const |
| |
| virtual const ThreadIdType & | GetNumberOfWorkUnits () const |
| |
| virtual const ThreadIdType & | GetNumberOfWorkUnits () const |
| |
| virtual const ScalesType & | GetScales () const |
| |
| virtual const ScalesType & | GetScales () const |
| |
| virtual const bool & | GetScalesAreIdentity () const |
| |
| virtual const bool & | GetScalesAreIdentity () const |
| |
| bool | GetScalesInitialized () const |
| |
| bool | GetScalesInitialized () const |
| |
| virtual const MeasureType & | GetValue () const |
| |
| virtual const MeasureType & | GetValue () const |
| |
| virtual const ScalesType & | GetWeights () const |
| |
| virtual const ScalesType & | GetWeights () const |
| |
| virtual const bool & | GetWeightsAreIdentity () const |
| |
| virtual const bool & | GetWeightsAreIdentity () const |
| |
| | itkVirtualGetConstMacro (NumberOfIterations, SizeValueType) |
| |
| | itkVirtualGetConstMacro (NumberOfIterations, SizeValueType) |
| |
| | itkVirtualSetMacro (NumberOfIterations, SizeValueType) |
| |
| | itkVirtualSetMacro (NumberOfIterations, SizeValueType) |
| |
| virtual void | SetNumberOfWorkUnits (ThreadIdType number) |
| |
| virtual void | SetNumberOfWorkUnits (ThreadIdType number) |
| |
| virtual void | SetScales (const ScalesType &scales) |
| |
| virtual void | SetScales (const ScalesType &scales) |
| |
| virtual void | SetScalesEstimator (ScalesEstimatorType *_arg) |
| |
| virtual void | SetScalesEstimator (ScalesEstimatorType *_arg) |
| |
| virtual void | SetWeights (ScalesType _arg) |
| |
| virtual void | SetWeights (ScalesType _arg) |
| |
| | itkVirtualSetObjectMacro (Metric, MetricType) |
| |
| virtual MetricType * | GetModifiableMetric () |
| |
| virtual const MetricType * | GetMetric () const |
| |
| | itkVirtualSetObjectMacro (Metric, MetricType) |
| |
| virtual MetricType * | GetModifiableMetric () |
| |
| virtual const MetricType * | GetMetric () const |
| |
| virtual void | SetDoEstimateScales (bool _arg) |
| |
| virtual const bool & | GetDoEstimateScales () const |
| |
| virtual void | DoEstimateScalesOn () |
| |
| virtual void | DoEstimateScalesOff () |
| |
| virtual void | SetDoEstimateScales (bool _arg) |
| |
| virtual const bool & | GetDoEstimateScales () const |
| |
| virtual void | DoEstimateScalesOn () |
| |
| virtual void | DoEstimateScalesOff () |
| |
| unsigned long | AddObserver (const EventObject &event, Command *cmd) const |
| |
| unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
| |
| LightObject::Pointer | CreateAnother () const override |
| |
| virtual void | DebugOff () const |
| |
| virtual void | DebugOn () const |
| |
| Command * | GetCommand (unsigned long tag) |
| |
| bool | GetDebug () const |
| |
| MetaDataDictionary & | GetMetaDataDictionary () |
| |
| const MetaDataDictionary & | GetMetaDataDictionary () const |
| |
| virtual ModifiedTimeType | GetMTime () const |
| |
| virtual const TimeStamp & | GetTimeStamp () const |
| |
| bool | HasObserver (const EventObject &event) const |
| |
| void | InvokeEvent (const EventObject &) |
| |
| void | InvokeEvent (const EventObject &) const |
| |
| virtual void | Modified () const |
| |
| void | Register () const override |
| |
| void | RemoveAllObservers () |
| |
| void | RemoveObserver (unsigned long tag) const |
| |
| void | SetDebug (bool debugFlag) const |
| |
| void | SetReferenceCount (int) override |
| |
| void | UnRegister () const noexcept override |
| |
| void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
| |
| void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
| |
| virtual void | SetObjectName (std::string _arg) |
| |
| virtual const std::string & | GetObjectName () const |
| |
| Pointer | Clone () const |
| |
| virtual void | Delete () |
| |
| virtual int | GetReferenceCount () const |
| |
| void | Print (std::ostream &os, Indent indent=0) const |
| |
|
| void | AdvanceOneStep () override |
| |
| TInternalComputationValueType | GoldenSectionSearch (TInternalComputationValueType a, TInternalComputationValueType b, TInternalComputationValueType c, TInternalComputationValueType metricb=NumericTraits< TInternalComputationValueType >::max()) |
| |
| | GradientDescentLineSearchOptimizerv4Template () |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| | ~GradientDescentLineSearchOptimizerv4Template () override=default |
| |
| | GradientDescentOptimizerv4Template () |
| |
| void | ModifyGradientByLearningRateOverSubRange (const IndexRangeType &subrange) override |
| |
| void | ModifyGradientByScalesOverSubRange (const IndexRangeType &subrange) override |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| | ~GradientDescentOptimizerv4Template () override=default |
| |
| | GradientDescentOptimizerBasev4Template () |
| |
| | ~GradientDescentOptimizerBasev4Template () override=default |
| |
| | ObjectToObjectOptimizerBaseTemplate () |
| |
| | ObjectToObjectOptimizerBaseTemplate () |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| | ~ObjectToObjectOptimizerBaseTemplate () override |
| |
| | ~ObjectToObjectOptimizerBaseTemplate () override |
| |
| | Object () |
| |
| bool | PrintObservers (std::ostream &os, Indent indent) const |
| |
| virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
| |
| | ~Object () override |
| |
| virtual LightObject::Pointer | InternalClone () const |
| |
| | LightObject () |
| |
| virtual void | PrintHeader (std::ostream &os, Indent indent) const |
| |
| virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
| |
| virtual | ~LightObject () |
| |