mlpack
regularized_svd_function.hpp
Go to the documentation of this file.
1 
13 #ifndef MLPACK_METHODS_REGULARIZED_SVD_REGULARIZED_FUNCTION_SVD_HPP
14 #define MLPACK_METHODS_REGULARIZED_SVD_REGULARIZED_FUNCTION_SVD_HPP
15 
16 #include <mlpack/prereqs.hpp>
17 #include <ensmallen.hpp>
18 
19 namespace mlpack {
20 namespace svd {
21 
28 template <typename MatType = arma::mat>
30 {
31  public:
41  RegularizedSVDFunction(const MatType& data,
42  const size_t rank,
43  const double lambda);
44 
48  void Shuffle();
49 
55  double Evaluate(const arma::mat& parameters) const;
56 
65  double Evaluate(const arma::mat& parameters,
66  const size_t start,
67  const size_t batchSize = 1) const;
68 
76  void Gradient(const arma::mat& parameters,
77  arma::mat& gradient) const;
78 
91  template <typename GradType>
92  void Gradient(const arma::mat& parameters,
93  const size_t start,
94  GradType& gradient,
95  const size_t batchSize = 1) const;
96 
98  const arma::mat& GetInitialPoint() const { return initialPoint; }
99 
101  const arma::mat& Dataset() const { return data; }
102 
104  size_t NumFunctions() const { return data.n_cols; }
105 
107  size_t NumUsers() const { return numUsers; }
108 
110  size_t NumItems() const { return numItems; }
111 
113  double Lambda() const { return lambda; }
114 
116  size_t Rank() const { return rank; }
117 
118  private:
120  MatType data;
122  arma::mat initialPoint;
124  size_t rank;
126  double lambda;
128  size_t numUsers;
130  size_t numItems;
131 };
132 
133 } // namespace svd
134 } // namespace mlpack
135 
140 namespace ens {
141 
148  template <>
149  template <>
150  inline double StandardSGD::Optimize(
152  arma::mat& parameters);
153 
154  template <>
155  template <>
156  inline double ParallelSGD<ExponentialBackoff>::Optimize(
158  arma::mat& parameters);
159 
160 } // namespace ens
161 
167 
168 #endif
void Shuffle()
Shuffle the points in the dataset.
Definition: regularized_svd_function_impl.hpp:38
size_t NumFunctions() const
Return the number of training examples. Useful for SGD optimizer.
Definition: regularized_svd_function.hpp:104
size_t NumUsers() const
Return the number of users in the data.
Definition: regularized_svd_function.hpp:107
const arma::mat & GetInitialPoint() const
Return the initial point for the optimization.
Definition: regularized_svd_function.hpp:98
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
Definition: bias_svd_function_impl.hpp:185
size_t Rank() const
Return the rank used for the factorization.
Definition: regularized_svd_function.hpp:116
The core includes that mlpack expects; standard C++ includes and Armadillo.
double Evaluate(const arma::mat &parameters) const
Evaluates the cost function over all examples in the data.
Definition: regularized_svd_function_impl.hpp:45
void Gradient(const arma::mat &parameters, arma::mat &gradient) const
Evaluates the full gradient of the cost function over all the training examples.
Definition: regularized_svd_function_impl.hpp:90
const arma::mat & Dataset() const
Return the dataset passed into the constructor.
Definition: regularized_svd_function.hpp:101
double Lambda() const
Return the regularization parameters.
Definition: regularized_svd_function.hpp:113
RegularizedSVDFunction(const MatType &data, const size_t rank, const double lambda)
Constructor for RegularizedSVDFunction class.
Definition: regularized_svd_function_impl.hpp:22
size_t NumItems() const
Return the number of items in the data.
Definition: regularized_svd_function.hpp:110
The data is stored in a matrix of type MatType, so that this class can be used with both dense and sp...
Definition: regularized_svd_function.hpp:29