123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #ifndef _GRADIENT_DESCENT_OPTIMIZER_
- #define _GRADIENT_DESCENT_OPTIMIZER_
- #include <cmath>
- #include "optimization/DerivativeBasedOptimizer.h"
- namespace OPTIMIZATION
- {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- class GradientDescentOptimizer : public DerivativeBasedOptimizer
- {
- public:
- typedef DerivativeBasedOptimizer SuperClass;
-
-
-
-
- GradientDescentOptimizer(OptLogBase *loger=NULL);
-
-
-
-
- GradientDescentOptimizer( const GradientDescentOptimizer &opt);
-
-
-
- ~GradientDescentOptimizer();
-
-
-
-
-
-
-
- void setStepSize(const OPTIMIZATION::matrix_type & stepSize);
-
-
-
-
- inline const OPTIMIZATION::matrix_type & getStepSize(){return m_stepSize;};
-
-
-
- void init();
-
-
-
-
- int optimize();
- inline void setStepLength(double stepLength){m_stepLength=stepLength;}
- inline void setMinimalGradientMagnitude(double minGradientMag){m_MinimalGradientMagnitude=minGradientMag;}
- private:
-
-
-
- OPTIMIZATION::matrix_type m_stepSize;
-
-
-
-
- double m_stepLength;
-
-
-
-
- double m_MinimalGradientMagnitude;
-
- };
- }
- #endif
|