MLPACK  1.0.10
sparse_autoencoder_function.hpp
Go to the documentation of this file.
1 
23 #ifndef __MLPACK_METHODS_SPARSE_AUTOENCODER_SPARSE_AUTOENCODER_FUNCTION_HPP
24 #define __MLPACK_METHODS_SPARSE_AUTOENCODER_SPARSE_AUTOENCODER_FUNCTION_HPP
25 
26 #include <mlpack/core.hpp>
27 
28 namespace mlpack {
29 namespace nn {
30 
37 {
38  public:
50  SparseAutoencoderFunction(const arma::mat& data,
51  const size_t visibleSize,
52  const size_t hiddenSize,
53  const double lambda = 0.0001,
54  const double beta = 3,
55  const double rho = 0.01);
56 
58  const arma::mat InitializeWeights();
59 
70  double Evaluate(const arma::mat& parameters) const;
71 
81  void Gradient(const arma::mat& parameters, arma::mat& gradient) const;
82 
89  void Sigmoid(const arma::mat& x, arma::mat& output) const
90  {
91  output = (1.0 / (1 + arma::exp(-x)));
92  }
93 
95  const arma::mat& GetInitialPoint() const { return initialPoint; }
96 
98  void VisibleSize(const size_t visible)
99  {
100  this->visibleSize = visible;
101  }
102 
104  size_t VisibleSize() const
105  {
106  return visibleSize;
107  }
108 
110  void HiddenSize(const size_t hidden)
111  {
112  this->hiddenSize = hidden;
113  }
114 
116  size_t HiddenSize() const
117  {
118  return hiddenSize;
119  }
120 
122  void Lambda(const double l)
123  {
124  this->lambda = l;
125  }
126 
128  double Lambda() const
129  {
130  return lambda;
131  }
132 
134  void Beta(const double b)
135  {
136  this->beta = b;
137  }
138 
140  double Beta() const
141  {
142  return beta;
143  }
144 
146  void Rho(const double r)
147  {
148  this->rho = r;
149  }
150 
152  double Rho() const
153  {
154  return rho;
155  }
156 
157  private:
159  const arma::mat& data;
161  arma::mat initialPoint;
163  size_t visibleSize;
165  size_t hiddenSize;
167  double lambda;
169  double beta;
171  double rho;
172 };
173 
174 }; // namespace nn
175 }; // namespace mlpack
176 
177 #endif