Files
NeuralNetworkLib/include/NeuralNetwork/Learning/PerceptronLearning.h

37 lines
900 B
C++

#pragma once
#include <vector>
#include <cmath>
#include <NeuralNetwork/FeedForward/Perceptron.h>
namespace NeuralNetwork {
namespace Learning {
/** @class PerceptronLearning
* @brief Basic algorithm for learning Perceptron
*/
class PerceptronLearning {
public:
inline PerceptronLearning(FeedForward::Perceptron &perceptronNetwork): perceptron(perceptronNetwork), learningCoefficient(0.1) {
}
virtual ~PerceptronLearning() {
}
PerceptronLearning(const PerceptronLearning&)=delete;
PerceptronLearning& operator=(const NeuralNetwork::Learning::PerceptronLearning&) = delete;
void teach(const std::vector<float> &input, const std::vector<float> &output);
inline virtual void setLearningCoefficient (const float& coefficient) { learningCoefficient=coefficient; }
protected:
FeedForward::Perceptron &perceptron;
float learningCoefficient;
};
}
}