SHOGUN  4.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
RmsPropUpdater Class Reference

Detailed Description

The class implements the RmsProp method.

\[ \begin{array}{l} g_\theta=(1-\lambda){(\frac{ \partial f(\cdot) }{\partial \theta })}^2+\lambda g_\theta\\ d_\theta=\alpha\frac{1}{\sqrt{g_\theta+\epsilon}}\frac{ \partial f(\cdot) }{\partial \theta }\\ \end{array} \]

where \( \frac{ \partial f(\cdot) }{\partial \theta } \) is a negative descend direction (eg, gradient) wrt \(\theta\), \(\lambda\) is a decay factor, \(\epsilon\) is used to avoid dividing by 0, \( \alpha \) is a build-in learning rate \(d_\theta\) is a corrected negative descend direction.

where \(\lambda\) is a learning rate.

Definition at line 56 of file RmsPropUpdater.h.

Inheritance diagram for RmsPropUpdater:
Inheritance graph
[legend]

Public Member Functions

 RmsPropUpdater ()
 
 RmsPropUpdater (float64_t learning_rate, float64_t epsilon, float64_t decay_factor)
 
virtual ~RmsPropUpdater ()
 
virtual void set_learning_rate (float64_t learning_rate)
 
virtual void set_epsilon (float64_t epsilon)
 
virtual void set_decay_factor (float64_t decay_factor)
 
virtual void update_context (CMinimizerContext *context)
 
virtual void load_from_context (CMinimizerContext *context)
 
virtual void update_variable (SGVector< float64_t > variable_reference, SGVector< float64_t > raw_negative_descend_direction, float64_t learning_rate)
 
virtual void set_descend_correction (DescendCorrection *correction)
 
virtual bool enables_descend_correction ()
 

Protected Member Functions

virtual float64_t get_negative_descend_direction (float64_t variable, float64_t gradient, index_t idx, float64_t learning_rate)
 

Protected Attributes

float64_t m_build_in_learning_rate
 
float64_t m_epsilon
 
float64_t m_decay_factor
 
SGVector< float64_tm_gradient_accuracy
 
DescendCorrectionm_correction
 

Constructor & Destructor Documentation

Definition at line 36 of file RmsPropUpdater.cpp.

RmsPropUpdater ( float64_t  learning_rate,
float64_t  epsilon,
float64_t  decay_factor 
)

Parameterized Constructor

Parameters
learning_ratelearning_rate
epsilonepsilon
decay_factordecay_factor

Definition at line 42 of file RmsPropUpdater.cpp.

~RmsPropUpdater ( )
virtual

Definition at line 73 of file RmsPropUpdater.cpp.

Member Function Documentation

virtual bool enables_descend_correction ( )
virtualinherited

Do we enable descend correction?

Returns
whether we enable descend correction

Definition at line 145 of file DescendUpdaterWithCorrection.h.

float64_t get_negative_descend_direction ( float64_t  variable,
float64_t  gradient,
index_t  idx,
float64_t  learning_rate 
)
protectedvirtual

Get the negative descend direction given current variable and gradient

It will be called at update_variable()

Parameters
variablecurrent variable (eg, \(\theta\))
gradientcurrent gradient (eg, \( \frac{ \partial f(\cdot) }{\partial \theta }\))
idxthe index of the variable
learning_ratelearning rate (for RmsProp, learning_rate is NOT used because there is a build-in learning_rate)
Returns
negative descend direction (that is, \(d_\theta\))

Implements DescendUpdaterWithCorrection.

Definition at line 107 of file RmsPropUpdater.cpp.

void load_from_context ( CMinimizerContext context)
virtual

Return a context object which stores mutable variables Usually it is used in serialization.

This method will be called by FirstOrderMinimizer::load_from_context(CMinimizerContext* context)

Returns
a context object

Reimplemented from DescendUpdaterWithCorrection.

Definition at line 96 of file RmsPropUpdater.cpp.

void set_decay_factor ( float64_t  decay_factor)
virtual

Set decay_factor

Parameters
decay_factordecay factor

Definition at line 65 of file RmsPropUpdater.cpp.

virtual void set_descend_correction ( DescendCorrection correction)
virtualinherited

Set the type of descend correction

Parameters
correctionthe type of descend correction

Definition at line 135 of file DescendUpdaterWithCorrection.h.

void set_epsilon ( float64_t  epsilon)
virtual

Set epsilon

Parameters
epsilonepsilon

Definition at line 58 of file RmsPropUpdater.cpp.

void set_learning_rate ( float64_t  learning_rate)
virtual

Set learning rate

Parameters
learning_ratelearning rate

Definition at line 51 of file RmsPropUpdater.cpp.

void update_context ( CMinimizerContext context)
virtual

Update a context object to store mutable variables

This method will be called by FirstOrderMinimizer::save_to_context()

Parameters
contexta context object

Reimplemented from DescendUpdaterWithCorrection.

Definition at line 84 of file RmsPropUpdater.cpp.

void update_variable ( SGVector< float64_t variable_reference,
SGVector< float64_t raw_negative_descend_direction,
float64_t  learning_rate 
)
virtual

Update the target variable based on the given negative descend direction

Note that this method will update the target variable in place. This method will be called by FirstOrderMinimizer::minimize()

Parameters
variable_referencea reference of the target variable
raw_negative_descend_directionthe negative descend direction given the current value
learning_ratelearning rate

Reimplemented from DescendUpdaterWithCorrection.

Definition at line 119 of file RmsPropUpdater.cpp.

Member Data Documentation

float64_t m_build_in_learning_rate
protected

learning_rate \(\alpha\) at iteration

Definition at line 137 of file RmsPropUpdater.h.

DescendCorrection* m_correction
protectedinherited

descend correction object

Definition at line 165 of file DescendUpdaterWithCorrection.h.

float64_t m_decay_factor
protected

decay term \( \lambda \)

Definition at line 143 of file RmsPropUpdater.h.

float64_t m_epsilon
protected

\( \epsilon \)

Definition at line 140 of file RmsPropUpdater.h.

SGVector<float64_t> m_gradient_accuracy
protected

\( g_\theta \)

Definition at line 146 of file RmsPropUpdater.h.


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

SHOGUN Machine Learning Toolbox - Documentation