33 #ifndef GRT_BERNOULLI_RBM_HEADER
34 #define GRT_BERNOULLI_RBM_HEADER
36 #include "../../Util/MatrixDouble.h"
37 #include "../../CoreModules/MLBase.h"
44 BernoulliRBM(
const UINT numHiddenUnits = 100,
const UINT maxNumEpochs = 1000,
const double learningRate = 1,
const double learningRateUpdate = 1,
const double momentum = 0.5,
const bool useScaling =
true,
const bool randomiseTrainingOrder =
true);
56 bool predict_(VectorDouble &inputData);
67 bool predict_(VectorDouble &inputData,VectorDouble &outputData);
102 virtual bool clear();
120 bool reconstruct(
const VectorDouble &input,VectorDouble &output);
122 virtual bool print()
const;
124 bool getRandomizeWeightsForTraining()
const;
125 UINT getNumVisibleUnits()
const;
126 UINT getNumHiddenUnits()
const;
127 VectorDouble getOutputData()
const;
130 bool setNumHiddenUnits(
const UINT numHiddenUnits);
131 bool setMomentum(
const double momentum);
132 bool setLearningRateUpdate(
const double learningRateUpdate);
133 bool setRandomizeWeightsForTraining(
const bool randomizeWeightsForTraining);
134 bool setBatchSize(
const UINT batchSize);
135 bool setBatchStepSize(
const UINT batchStepSize);
148 inline double sigmoid(
const double &x) {
149 return 1.0 / (1.0 + exp(-x));
152 inline double sigmoidRandom(
const double &x){
156 bool randomizeWeightsForTraining;
157 UINT numVisibleUnits;
162 double learningRateUpdate;
164 VectorDouble visibleLayerBias;
165 VectorDouble hiddenLayerBias;
166 VectorDouble ph_mean;
167 VectorDouble ph_sample;
168 VectorDouble nv_means;
169 VectorDouble nv_samples;
170 VectorDouble nh_means;
171 VectorDouble nh_samples;
172 VectorDouble outputData;
173 vector<MinMax> ranges;
187 #endif //GRT_BERNOULLI_RBM_HEADER
virtual bool train_(MatrixDouble &data)
virtual bool saveModelToFile(string filename) const
virtual bool print() const
virtual bool loadModelFromFile(string filename)
virtual bool train(ClassificationData trainingData)
bool predict_(VectorDouble &inputData)
virtual bool predict(VectorDouble inputVector)
virtual bool predict_(VectorDouble &inputVector)
double getRandomNumberUniform(double minRange=0.0, double maxRange=1.0)
virtual bool saveModelToFile(fstream &file) const
virtual bool loadModelFromFile(fstream &file)
bool loadLegacyModelFromFile(fstream &file)
virtual bool train_(ClassificationData &trainingData)