![]() |
OpenANN
1.1.0
An open source library for artificial neural networks.
|
Feedforward multilayer neural network. More...
#include <Net.h>
Inheritance diagram for OpenANN::Net:Public Member Functions | |
| Net () | |
| Create feedforward neural network. More... | |
| virtual | ~Net () |
Architecture Definition | |
These functions must be called to define the architecture of the network. | |
| Net & | inputLayer (int dim1, int dim2=1, int dim3=1) |
| Add an input layer. More... | |
| Net & | alphaBetaFilterLayer (double deltaT, double stdDev=0.05) |
| Add a alpha-beta filter layer. More... | |
| Net & | fullyConnectedLayer (int units, ActivationFunction act, double stdDev=0.05, bool bias=true) |
| Add a fully connected hidden layer. More... | |
| Net & | restrictedBoltzmannMachineLayer (int H, int cdN=1, double stdDev=0.01, bool backprop=true) |
| Add a layer that contains an RBM. More... | |
| Net & | sparseAutoEncoderLayer (int H, double beta, double rho, ActivationFunction act) |
| Add a sparse auto-encoder. More... | |
| Net & | compressedLayer (int units, int params, ActivationFunction act, const std::string &compression, double stdDev=0.05, bool bias=true) |
| Add a compressed fully connected hidden layer. More... | |
| Net & | extremeLayer (int units, ActivationFunction act, double stdDev=5.0, bool bias=true) |
| Add a fully connected hidden layer with fixed weights. More... | |
| Net & | intrinsicPlasticityLayer (double targetMean, double stdDev=1.0) |
| Add an intrinsic plasticity layer that is able to learn the parameters of a logistic activation function. More... | |
| Net & | convolutionalLayer (int featureMaps, int kernelRows, int kernelCols, ActivationFunction act, double stdDev=0.05, bool bias=true) |
| Add a convolutional layer. More... | |
| Net & | subsamplingLayer (int kernelRows, int kernelCols, ActivationFunction act, double stdDev=0.05, bool bias=true) |
| Add a subsampling layer. More... | |
| Net & | maxPoolingLayer (int kernelRows, int kernelCols) |
| Add a max-pooling layer. More... | |
| Net & | localReponseNormalizationLayer (double k, int n, double alpha, double beta) |
| Add a local response normalization layer. More... | |
| Net & | dropoutLayer (double dropoutProbability) |
| Add a dropout layer. More... | |
| Net & | outputLayer (int units, ActivationFunction act, double stdDev=0.05, bool bias=true) |
| Add a fully connected output layer. More... | |
| Net & | compressedOutputLayer (int units, int params, ActivationFunction act, const std::string &compression, double stdDev=0.05, bool bias=true) |
| Add a compressed output layer. More... | |
| Net & | addLayer (Layer *layer) |
| Add a new layer to this deep neural network. More... | |
| Net & | addOutputLayer (Layer *layer) |
| Add a new output layer to this deep neural network. More... | |
Access Internal Structure | |
| unsigned int | numberOflayers () |
| Request number of layers. More... | |
| Layer & | getLayer (unsigned int l) |
| Access layer. More... | |
| OutputInfo | getOutputInfo (unsigned int l) |
| Request information about output of a given layer. More... | |
| DataSet * | propagateDataSet (DataSet &dataSet, int l) |
| Propagate data set through the first l layers. More... | |
Persistence | |
| void | save (const std::string &fileName) |
| Save network. More... | |
| void | save (std::ostream &stream) |
| Save network. More... | |
| void | load (const std::string &fileName) |
| Load network from file. More... | |
| void | load (std::istream &stream) |
| Load network from stream. More... | |
Optimization Contol | |
| Net & | setRegularization (double l1Penalty=0.0, double l2Penalty=0.0, double maxSquaredWeightNorm=0.0) |
| Net & | setErrorFunction (ErrorFunction errorFunction) |
| Set the error function. More... | |
| Net & | useDropout (bool activate=true) |
| Toggle dropout. More... | |
Inherited Functions | |
| virtual Eigen::VectorXd | operator() (const Eigen::VectorXd &x) |
| Make a prediction. More... | |
| virtual Eigen::MatrixXd | operator() (const Eigen::MatrixXd &X) |
| Make predictions. More... | |
| virtual unsigned int | dimension () |
| Request the number of optimizable parameters. More... | |
| virtual const Eigen::VectorXd & | currentParameters () |
| Request the current parameters. More... | |
| virtual void | setParameters (const Eigen::VectorXd ¶meters) |
| Set new parameters. More... | |
| virtual bool | providesInitialization () |
| Check if the object knows how to initialize its parameters. More... | |
| virtual void | initialize () |
| Initialize the optimizable parameters. More... | |
| virtual unsigned int | examples () |
| Request number of training examples. More... | |
| virtual double | error (unsigned int n) |
| virtual double | error () |
| Compute error on training set. More... | |
| virtual bool | providesGradient () |
| Check if the object provides a gradient of the error function with respect to its parameters. More... | |
| virtual Eigen::VectorXd | gradient (unsigned int n) |
| virtual Eigen::VectorXd | gradient () |
| Compute gradient of the error function with respect to the parameters. More... | |
| virtual void | errorGradient (int n, double &value, Eigen::VectorXd &grad) |
| Calculates the function value and gradient of a training example. More... | |
| virtual void | errorGradient (double &value, Eigen::VectorXd &grad) |
| Calculates the function value and gradient of all training examples. More... | |
| virtual void | errorGradient (std::vector< int >::const_iterator startN, std::vector< int >::const_iterator endN, double &value, Eigen::VectorXd &grad) |
| Calculates the accumulated gradient and error of given training examples. More... | |
| virtual void | finishedIteration () |
| This callback is called after each optimization algorithm iteration. More... | |
Public Member Functions inherited from OpenANN::Learner | |
| Learner () | |
| virtual | ~Learner () |
| virtual Learner & | trainingSet (Eigen::MatrixXd &input, Eigen::MatrixXd &output) |
| Set training set. More... | |
| virtual Learner & | trainingSet (DataSet &trainingSet) |
| Set training set. More... | |
| virtual Learner & | removeTrainingSet () |
| Remove the training set from the learner. More... | |
| virtual Learner & | validationSet (Eigen::MatrixXd &input, Eigen::MatrixXd &output) |
| Set validation set. More... | |
| virtual Learner & | validationSet (DataSet &validationSet) |
| Set validation set. More... | |
| virtual Learner & | removeValidationSet () |
| Remove the validation set from the learner. More... | |
Public Member Functions inherited from OpenANN::Optimizable | |
| virtual | ~Optimizable () |
| virtual double | error (unsigned n) |
| Compute error of a given training example. More... | |
| virtual Eigen::VectorXd | gradient (unsigned n) |
| Compute gradient of a given training example. More... | |
| virtual Eigen::VectorXd | error (std::vector< int >::const_iterator startN, std::vector< int >::const_iterator endN) |
| Calculates the errors of given training examples. More... | |
| virtual Eigen::VectorXd | gradient (std::vector< int >::const_iterator startN, std::vector< int >::const_iterator endN) |
| Calculates the accumulated gradient of given training examples. More... | |
Protected Member Functions | |
| void | initializeNetwork () |
| void | forwardPropagate (double *error) |
| void | backpropagate () |
Protected Attributes | |
| std::vector< OutputInfo > | infos |
| std::vector< Layer * > | layers |
| std::vector< double * > | parameters |
| std::vector< double * > | derivatives |
| Regularization | regularization |
| ErrorFunction | errorFunction |
| bool | dropout |
| bool | initialized |
| int | P |
| int | L |
| Eigen::VectorXd | parameterVector |
| Eigen::VectorXd | tempGradient |
| Eigen::MatrixXd | tempInput |
| Eigen::MatrixXd | tempOutput |
| Eigen::MatrixXd | tempError |
| std::stringstream | architecture |
Protected Attributes inherited from OpenANN::Learner | |
| DataSet * | trainSet |
| DataSet * | validSet |
| bool | deleteTrainSet |
| bool | deleteValidSet |
| int | N |
Feedforward multilayer neural network.
You can specify many different types of layers and choose the architecture almost arbitrary.
| OpenANN::Net::Net | ( | ) |
Create feedforward neural network.
|
virtual |
| Net& OpenANN::Net::alphaBetaFilterLayer | ( | double | deltaT, |
| double | stdDev = 0.05 |
||
| ) |
Add a alpha-beta filter layer.
| deltaT | temporal difference between two steps |
| stdDev | standard deviation of the Gaussian distributed initial weights |
|
protected |
| Net& OpenANN::Net::compressedLayer | ( | int | units, |
| int | params, | ||
| ActivationFunction | act, | ||
| const std::string & | compression, | ||
| double | stdDev = 0.05, |
||
| bool | bias = true |
||
| ) |
Add a compressed fully connected hidden layer.
| units | number of nodes (neurons) |
| params | number of parameters to represent the incoming weights of a neuron in this layer |
| act | activation function |
| compression | type of compression matrix, possible values are dct, gaussian, sparse, average, edge |
| stdDev | standard deviation of the Gaussian distributed initial weights |
| bias | add bias term |
| Net& OpenANN::Net::compressedOutputLayer | ( | int | units, |
| int | params, | ||
| ActivationFunction | act, | ||
| const std::string & | compression, | ||
| double | stdDev = 0.05, |
||
| bool | bias = true |
||
| ) |
Add a compressed output layer.
This will initialize the network.
| units | number of nodes (neurons) |
| params | number of parameters to represent the incoming weights of a neuron in this layer |
| act | activation function |
| compression | type of compression matrix, possible values are dct, gaussian, sparse, average, edge |
| stdDev | standard deviation of the Gaussian distributed initial weights |
| bias | add bias term |
| Net& OpenANN::Net::convolutionalLayer | ( | int | featureMaps, |
| int | kernelRows, | ||
| int | kernelCols, | ||
| ActivationFunction | act, | ||
| double | stdDev = 0.05, |
||
| bool | bias = true |
||
| ) |
Add a convolutional layer.
| featureMaps | number of feature maps |
| kernelRows | number of kernel rows |
| kernelCols | number of kernel columns |
| act | activation function |
| stdDev | standard deviation of the Gaussian distributed initial weights |
| bias | add bias term |
|
virtual |
|
virtual |
Request the number of optimizable parameters.
Implements OpenANN::Optimizable.
| Net& OpenANN::Net::dropoutLayer | ( | double | dropoutProbability) |
Add a dropout layer.
| dropoutProbability | probability of suppression during training |
|
virtual |
|
virtual |
Compute error on training set.
Implements OpenANN::Optimizable.
|
virtual |
Calculates the function value and gradient of a training example.
| n | index of training example |
| value | function value |
| grad | gradient of the function, lenght must be dimension() |
Reimplemented from OpenANN::Optimizable.
|
virtual |
Calculates the function value and gradient of all training examples.
| value | function value |
| grad | gradient of the function, lenght must be dimension() |
Reimplemented from OpenANN::Optimizable.
|
virtual |
Calculates the accumulated gradient and error of given training examples.
| startN | iterator over index vector |
| endN | iterator over index vector |
| value | function value |
| grad | gradient of the function, lenght must be dimension() |
Reimplemented from OpenANN::Optimizable.
|
virtual |
Request number of training examples.
Reimplemented from OpenANN::Optimizable.
| Net& OpenANN::Net::extremeLayer | ( | int | units, |
| ActivationFunction | act, | ||
| double | stdDev = 5.0, |
||
| bool | bias = true |
||
| ) |
Add a fully connected hidden layer with fixed weights.
| units | number of nodes (neurons) |
| act | activation function |
| stdDev | standard deviation of the Gaussian distributed initial weights |
| bias | add bias term |
|
virtual |
This callback is called after each optimization algorithm iteration.
Reimplemented from OpenANN::Optimizable.
|
protected |
| Net& OpenANN::Net::fullyConnectedLayer | ( | int | units, |
| ActivationFunction | act, | ||
| double | stdDev = 0.05, |
||
| bool | bias = true |
||
| ) |
Add a fully connected hidden layer.
| units | number of nodes (neurons) |
| act | activation function |
| stdDev | standard deviation of the Gaussian distributed initial weights |
| bias | add bias term |
| Layer& OpenANN::Net::getLayer | ( | unsigned int | l) |
Access layer.
| l | index of layer |
| OutputInfo OpenANN::Net::getOutputInfo | ( | unsigned int | l) |
Request information about output of a given layer.
| l | index of the layer |
|
virtual |
|
virtual |
Compute gradient of the error function with respect to the parameters.
Implements OpenANN::Optimizable.
|
virtual |
Initialize the optimizable parameters.
Implements OpenANN::Optimizable.
|
protected |
| Net& OpenANN::Net::inputLayer | ( | int | dim1, |
| int | dim2 = 1, |
||
| int | dim3 = 1 |
||
| ) |
Add an input layer.
| dim1 | first dimension of the input, e. g. number of color channels of an image |
| dim2 | second dimension, e. g. number of rows of an image |
| dim3 | third dimension, e. g. number of columns of an image |
| Net& OpenANN::Net::intrinsicPlasticityLayer | ( | double | targetMean, |
| double | stdDev = 1.0 |
||
| ) |
Add an intrinsic plasticity layer that is able to learn the parameters of a logistic activation function.
| targetMean | desired mean of the output distribution, must be within [0, 1], e.g. 0.2 |
| stdDev | standard deviation of the Gaussian distributed initial biases |
| void OpenANN::Net::load | ( | const std::string & | fileName) |
Load network from file.
| fileName | name of the file |
| void OpenANN::Net::load | ( | std::istream & | stream) |
Load network from stream.
| stream | input stream |
| Net& OpenANN::Net::localReponseNormalizationLayer | ( | double | k, |
| int | n, | ||
| double | alpha, | ||
| double | beta | ||
| ) |
Add a local response normalization layer.
| k | hyperparameter, k >= 1, e.g. 1 or 2 |
| n | number of adjacent feature maps |
| alpha | controls strength of inhibition, alpha > 0, e.g. 1e-4 |
| beta | controls strength of inhibition, beta > 0, e.g. 0.75 |
| Net& OpenANN::Net::maxPoolingLayer | ( | int | kernelRows, |
| int | kernelCols | ||
| ) |
Add a max-pooling layer.
| kernelRows | number of kernel rows |
| kernelCols | number of kernel columns |
| unsigned int OpenANN::Net::numberOflayers | ( | ) |
Request number of layers.
|
virtual |
|
virtual |
Make predictions.
| X | Each row represents an input vector. |
Implements OpenANN::Learner.
| Net& OpenANN::Net::outputLayer | ( | int | units, |
| ActivationFunction | act, | ||
| double | stdDev = 0.05, |
||
| bool | bias = true |
||
| ) |
Add a fully connected output layer.
This will initialize the network.
| units | number of nodes (neurons) |
| act | activation function |
| stdDev | standard deviation of the Gaussian distributed initial weights |
| bias | add bias term |
Propagate data set through the first l layers.
| dataSet | original dataset |
| l | index of the layer |
|
virtual |
Check if the object provides a gradient of the error function with respect to its parameters.
Implements OpenANN::Optimizable.
|
virtual |
Check if the object knows how to initialize its parameters.
Implements OpenANN::Optimizable.
| Net& OpenANN::Net::restrictedBoltzmannMachineLayer | ( | int | H, |
| int | cdN = 1, |
||
| double | stdDev = 0.01, |
||
| bool | backprop = true |
||
| ) |
Add a layer that contains an RBM.
| H | number of nodes (neurons) |
| cdN | number of gibbs sampling steps for pretraining |
| stdDev | standard deviation of the Gaussian distributed initial weights |
| backprop | finetune weights with backpropagation |
| void OpenANN::Net::save | ( | const std::string & | fileName) |
Save network.
| fileName | name of the file |
| void OpenANN::Net::save | ( | std::ostream & | stream) |
Save network.
| stream | output stream |
| Net& OpenANN::Net::setErrorFunction | ( | ErrorFunction | errorFunction) |
Set the error function.
| errorFunction | error function |
|
virtual |
| Net& OpenANN::Net::setRegularization | ( | double | l1Penalty = 0.0, |
| double | l2Penalty = 0.0, |
||
| double | maxSquaredWeightNorm = 0.0 |
||
| ) |
| Net& OpenANN::Net::sparseAutoEncoderLayer | ( | int | H, |
| double | beta, | ||
| double | rho, | ||
| ActivationFunction | act | ||
| ) |
Add a sparse auto-encoder.
| H | number of outputs |
| beta | weight of sparsity |
| rho | desired mean activation of hidden neurons |
| act | activation function of the hidden layer |
| Net& OpenANN::Net::subsamplingLayer | ( | int | kernelRows, |
| int | kernelCols, | ||
| ActivationFunction | act, | ||
| double | stdDev = 0.05, |
||
| bool | bias = true |
||
| ) |
Add a subsampling layer.
| kernelRows | number of kernel rows |
| kernelCols | number of kernel columns |
| act | activation function |
| stdDev | standard deviation of the Gaussian distributed initial weights |
| bias | add bias term |
| Net& OpenANN::Net::useDropout | ( | bool | activate = true) |
Toggle dropout.
| activate | turn dropout on or off |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
1.8.4