15 #ifndef __elxAdaptiveStochasticGradientDescent_h
16 #define __elxAdaptiveStochasticGradientDescent_h
24 #include "itkMersenneTwisterRandomVariateGenerator.h"
167 template <
class TElastix>
248 itkSetMacro( MaximumStepLength,
double );
249 itkGetConstMacro( MaximumStepLength,
double );
252 itkSetMacro( MaximumNumberOfSamplingAttempts,
SizeValueType );
255 itkGetConstReferenceMacro( MaximumNumberOfSamplingAttempts,
SizeValueType );
269 struct SettingsType {
double a, A, alpha, fmax, fmin, omega; };
296 itkStaticConstMacro( MovingImageDimension,
unsigned int, MovingImageType::ImageDimension );
300 itkGetStaticConstMacro(FixedImageDimension),
344 double perturbationSigma,
double & gg,
double & ee );
361 double & maxJJ,
double & maxJCJ );
397 #ifndef ITK_MANUAL_INSTANTIATION
398 #include "elxAdaptiveStochasticGradientDescent.hxx"
401 #endif // end #ifndef __elxAdaptiveStochasticGradientDescent_h
RegistrationType::ITKBaseType itkRegistrationType
AdaptiveStochasticGradientDescentOptimizer Superclass1
SmartPointer< Self > Pointer
itk::ImageRandomSamplerBase< FixedImageType > ImageRandomSamplerBaseType
Superclass::RegistrationPointer RegistrationPointer
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
double m_MaximumStepLength
Superclass1::StopConditionType StopConditionType
itk::SmartPointer< Self > Pointer
SmartPointer< Self > Pointer
virtual void StartOptimization(void)
virtual void MetricErrorResponse(itk::ExceptionObject &err)
itk::ImageSamplerBase< FixedImageType > ImageSamplerBaseType
SizeValueType m_MaximumNumberOfSamplingAttempts
Superclass::ParametersType ParametersType
A gradient descent optimizer with an adaptive gain.
virtual void AddRandomPerturbation(ParametersType ¶meters, double sigma)
Superclass2::ITKBaseType ITKBaseType
This class is the elastix base class for all Optimizers.
virtual ~AdaptiveStochasticGradientDescent()
ImageRandomSamplerBaseType::Pointer ImageRandomSamplerBasePointer
AdaptiveStochasticGradientDescentOptimizer()
SizeValueType m_PreviousErrorAtIteration
itk::SizeValueType SizeValueType
Superclass::ElastixType ElastixType
virtual void BeforeRegistration(void)
bool m_AutomaticParameterEstimation
Superclass::ConfigurationPointer ConfigurationPointer
virtual void CheckForAdvancedTransform(void)
Superclass1::ParametersType ParametersType
itk::Statistics::MersenneTwisterRandomVariateGenerator RandomGeneratorType
SmartPointer< Self > Pointer
ImageGridSamplerType::Pointer ImageGridSamplerPointer
SizeValueType m_NumberOfSamplesForExactGradient
TransformType::JacobianType JacobianType
FixedImageType::IndexType FixedImageIndexType
SettingsVectorType m_SettingsVector
Superclass::ElastixPointer ElastixPointer
JacobianType::ValueType JacobianValueType
elxClassNameMacro("AdaptiveStochasticGradientDescent")
This class is a base class for any image sampler.
Superclass::ConfigurationType ConfigurationType
Superclass::DerivativeType DerivativeType
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
FixedImageType::PointType FixedImagePointType
itkRegistrationType::TransformType TransformType
ImageGridSamplerType::ImageSampleContainerType ImageSampleContainerType
FixedImageType::RegionType FixedImageRegionType
Superclass2::ElastixType ElastixType
SmartPointer< Self > Pointer
This class implements a gradient descent optimizer with adaptive gain.
ImageSamplerBaseType::Pointer ImageSamplerBasePointer
ProgressCommand ProgressCommandType
OptimizerBase< TElastix > Superclass2
void operator=(const Self &)
AdvancedTransformType::Pointer m_AdvancedTransform
bool m_AutomaticParameterEstimationDone
itk::SmartPointer< Self > Pointer
itk::Optimizer ITKBaseType
Samples an image by randomly composing a set of physical coordinates.
SizeValueType m_NumberOfBandStructureSamples
Superclass2::ConfigurationType ConfigurationType
virtual void GetScaledDerivativeWithExceptionHandling(const ParametersType ¶meters, DerivativeType &derivative)
virtual void PrintSettingsVector(const SettingsVectorType &settings) const
virtual void BeforeEachResolution(void)
JacobianType TransformJacobianType
Superclass2::ConfigurationPointer ConfigurationPointer
SizeValueType m_MaxBandCovSize
virtual void SampleFixedImageForJacobianTerms(ImageSampleContainerPointer &sampleContainer)
virtual void AfterEachIteration(void)
SmartPointer< Self > Pointer
virtual void ResumeOptimization(void)
SizeValueType m_CurrentNumberOfSamplingAttempts
double m_SigmoidScaleFactor
virtual void SampleGradients(const ParametersType &mu0, double perturbationSigma, double &gg, double &ee)
RegistrationType::MovingImageType MovingImageType
RandomGeneratorType::Pointer m_RandomGenerator
TransformType::ScalarType CoordinateRepresentationType
virtual void ComputeJacobianTerms(double &TrC, double &TrCC, double &maxJJ, double &maxJCJ)
itk::ImageGridSampler< FixedImageType > ImageGridSamplerType
SizeValueType m_NumberOfJacobianMeasurements
ImageSampleContainerType::Pointer ImageSampleContainerPointer
Superclass2::ElastixPointer ElastixPointer
virtual void AfterEachResolution(void)
std::vector< SettingsType > SettingsVectorType
A specialized Command object for updating the progress of a filter.
This class is a base class for any image sampler that randomly picks samples.
Superclass::RegistrationType RegistrationType
itk::SmartPointer< const Self > ConstPointer
AdvancedTransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Superclass1::CostFunctionType CostFunctionType
virtual void AfterRegistration(void)
SizeValueType m_NumberOfGradientMeasurements
Superclass1::CostFunctionPointer CostFunctionPointer
virtual void AutomaticParameterEstimation(void)
ProgressCommand::Pointer ProgressCommandPointer
ImageRandomCoordinateSamplerType::Pointer ImageRandomCoordinateSamplerPointer
Samples image voxels on a regular grid.
Superclass2::RegistrationType RegistrationType
itk::ImageRandomCoordinateSampler< FixedImageType > ImageRandomCoordinateSamplerType
AdaptiveStochasticGradientDescent()
itk::AdvancedTransform< CoordinateRepresentationType, itkGetStaticConstMacro(FixedImageDimension), itkGetStaticConstMacro(MovingImageDimension) > AdvancedTransformType
RegistrationType::FixedImageType FixedImageType
AdaptiveStochasticGradientDescent Self
Superclass2::RegistrationPointer RegistrationPointer