go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkAdaptiveStochasticGradientDescentOptimizer.h
Go to the documentation of this file.
00001 /*======================================================================
00002 
00003   This file is part of the elastix software.
00004 
00005   Copyright (c) University Medical Center Utrecht. All rights reserved.
00006   See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
00007   details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE. See the above copyright notices for more information.
00012 
00013 ======================================================================*/
00014 
00015 #ifndef __itkAdaptiveStochasticGradientDescentOptimizer_h
00016 #define __itkAdaptiveStochasticGradientDescentOptimizer_h
00017 
00018 #include "../StandardGradientDescent/itkStandardGradientDescentOptimizer.h"
00019 
00020 namespace itk
00021 {
00022 
00068   class AdaptiveStochasticGradientDescentOptimizer :
00069     public StandardGradientDescentOptimizer
00070   {
00071   public:
00072 
00074     typedef AdaptiveStochasticGradientDescentOptimizer   Self;
00075     typedef StandardGradientDescentOptimizer      Superclass;
00076 
00077     typedef SmartPointer<Self>                  Pointer;
00078     typedef SmartPointer<const Self>            ConstPointer;
00079 
00081     itkNewMacro( Self );
00082 
00084     itkTypeMacro( AdaptiveStochasticGradientDescentOptimizer,
00085       StandardGradientDescentOptimizer );
00086 
00088     typedef Superclass::MeasureType               MeasureType;
00089     typedef Superclass::ParametersType            ParametersType;
00090     typedef Superclass::DerivativeType            DerivativeType;
00091     typedef Superclass::CostFunctionType          CostFunctionType;
00092     typedef Superclass::ScalesType                ScalesType;
00093     typedef Superclass::ScaledCostFunctionType    ScaledCostFunctionType;
00094     typedef Superclass::ScaledCostFunctionPointer ScaledCostFunctionPointer;
00095     typedef Superclass::StopConditionType         StopConditionType;
00096 
00098     itkSetMacro( UseAdaptiveStepSizes, bool );
00099     itkGetConstMacro( UseAdaptiveStepSizes, bool );
00100 
00103     itkSetMacro(SigmoidMax, double);
00104     itkGetConstMacro(SigmoidMax, double);
00105 
00108     itkSetMacro(SigmoidMin, double);
00109     itkGetConstMacro(SigmoidMin, double);
00110 
00113     itkSetMacro(SigmoidScale, double);
00114     itkGetConstMacro(SigmoidScale, double);
00115 
00116   protected:
00117 
00118     AdaptiveStochasticGradientDescentOptimizer();
00119     virtual ~AdaptiveStochasticGradientDescentOptimizer() {};
00120 
00128     virtual void UpdateCurrentTime( void );
00129 
00131     DerivativeType m_PreviousGradient;
00132 
00133   private:
00134 
00135     AdaptiveStochasticGradientDescentOptimizer( const Self& ); // purposely not implemented
00136     void operator=( const Self& );              // purposely not implemented
00137 
00139     bool                          m_UseAdaptiveStepSizes;
00140     double                        m_SigmoidMax;
00141     double                        m_SigmoidMin;
00142     double                        m_SigmoidScale;
00143 
00144   }; // end class AdaptiveStochasticGradientDescentOptimizer
00145 
00146 
00147 } // end namespace itk
00148 
00149 
00150 #endif // end #ifndef __itkAdaptiveStochasticGradientDescentOptimizer_h
00151 
00152 


Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo