00001 #ifndef _SIMPLENEURON_H 00002 #define _SIMPLENEURON_H 00003 00004 #include "Neuron.h" 00005 #include "defines.h" 00006 00007 namespace annie 00008 { 00009 00015 class SimpleNeuron : public Neuron 00016 { 00017 protected: 00019 bool _hasBias; 00020 00022 real _bias; 00023 00025 real _deltaBias; 00026 00028 ActivationFunction _dActivationFunction; 00029 00031 virtual void _recacheOutput(); 00032 00034 virtual void _recacheError(); 00035 00036 public: 00042 SimpleNeuron(int label, bool hasBias = true); 00043 00048 virtual void setBias(real bias); 00049 00051 virtual bool hasBias(); 00052 00054 virtual real getBias(); 00055 00057 virtual void removeBias(); 00058 00066 virtual void setDesiredOutput(real desired); 00067 00072 virtual void setActivationFunction(ActivationFunction f, ActivationFunction df); 00073 00078 virtual void connect(Neuron *from); 00079 00086 virtual void connect(Neuron *from, real weight); 00087 00093 virtual void calculateNewWeights(real learningRate, real momentum=0.0); 00094 00099 virtual void update(); 00100 00102 virtual std::string toString(); 00103 00105 virtual const char *getClassName(); 00106 00111 virtual real getWeight(Neuron *from); 00112 }; 00113 00114 }; //namespace annie 00115 #endif // define _SIMPLENEURON_H 00116
1.2.14 written by Dimitri van Heesch,
© 1997-2002