MachineIntelligenceCore:NeuralNets
|
Abstract class representing interface to optimization function. More...
#include <OptimizationFunction.hpp>
Public Member Functions | |
OptimizationFunction () | |
virtual | ~OptimizationFunction () |
Virtual destructor - empty. More... | |
virtual void | update (mic::types::MatrixPtr< eT > p_, mic::types::MatrixPtr< eT > dp_, eT learning_rate_, eT decay_=0.0) |
virtual void | update (mic::types::MatrixPtr< eT > p_, mic::types::MatrixPtr< eT > x_, mic::types::MatrixPtr< eT > y_, eT learning_rate_=0.001) |
virtual mic::types::MatrixPtr< eT > | calculateUpdate (mic::types::MatrixPtr< eT > x_, mic::types::MatrixPtr< eT > dx_, eT learning_rate_)=0 |
Abstract class representing interface to optimization function.
eT | Template type (single/double precision) |
Definition at line 41 of file OptimizationFunction.hpp.
|
inline |
Constructor. Remembers dimensions.
Definition at line 46 of file OptimizationFunction.hpp.
|
inlinevirtual |
Virtual destructor - empty.
Definition at line 49 of file OptimizationFunction.hpp.
|
pure virtual |
Abstract method responsible for calculating the update.
x_ | Pointer to the current matrix (parameter) OR Pointer to current input matrix (in Hebbian learning). |
dx_ | Pointer to current gradient of that matrix (parameter) OR Pointer to current output matrix (in Hebbian learning). |
learning_rate_ | Learning rate. |
Implemented in mic::neural_nets::optimization::AdaGradPID< eT >, mic::neural_nets::learning::NormalizedHebbianRule< eT >, mic::neural_nets::learning::NormalizedZerosumHebbianRule< eT >, mic::neural_nets::optimization::GradPID< eT >, mic::neural_nets::optimization::AdamID< eT >, mic::neural_nets::optimization::Adam< eT >, mic::neural_nets::optimization::AdaDelta< eT >, mic::neural_nets::learning::BinaryCorrelatorLearningRule< eT >, mic::neural_nets::learning::HebbianRule< eT >, mic::neural_nets::optimization::AdaGrad< eT >, mic::neural_nets::optimization::RMSProp< eT >, mic::neural_nets::optimization::GradientDescent< eT >, and mic::neural_nets::optimization::Momentum< eT >.
Referenced by mic::neural_nets::optimization::OptimizationFunction< eT >::update().
|
inlinevirtual |
Method responsible for performing the update using backpropagation and gradient descent. Calls abstract method calculateUpdate().
p_ | Pointer to the current parameter (matrix). |
dp_ | Pointer to current gradient of that parameter (matrix). |
learning_rate_ | Learning rate. |
decay_ | Weight decay rate (determining that the "unused/unupdated" weights will decay to 0) (DEFAULT = 0.0 means "no decay"). |
Definition at line 58 of file OptimizationFunction.hpp.
References mic::neural_nets::optimization::OptimizationFunction< eT >::calculateUpdate().
Referenced by TEST_F().
|
inlinevirtual |
Updates the weight matrix according to the hebbian rule.
p_ | Pointer to the parameter (weight) matrix. |
x_ | Pointer to the input data matrix. |
y_ | Pointer to the output data matrix. |
learning_rate_ | Learning rate (default=0.001). |
Reimplemented in mic::neural_nets::learning::NormalizedHebbianRule< eT >, and mic::neural_nets::learning::NormalizedZerosumHebbianRule< eT >.
Definition at line 78 of file OptimizationFunction.hpp.
References mic::neural_nets::optimization::OptimizationFunction< eT >::calculateUpdate().