33 #ifndef GRT_MLP_HEADER
34 #define GRT_MLP_HEADER
37 #include "../../../CoreModules/Regressifier.h"
98 virtual bool predict_(VectorDouble &inputVector);
105 virtual bool clear();
112 virtual bool print()
const;
156 bool init(
const UINT numInputNeurons,
const UINT numHiddenNeurons,
const UINT numOutputNeurons);
175 bool init(
const UINT numInputNeurons,
const UINT numHiddenNeurons,
const UINT numOutputNeurons,
const UINT inputLayerActivationFunction,
176 const UINT hiddenLayerActivationFunction,
const UINT outputLayerActivationFunction);
490 bool inline isNAN(
const double v)
const;
498 bool loadLegacyModelFromFile( fstream &file );
509 double back_prop(
const VectorDouble &trainingExample,
const VectorDouble &targetVector,
const double alpha,
const double beta);
517 VectorDouble
feedforward(VectorDouble trainingExample);
527 void feedforward(
const VectorDouble &trainingExample,VectorDouble &inputNeuronsOuput,VectorDouble &hiddenNeuronsOutput,VectorDouble &outputNeuronsOutput);
529 UINT numInputNeurons;
530 UINT numHiddenNeurons;
531 UINT numOutputNeurons;
532 UINT inputLayerActivationFunction;
533 UINT hiddenLayerActivationFunction;
534 UINT outputLayerActivationFunction;
535 UINT numRandomTrainingIterations;
539 double trainingError;
543 vector< Neuron > inputLayer;
544 vector< Neuron > hiddenLayer;
545 vector< Neuron > outputLayer;
546 vector< VectorDouble > trainingErrorLog;
549 bool classificationModeActive;
550 bool useNullRejection;
551 UINT predictedClassLabel;
552 double nullRejectionThreshold;
553 double nullRejectionCoeff;
554 double maxLikelihood;
555 VectorDouble classLikelihoods;
560 VectorDouble inputNeuronsOuput;
561 VectorDouble hiddenNeuronsOutput;
562 VectorDouble outputNeuronsOutput;
567 enum TrainingModes{ONLINE_GRADIENT_DESCENT};
573 #endif //GRT_MLP_HEADER
UINT getInputLayerActivationFunction() const
virtual bool saveModelToFile(string filename) const
virtual bool saveModelToFile(fstream &file) const
bool setNumRandomTrainingIterations(const UINT numRandomTrainingIterations)
virtual bool train_(ClassificationData &trainingData)
double getMomentum() const
This class implements a Neuron that is used by the Multilayer Perceptron.
bool getNullRejectionEnabled() const
vector< Neuron > getHiddenLayer() const
double getTrainingRate() const
string activationFunctionToString(const UINT activationFunction) const
virtual bool loadModelFromFile(string filename)
virtual bool deepCopyFrom(const Regressifier *regressifier)
double getNullRejectionCoeff() const
bool getRegressionModeActive() const
UINT getNumClasses() const
virtual bool loadModelFromFile(fstream &file)
virtual bool train(ClassificationData trainingData)
bool setMomentum(const double momentum)
bool setHiddenLayerActivationFunction(const UINT activationFunction)
UINT getOutputLayerActivationFunction() const
double getMaximumLikelihood() const
double getNullRejectionThreshold() const
VectorDouble feedforward(VectorDouble trainingExample)
UINT getNumRandomTrainingIterations() const
bool setTrainingRate(const double trainingRate)
virtual bool predict_(VectorDouble &inputVector)
VectorDouble getClassDistances() const
UINT getHiddenLayerActivationFunction() const
bool init(const UINT numInputNeurons, const UINT numHiddenNeurons, const UINT numOutputNeurons)
bool setOutputLayerActivationFunction(const UINT activationFunction)
bool setGamma(const double gamma)
vector< Neuron > getOutputLayer() const
virtual bool print() const
void printNetwork() const
virtual bool predict(VectorDouble inputVector)
bool setNullRejection(const bool useNullRejection)
double back_prop(const VectorDouble &trainingExample, const VectorDouble &targetVector, const double alpha, const double beta)
virtual bool predict_(VectorDouble &inputVector)
vector< Neuron > getInputLayer() const
UINT getNumInputNeurons() const
UINT getPredictedClassLabel() const
UINT getNumHiddenNeurons() const
UINT activationFunctionFromString(const string activationName) const
MLP & operator=(const MLP &rhs)
bool setInputLayerActivationFunction(const UINT activationFunction)
VectorDouble getClassLikelihoods() const
double getTrainingError() const
UINT getNumOutputNeurons() const
vector< VectorDouble > getTrainingLog() const
bool validateActivationFunction(const UINT avactivationFunction) const
bool setNullRejectionCoeff(const double nullRejectionCoeff)
bool getClassificationModeActive() const
virtual bool train_(ClassificationData &trainingData)