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 
00063   class AdaptiveStochasticGradientDescentOptimizer :
00064     public StandardGradientDescentOptimizer
00065   {
00066   public:
00067 
00069     typedef AdaptiveStochasticGradientDescentOptimizer   Self;
00070     typedef StandardGradientDescentOptimizer      Superclass;
00071 
00072     typedef SmartPointer<Self>                  Pointer;
00073     typedef SmartPointer<const Self>            ConstPointer;
00074 
00076     itkNewMacro( Self );
00077 
00079     itkTypeMacro( AdaptiveStochasticGradientDescentOptimizer,
00080       StandardGradientDescentOptimizer );
00081 
00083     typedef Superclass::MeasureType               MeasureType;
00084     typedef Superclass::ParametersType            ParametersType;
00085     typedef Superclass::DerivativeType            DerivativeType;
00086     typedef Superclass::CostFunctionType          CostFunctionType;
00087     typedef Superclass::ScalesType                ScalesType;
00088     typedef Superclass::ScaledCostFunctionType    ScaledCostFunctionType;
00089     typedef Superclass::ScaledCostFunctionPointer ScaledCostFunctionPointer;
00090     typedef Superclass::StopConditionType         StopConditionType;
00091 
00093     itkSetMacro( UseAdaptiveStepSizes, bool );
00094     itkGetConstMacro( UseAdaptiveStepSizes, bool );
00095 
00098     itkSetMacro(SigmoidMax, double);
00099     itkGetConstMacro(SigmoidMax, double);
00100 
00103     itkSetMacro(SigmoidMin, double);
00104     itkGetConstMacro(SigmoidMin, double);
00105 
00108     itkSetMacro(SigmoidScale, double);
00109     itkGetConstMacro(SigmoidScale, double);
00110 
00111   protected:
00112 
00113     AdaptiveStochasticGradientDescentOptimizer();
00114     virtual ~AdaptiveStochasticGradientDescentOptimizer() {};
00115 
00123     virtual void UpdateCurrentTime( void );
00124 
00126     DerivativeType m_PreviousGradient;
00127 
00128   private:
00129 
00130     AdaptiveStochasticGradientDescentOptimizer( const Self& ); // purposely not implemented
00131     void operator=( const Self& );              // purposely not implemented
00132 
00134     bool                          m_UseAdaptiveStepSizes;
00135     double                        m_SigmoidMax;
00136     double                        m_SigmoidMin;
00137     double                        m_SigmoidScale;
00138 
00139   }; // end class AdaptiveStochasticGradientDescentOptimizer
00140 
00141 
00142 } // end namespace itk
00143 
00144 
00145 #endif // end #ifndef __itkAdaptiveStochasticGradientDescentOptimizer_h
00146 
00147 


Generated on 11-05-2011 for elastix by doxygen 1.7.4 elastix logo