.TH "mlpack::nn::SparseAutoencoder< OptimizerType >" 3 "Tue Sep 9 2014" "Version 1.0.10" "MLPACK" \" -*- nroff -*- .ad l .nh .SH NAME mlpack::nn::SparseAutoencoder< OptimizerType > \- .PP A sparse autoencoder is a neural network whose aim to learn compressed representations of the data, typically for dimensionality reduction, with a constraint on the activity of the neurons in the network\&. .SH SYNOPSIS .br .PP .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBSparseAutoencoder\fP (const arma::mat &data, const size_t \fBvisibleSize\fP, const size_t \fBhiddenSize\fP, const double \fBlambda\fP=0\&.0001, const double \fBbeta\fP=3, const double \fBrho\fP=0\&.01)" .br .RI "\fIConstruct the sparse autoencoder model with the given training data\&. \fP" .ti -1c .RI "\fBSparseAutoencoder\fP (OptimizerType< \fBSparseAutoencoderFunction\fP > &optimizer)" .br .RI "\fIConstruct the sparse autoencoder model with the given training data\&. \fP" .ti -1c .RI "void \fBBeta\fP (const double b)" .br .RI "\fISets the KL divergence parameter\&. \fP" .ti -1c .RI "double \fBBeta\fP () const " .br .RI "\fIGets the KL divergence parameter\&. \fP" .ti -1c .RI "void \fBGetNewFeatures\fP (arma::mat &data, arma::mat &features)" .br .RI "\fITransforms the provided data into the representation learned by the sparse autoencoder\&. \fP" .ti -1c .RI "void \fBHiddenSize\fP (const size_t hidden)" .br .RI "\fISets size of the hidden layer\&. \fP" .ti -1c .RI "size_t \fBHiddenSize\fP () const " .br .RI "\fIGets the size of the hidden layer\&. \fP" .ti -1c .RI "void \fBLambda\fP (const double l)" .br .RI "\fISets the L2-regularization parameter\&. \fP" .ti -1c .RI "double \fBLambda\fP () const " .br .RI "\fIGets the L2-regularization parameter\&. \fP" .ti -1c .RI "void \fBRho\fP (const double r)" .br .RI "\fISets the sparsity parameter\&. \fP" .ti -1c .RI "double \fBRho\fP () const " .br .RI "\fIGets the sparsity parameter\&. \fP" .ti -1c .RI "void \fBSigmoid\fP (const arma::mat &x, arma::mat &output) const " .br .RI "\fIReturns the elementwise sigmoid of the passed matrix, where the sigmoid function of a real number 'x' is [1 / (1 + exp(-x))]\&. \fP" .ti -1c .RI "void \fBVisibleSize\fP (const size_t visible)" .br .RI "\fISets size of the visible layer\&. \fP" .ti -1c .RI "size_t \fBVisibleSize\fP () const " .br .RI "\fIGets size of the visible layer\&. \fP" .in -1c .SS "Private Attributes" .in +1c .ti -1c .RI "double \fBbeta\fP" .br .RI "\fIKL divergence parameter\&. \fP" .ti -1c .RI "size_t \fBhiddenSize\fP" .br .RI "\fISize of the hidden layer\&. \fP" .ti -1c .RI "double \fBlambda\fP" .br .RI "\fIL2-regularization parameter\&. \fP" .ti -1c .RI "arma::mat \fBparameters\fP" .br .RI "\fIParameters after optimization\&. \fP" .ti -1c .RI "double \fBrho\fP" .br .RI "\fISparsity parameter\&. \fP" .ti -1c .RI "size_t \fBvisibleSize\fP" .br .RI "\fISize of the visible layer\&. \fP" .in -1c .SH "Detailed Description" .PP .SS "template class OptimizerType = mlpack::optimization::L_BFGS>class mlpack::nn::SparseAutoencoder< OptimizerType >" A sparse autoencoder is a neural network whose aim to learn compressed representations of the data, typically for dimensionality reduction, with a constraint on the activity of the neurons in the network\&. Sparse autoencoders can be stacked together to learn a hierarchy of features, which provide a better representation of the data for classification\&. This is a method used in the recently developed field of deep learning\&. More technical details about the model can be found on the following webpage: .PP http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial .PP An example of how to use the interface is shown below: .PP .PP .nf arma::mat data; // Data matrix\&. const size_t vSize = 64; // Size of visible layer, depends on the data\&. const size_t hSize = 25; // Size of hidden layer, depends on requirements\&. // Train the model using default options\&. SparseAutoencoder encoder1(data, vSize, hSize); const size_t numBasis = 5; // Parameter required for L-BFGS algorithm\&. const size_t numIterations = 100; // Maximum number of iterations\&. // Use an instantiated optimizer for the training\&. SparseAutoencoderFunction saf(data, vSize, hSize); L_BFGS optimizer(saf, numBasis, numIterations); SparseAutoencoder encoder2(optimizer); arma::mat features1, features2; // Matrices for storing new representations\&. // Get new representations from the trained models\&. encoder1\&.GetNewFeatures(data, features1); encoder2\&.GetNewFeatures(data, features2); .fi .PP .PP This implementation allows the use of arbitrary mlpack optimizers via the OptimizerType template parameter\&. .PP \fBTemplate Parameters:\fP .RS 4 \fIOptimizerType\fP The optimizer to use; by default this is L-BFGS\&. Any mlpack optimizer can be used here\&. .RE .PP .PP Definition at line 78 of file sparse_autoencoder\&.hpp\&. .SH "Constructor & Destructor Documentation" .PP .SS "template class OptimizerType = mlpack::optimization::L_BFGS> \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::\fBSparseAutoencoder\fP (const arma::mat &data, const size_tvisibleSize, const size_thiddenSize, const doublelambda = \fC0\&.0001\fP, const doublebeta = \fC3\fP, const doublerho = \fC0\&.01\fP)" .PP Construct the sparse autoencoder model with the given training data\&. This will train the model\&. The parameters 'lambda', 'beta' and 'rho' can be set optionally\&. Changing these parameters will have an effect on regularization and sparsity of the model\&. .PP \fBParameters:\fP .RS 4 \fIdata\fP Input data with each column as one example\&. .br \fIvisibleSize\fP Size of input vector expected at the visible layer\&. .br \fIhiddenSize\fP Size of input vector expected at the hidden layer\&. .br \fIlambda\fP L2-regularization parameter\&. .br \fIbeta\fP KL divergence parameter\&. .br \fIrho\fP Sparsity parameter\&. .RE .PP .SS "template class OptimizerType = mlpack::optimization::L_BFGS> \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::\fBSparseAutoencoder\fP (OptimizerType< \fBSparseAutoencoderFunction\fP > &optimizer)" .PP Construct the sparse autoencoder model with the given training data\&. This will train the model\&. This overload takes an already instantiated optimizer and uses it to train the model\&. The optimizer should hold an instantiated \fBSparseAutoencoderFunction\fP object for the function to operate upon\&. This option should be preferred when the optimizer options are to be changed\&. .PP \fBParameters:\fP .RS 4 \fIoptimizer\fP Instantiated optimizer with instantiated error function\&. .RE .PP .SH "Member Function Documentation" .PP .SS "template class OptimizerType = mlpack::optimization::L_BFGS> void \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::Beta (const doubleb)\fC [inline]\fP" .PP Sets the KL divergence parameter\&. .PP Definition at line 170 of file sparse_autoencoder\&.hpp\&. .PP References mlpack::nn::SparseAutoencoder< OptimizerType >::beta\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> double \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::Beta () const\fC [inline]\fP" .PP Gets the KL divergence parameter\&. .PP Definition at line 176 of file sparse_autoencoder\&.hpp\&. .PP References mlpack::nn::SparseAutoencoder< OptimizerType >::beta\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> void \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::GetNewFeatures (arma::mat &data, arma::mat &features)" .PP Transforms the provided data into the representation learned by the sparse autoencoder\&. The function basically performs a feedforward computation using the learned weights, and returns the hidden layer activations\&. .PP \fBParameters:\fP .RS 4 \fIdata\fP Matrix of the provided data\&. .br \fIfeatures\fP The hidden layer representation of the provided data\&. .RE .PP .SS "template class OptimizerType = mlpack::optimization::L_BFGS> void \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::HiddenSize (const size_thidden)\fC [inline]\fP" .PP Sets size of the hidden layer\&. .PP Definition at line 146 of file sparse_autoencoder\&.hpp\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> size_t \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::HiddenSize () const\fC [inline]\fP" .PP Gets the size of the hidden layer\&. .PP Definition at line 152 of file sparse_autoencoder\&.hpp\&. .PP References mlpack::nn::SparseAutoencoder< OptimizerType >::hiddenSize\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> void \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::Lambda (const doublel)\fC [inline]\fP" .PP Sets the L2-regularization parameter\&. .PP Definition at line 158 of file sparse_autoencoder\&.hpp\&. .PP References mlpack::nn::SparseAutoencoder< OptimizerType >::lambda\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> double \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::Lambda () const\fC [inline]\fP" .PP Gets the L2-regularization parameter\&. .PP Definition at line 164 of file sparse_autoencoder\&.hpp\&. .PP References mlpack::nn::SparseAutoencoder< OptimizerType >::lambda\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> void \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::Rho (const doubler)\fC [inline]\fP" .PP Sets the sparsity parameter\&. .PP Definition at line 182 of file sparse_autoencoder\&.hpp\&. .PP References mlpack::nn::SparseAutoencoder< OptimizerType >::rho\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> double \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::Rho () const\fC [inline]\fP" .PP Gets the sparsity parameter\&. .PP Definition at line 188 of file sparse_autoencoder\&.hpp\&. .PP References mlpack::nn::SparseAutoencoder< OptimizerType >::rho\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> void \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::Sigmoid (const arma::mat &x, arma::mat &output) const\fC [inline]\fP" .PP Returns the elementwise sigmoid of the passed matrix, where the sigmoid function of a real number 'x' is [1 / (1 + exp(-x))]\&. .PP \fBParameters:\fP .RS 4 \fIx\fP Matrix of real values for which we require the sigmoid activation\&. .RE .PP .PP Definition at line 128 of file sparse_autoencoder\&.hpp\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> void \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::VisibleSize (const size_tvisible)\fC [inline]\fP" .PP Sets size of the visible layer\&. .PP Definition at line 134 of file sparse_autoencoder\&.hpp\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> size_t \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::VisibleSize () const\fC [inline]\fP" .PP Gets size of the visible layer\&. .PP Definition at line 140 of file sparse_autoencoder\&.hpp\&. .PP References mlpack::nn::SparseAutoencoder< OptimizerType >::visibleSize\&. .SH "Member Data Documentation" .PP .SS "template class OptimizerType = mlpack::optimization::L_BFGS> double \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::beta\fC [private]\fP" .PP KL divergence parameter\&. .PP Definition at line 203 of file sparse_autoencoder\&.hpp\&. .PP Referenced by mlpack::nn::SparseAutoencoder< OptimizerType >::Beta()\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> size_t \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::hiddenSize\fC [private]\fP" .PP Size of the hidden layer\&. .PP Definition at line 199 of file sparse_autoencoder\&.hpp\&. .PP Referenced by mlpack::nn::SparseAutoencoder< OptimizerType >::HiddenSize()\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> double \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::lambda\fC [private]\fP" .PP L2-regularization parameter\&. .PP Definition at line 201 of file sparse_autoencoder\&.hpp\&. .PP Referenced by mlpack::nn::SparseAutoencoder< OptimizerType >::Lambda()\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> arma::mat \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::parameters\fC [private]\fP" .PP Parameters after optimization\&. .PP Definition at line 195 of file sparse_autoencoder\&.hpp\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> double \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::rho\fC [private]\fP" .PP Sparsity parameter\&. .PP Definition at line 205 of file sparse_autoencoder\&.hpp\&. .PP Referenced by mlpack::nn::SparseAutoencoder< OptimizerType >::Rho()\&. .SS "template class OptimizerType = mlpack::optimization::L_BFGS> size_t \fBmlpack::nn::SparseAutoencoder\fP< OptimizerType >::visibleSize\fC [private]\fP" .PP Size of the visible layer\&. .PP Definition at line 197 of file sparse_autoencoder\&.hpp\&. .PP Referenced by mlpack::nn::SparseAutoencoder< OptimizerType >::VisibleSize()\&. .SH "Author" .PP Generated automatically by Doxygen for MLPACK from the source code\&.