1 #ifndef OPENANN_SPARSE_AUTO_ENCODER_H_
2 #define OPENANN_SPARSE_AUTO_ENCODER_H_
23 double beta, rho, lambda;
26 Eigen::MatrixXd W1, W2, W1d, W2d;
27 Eigen::VectorXd b1, b2, b1d, b2d;
28 Eigen::MatrixXd A1, Z1, G1D, A2, Z2, G2D;
29 Eigen::VectorXd parameters, grad;
30 Eigen::MatrixXd dEdZ2, dEdZ1;
31 Eigen::VectorXd meanActivation;
46 virtual Eigen::VectorXd
operator()(
const Eigen::VectorXd& x);
47 virtual Eigen::MatrixXd
operator()(
const Eigen::MatrixXd& X);
51 virtual void setParameters(
const Eigen::VectorXd& parameters);
53 virtual double error();
56 virtual void errorGradient(
double& value, Eigen::VectorXd& grad);
61 bool dropout,
double* error = 0);
62 virtual void backpropagate(Eigen::MatrixXd* ein, Eigen::MatrixXd*& eout,
63 bool backpropToPrevious);
67 std::vector<double*>& parameterDerivativePointers);
74 Eigen::VectorXd
reconstruct(
const Eigen::VectorXd& x);
79 #endif // OPENANN_SPARSE_AUTO_ENCODER_H_