OpenANN
1.1.0
An open source library for artificial neural networks.
|
Local response normalization. More...
#include <LocalResponseNormalization.h>
Public Member Functions | |
LocalResponseNormalization (OutputInfo info, double k, int n, double alpha, double beta) | |
virtual OutputInfo | initialize (std::vector< double * > ¶meterPointers, std::vector< double * > ¶meterDerivativePointers) |
Fill in the parameter pointers and parameter derivative pointers. More... | |
virtual void | initializeParameters () |
Initialize the parameters. More... | |
virtual void | updatedParameters () |
Generate internal parameters from externally visible parameters. More... | |
virtual void | forwardPropagate (Eigen::MatrixXd *x, Eigen::MatrixXd *&y, bool dropout, double *error=0) |
Forward propagation in this layer. More... | |
virtual void | backpropagate (Eigen::MatrixXd *ein, Eigen::MatrixXd *&eout, bool backpropToPrevious) |
Backpropagation in this layer. More... | |
virtual Eigen::MatrixXd & | getOutput () |
Output after last forward propagation. More... | |
virtual Eigen::VectorXd | getParameters () |
Get the current values of parameters (weights, biases, ...). More... | |
Public Member Functions inherited from OpenANN::Layer | |
virtual | ~Layer () |
Local response normalization.
This layer encourages the competition between neurons at the same spatial positions. It implements a form of lateral inhibition that is found in real neurons. It can be interpreted as "brightness normalization" in visual models [1].
It requires a three-dimensional input so that we can calculate the output as
where i is the index of the feature map (or filter bank), r is the row, and c the column of the neuron respectively, N is the number of feature maps and are hyperparameters that have to be found with a validation set. A reasonable choice is e.g. [1].
[1] Krizhevsky, Alexander, Sutskever, Ilya and Hinton, Geoffrey E.: ImageNet Classification with Deep Convolutional Neural Networks, Advances in Neural Information Processing Systems 25, pp. 1106–1114, 2012.
[2] Hinton, G. E., Srivastava, N., Krizhevsky, A., Sutskever, I. and Salakhutdinov, R. R.: Improving neural networks by preventing co-adaptation of feature detectors, 2012.
OpenANN::LocalResponseNormalization::LocalResponseNormalization | ( | OutputInfo | info, |
double | k, | ||
int | n, | ||
double | alpha, | ||
double | beta | ||
) |
|
virtual |
Backpropagation in this layer.
ein | pointer to error signal of the higher layer |
eout | returns a pointer to error signal of the layer (derivative of the error with respect to the input) |
backpropToPrevious | backpropagate errors to previous layers |
Implements OpenANN::Layer.
|
virtual |
Forward propagation in this layer.
x | pointer to input of the layer (with bias) |
y | returns a pointer to output of the layer |
dropout | enable dropout for regularization |
error | error value, will be updated with regularization terms |
Implements OpenANN::Layer.
|
virtual |
|
virtual |
Get the current values of parameters (weights, biases, ...).
Implements OpenANN::Layer.
|
virtual |
Fill in the parameter pointers and parameter derivative pointers.
parameterPointers | pointers to parameters |
parameterDerivativePointers | pointers to derivatives of parameters |
Implements OpenANN::Layer.
|
inlinevirtual |
Initialize the parameters.
This is usually called before each optimization.
Implements OpenANN::Layer.
|
inlinevirtual |
Generate internal parameters from externally visible parameters.
This is usually called after each parameter update.
Implements OpenANN::Layer.