![]() |
OpenANN
1.1.0
An open source library for artificial neural networks.
|
Local response normalization. More...
#include <LocalResponseNormalization.h>
Inheritance diagram for OpenANN::LocalResponseNormalization: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.
1.8.4