MachineIntelligenceCore:NeuralNets
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
mic::neural_nets::learning::NormalizedHebbianRule< eT > Class Template Reference

Updates according to classical Hebbian rule (wij += ni * x * y) with additional normalization. More...

#include <NormalizedHebbianRule.hpp>

Inheritance diagram for mic::neural_nets::learning::NormalizedHebbianRule< eT >:
Collaboration diagram for mic::neural_nets::learning::NormalizedHebbianRule< eT >:

Public Member Functions

 NormalizedHebbianRule (size_t rows_, size_t cols_)
 
virtual ~NormalizedHebbianRule ()
 
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 > y_, eT learning_rate_)
 
- Public Member Functions inherited from mic::neural_nets::optimization::OptimizationFunction< eT >
 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)
 

Protected Attributes

mic::types::MatrixPtr< eT > delta
 Calculated update. More...
 

Detailed Description

template<typename eT = float>
class mic::neural_nets::learning::NormalizedHebbianRule< eT >

Updates according to classical Hebbian rule (wij += ni * x * y) with additional normalization.

Author
tkornuta
tkornuta

Definition at line 44 of file NormalizedHebbianRule.hpp.

Constructor & Destructor Documentation

template<typename eT = float>
mic::neural_nets::learning::NormalizedHebbianRule< eT >::NormalizedHebbianRule ( size_t  rows_,
size_t  cols_ 
)
inline

Constructor. Sets dimensions, momentum rates (beta1=0.9 and beta2=0.999) and eps(default=1e-8).

Parameters
rows_Number of rows of the updated matrix/its gradient.
cols_Number of columns of the updated matrix/its gradient.

Definition at line 51 of file NormalizedHebbianRule.hpp.

References mic::neural_nets::learning::NormalizedHebbianRule< eT >::delta.

template<typename eT = float>
virtual mic::neural_nets::learning::NormalizedHebbianRule< eT >::~NormalizedHebbianRule ( )
inlinevirtual

Definition at line 58 of file NormalizedHebbianRule.hpp.

Member Function Documentation

template<typename eT = float>
virtual mic::types::MatrixPtr<eT> mic::neural_nets::learning::NormalizedHebbianRule< eT >::calculateUpdate ( mic::types::MatrixPtr< eT >  x_,
mic::types::MatrixPtr< eT >  y_,
eT  learning_rate_ 
)
inlinevirtual

Calculates the update according to the hebbian rule.

Parameters
x_Pointer to the input data matrix.
y_Pointer to the output data matrix.
learning_rate_Learning rate (default=0.001).

Implements mic::neural_nets::optimization::OptimizationFunction< eT >.

Definition at line 93 of file NormalizedHebbianRule.hpp.

References mic::neural_nets::learning::NormalizedHebbianRule< eT >::delta.

Referenced by mic::neural_nets::learning::NormalizedHebbianRule< eT >::update().

template<typename eT = float>
virtual void mic::neural_nets::learning::NormalizedHebbianRule< eT >::update ( mic::types::MatrixPtr< eT >  p_,
mic::types::MatrixPtr< eT >  x_,
mic::types::MatrixPtr< eT >  y_,
eT  learning_rate_ = 0.001 
)
inlinevirtual

Updates the weight matrix according to the hebbian rule with normalization (l2 norm).

Parameters
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 from mic::neural_nets::optimization::OptimizationFunction< eT >.

Definition at line 68 of file NormalizedHebbianRule.hpp.

References mic::neural_nets::learning::NormalizedHebbianRule< eT >::calculateUpdate(), and mic::neural_nets::learning::NormalizedHebbianRule< eT >::delta.

Here is the call graph for this function:

Member Data Documentation


The documentation for this class was generated from the following file: