16 class RandomNumberGenerator;
57 Eigen::MatrixXd W, posGradW, negGradW, Wd;
58 Eigen::VectorXd bv, posGradBv, negGradBv, bh, posGradBh, negGradBh, bhd;
59 Eigen::MatrixXd pv, v, ph, h, phd;
60 Eigen::MatrixXd deltas, e;
62 Eigen::VectorXd params, grad;
77 RBM(
int D,
int H,
int cdN = 1,
double stdDev = 0.01,
bool backprop =
true,
82 virtual Eigen::VectorXd
operator()(
const Eigen::VectorXd& x);
83 virtual Eigen::MatrixXd
operator()(
const Eigen::MatrixXd&
X);
90 virtual double error();
91 virtual double error(
unsigned int n);
94 virtual Eigen::VectorXd
gradient(
unsigned int n);
95 virtual void errorGradient(std::vector<int>::const_iterator startN,
96 std::vector<int>::const_iterator endN,
97 double& value, Eigen::VectorXd& grad);
101 bool dropout,
double* error = 0);
102 virtual void backpropagate(Eigen::MatrixXd* ein, Eigen::MatrixXd*& eout,
103 bool backpropToPrevious);
107 std::vector<double*>& parameterDerivativePointers);
161 #endif // OPENANN_RBM_H_