13 #ifndef MLPACK_METHODS_REGULARIZED_SVD_REGULARIZED_FUNCTION_SVD_HPP 14 #define MLPACK_METHODS_REGULARIZED_SVD_REGULARIZED_FUNCTION_SVD_HPP 17 #include <ensmallen.hpp> 28 template <
typename MatType = arma::mat>
55 double Evaluate(
const arma::mat& parameters)
const;
65 double Evaluate(
const arma::mat& parameters,
67 const size_t batchSize = 1)
const;
76 void Gradient(
const arma::mat& parameters,
77 arma::mat& gradient)
const;
91 template <
typename GradType>
92 void Gradient(
const arma::mat& parameters,
95 const size_t batchSize = 1)
const;
101 const arma::mat&
Dataset()
const {
return data; }
116 size_t Rank()
const {
return rank; }
122 arma::mat initialPoint;
150 inline double StandardSGD::Optimize(
152 arma::mat& parameters);
156 inline double ParallelSGD<ExponentialBackoff>::Optimize(
158 arma::mat& parameters);
166 #include "regularized_svd_function_impl.hpp" size_t NumFunctions() const
Return the number of training examples. Useful for SGD optimizer.
void Gradient(const arma::mat ¶meters, arma::mat &gradient) const
Evaluates the full gradient of the cost function over all the training examples.
const arma::mat & GetInitialPoint() const
Return the initial point for the optimization.
Linear algebra utility functions, generally performed on matrices or vectors.
void Shuffle()
Shuffle the points in the dataset.
The core includes that mlpack expects; standard C++ includes and Armadillo.
size_t NumUsers() const
Return the number of users in the data.
size_t NumItems() const
Return the number of items in the data.
double Lambda() const
Return the regularization parameters.
size_t Rank() const
Return the rank used for the factorization.
const arma::mat & Dataset() const
Return the dataset passed into the constructor.
RegularizedSVDFunction(const MatType &data, const size_t rank, const double lambda)
Constructor for RegularizedSVDFunction class.
double Evaluate(const arma::mat ¶meters) const
Evaluates the cost function over all examples in the data.
The data is stored in a matrix of type MatType, so that this class can be used with both dense and sp...