00001 00025 #ifndef __RPROPTRAINER_H__ 00026 #define __RPROPTRAINER_H__ 00027 00028 #include "inanna/trainer.h" 00029 #include "inanna/backprop.h" 00030 00032 // ---- ---- ----- o // 00033 // | ) | ) -- | ___ _ ___ // 00034 // |--- |--- |/\ __ | ) | |/\ ___| | |/ \ / ) |/\ // 00035 // | \ | | / \ |-- | | ( | | | | |--- | // 00036 // | \ | | \__/ | | | \__| | | | \__ | // 00038 00044 class RPropTrainer : public BackpropTrainer { 00045 public: 00046 virtual Array<DynParameter>* parameters () const; 00047 virtual void init (const StringMap& params); 00048 00049 protected: 00050 00052 virtual void initTrain (ANNetwork& network) const; 00053 00055 virtual void backpropagate (ANNetwork& network, const PatternSet& set, int p) const; 00056 00058 virtual void updateWeights (ANNetwork& network) const; 00059 00060 protected: 00062 double mDelta0; 00063 00065 double mDeltaMax; 00066 00072 mutable Vector mDelta; 00073 00079 mutable Vector mOldDeltaW; 00080 00086 mutable Vector mGradient; 00087 }; 00088 00089 #endif 00090