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. More...
Public Member Functions | |
template < typename OptimizerType = ens::L_BFGS > | |
SparseAutoencoder (const arma::mat &data, const size_t visibleSize, const size_t hiddenSize, const double lambda=0.0001, const double beta=3, const double rho=0.01, OptimizerType optimizer=OptimizerType()) | |
Construct the sparse autoencoder model with the given training data. More... | |
template<typename OptimizerType , typename... CallbackTypes> | |
SparseAutoencoder (const arma::mat &data, const size_t visibleSize, const size_t hiddenSize, const double lambda, const double beta, const double rho, OptimizerType optimizer, CallbackTypes &&... callbacks) | |
Construct the sparse autoencoder model with the given training data. More... | |
void | Beta (const double b) |
Sets the KL divergence parameter. More... | |
double | Beta () const |
Gets the KL divergence parameter. More... | |
void | GetNewFeatures (arma::mat &data, arma::mat &features) |
Transforms the provided data into the representation learned by the sparse autoencoder. More... | |
void | HiddenSize (const size_t hidden) |
Sets size of the hidden layer. More... | |
size_t | HiddenSize () const |
Gets the size of the hidden layer. More... | |
void | Lambda (const double l) |
Sets the L2-regularization parameter. More... | |
double | Lambda () const |
Gets the L2-regularization parameter. More... | |
void | Rho (const double r) |
Sets the sparsity parameter. More... | |
double | Rho () const |
Gets the sparsity parameter. More... | |
void | Sigmoid (const arma::mat &x, arma::mat &output) const |
Returns the elementwise sigmoid of the passed matrix, where the sigmoid function of a real number 'x' is [1 / (1 + exp(-x))]. More... | |
void | VisibleSize (const size_t visible) |
Sets size of the visible layer. More... | |
size_t | VisibleSize () const |
Gets size of the visible layer. More... | |
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:
http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial
An example of how to use the interface is shown below:
This implementation allows the use of arbitrary mlpack optimizers via the OptimizerType template parameter.
Definition at line 63 of file sparse_autoencoder.hpp.
SparseAutoencoder | ( | const arma::mat & | data, |
const size_t | visibleSize, | ||
const size_t | hiddenSize, | ||
const double | lambda = 0.0001 , |
||
const double | beta = 3 , |
||
const double | rho = 0.01 , |
||
OptimizerType | optimizer = OptimizerType() |
||
) |
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.
OptimizerType | The optimizer to use. |
data | Input data with each column as one example. |
visibleSize | Size of input vector expected at the visible layer. |
hiddenSize | Size of input vector expected at the hidden layer. |
lambda | L2-regularization parameter. |
beta | KL divergence parameter. |
rho | Sparsity parameter. |
optimizer | Desired optimizer. |
SparseAutoencoder | ( | const arma::mat & | data, |
const size_t | visibleSize, | ||
const size_t | hiddenSize, | ||
const double | lambda, | ||
const double | beta, | ||
const double | rho, | ||
OptimizerType | optimizer, | ||
CallbackTypes &&... | callbacks | ||
) |
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.
OptimizerType | The optimizer to use. |
CallbackTypes | Types of Callback Functions. |
data | Input data with each column as one example. |
visibleSize | Size of input vector expected at the visible layer. |
hiddenSize | Size of input vector expected at the hidden layer. |
lambda | L2-regularization parameter. |
beta | KL divergence parameter. |
rho | Sparsity parameter. |
optimizer | Desired optimizer. |
callbacks | Callback function for ensmallen optimizer OptimizerType . See https://www.ensmallen.org/docs.html#callback-documentation. |
|
inline |
Sets the KL divergence parameter.
Definition at line 177 of file sparse_autoencoder.hpp.
|
inline |
Gets the KL divergence parameter.
Definition at line 183 of file sparse_autoencoder.hpp.
void GetNewFeatures | ( | arma::mat & | data, |
arma::mat & | features | ||
) |
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.
data | Matrix of the provided data. |
features | The hidden layer representation of the provided data. |
|
inline |
Sets size of the hidden layer.
Definition at line 153 of file sparse_autoencoder.hpp.
|
inline |
Gets the size of the hidden layer.
Definition at line 159 of file sparse_autoencoder.hpp.
|
inline |
Sets the L2-regularization parameter.
Definition at line 165 of file sparse_autoencoder.hpp.
|
inline |
Gets the L2-regularization parameter.
Definition at line 171 of file sparse_autoencoder.hpp.
|
inline |
Sets the sparsity parameter.
Definition at line 189 of file sparse_autoencoder.hpp.
|
inline |
Gets the sparsity parameter.
Definition at line 195 of file sparse_autoencoder.hpp.
|
inline |
Returns the elementwise sigmoid of the passed matrix, where the sigmoid function of a real number 'x' is [1 / (1 + exp(-x))].
x | Matrix of real values for which we require the sigmoid activation. |
output | Output matrix. |
Definition at line 135 of file sparse_autoencoder.hpp.
|
inline |
Sets size of the visible layer.
Definition at line 141 of file sparse_autoencoder.hpp.
|
inline |
Gets size of the visible layer.
Definition at line 147 of file sparse_autoencoder.hpp.