#pragma once #include #include #include namespace NeuralNetwork { namespace Learning { /** @class BackPropagation * @brief */ class BackPropagation { public: BackPropagation(): learningCoefficient(0.4) { } virtual ~BackPropagation() { } void teach(FeedForward::Network &n,const std::vector &input, const std::vector &output); inline virtual void setLearningCoefficient (const float& coefficient) { learningCoefficient=coefficient; } protected: inline virtual float correction(const float & expected, const float &computed) const { return expected-computed; }; float learningCoefficient; }; } }