OpenNN::TrainingRateAlgorithm Class Reference

#include <training_rate_algorithm.h>

List of all members.

Public Types

enum  TrainingRateMethod { Fixed, GoldenSection, BrentMethod }

Public Member Functions

 TrainingRateAlgorithm (void)
 TrainingRateAlgorithm (PerformanceFunctional *)
 TrainingRateAlgorithm (TiXmlElement *)
virtual ~TrainingRateAlgorithm (void)
PerformanceFunctionalget_performance_functional_pointer (void)
const TrainingRateMethodget_training_rate_method (void) const
std::string write_training_rate_method (void) const
const double & get_first_training_rate (void) const
const double & get_bracketing_factor (void) const
const double & get_training_rate_tolerance (void) const
const double & get_warning_training_rate (void) const
const double & get_error_training_rate (void) const
const bool & get_display (void) const
void set (void)
void set (PerformanceFunctional *)
void set_performance_functional_pointer (PerformanceFunctional *)
void set_training_rate_method (const TrainingRateMethod &)
void set_training_rate_method (const std::string &)
void set_first_training_rate (const double &)
void set_bracketing_factor (const double &)
void set_training_rate_tolerance (const double &)
void set_warning_training_rate (const double &)
void set_error_training_rate (const double &)
void set_display (const bool &)
virtual void set_default (void)
double calculate_golden_section_training_rate (const Vector< double > &, const Vector< double > &, const Vector< double > &) const
double calculate_Brent_method_training_rate (const Vector< double > &, const Vector< double > &, const Vector< double > &) const
Vector< Vector< double > > calculate_bracketing_training_rate (const double &, const Vector< double > &, const double &) const
Vector< double > calculate_fixed_directional_point (const double &, const Vector< double > &, const double &) const
Vector< double > calculate_golden_section_directional_point (const double &, const Vector< double > &, const double &) const
Vector< double > calculate_Brent_method_directional_point (const double &, const Vector< double > &, const double &) const
Vector< double > calculate_directional_point (const double &, const Vector< double > &, const double &) const
virtual TiXmlElement * to_XML (void) const
virtual void from_XML (TiXmlElement *)

Protected Attributes

PerformanceFunctionalperformance_functional_pointer
TrainingRateMethod training_rate_method
double bracketing_factor
double first_training_rate
double training_rate_tolerance
double warning_training_rate
double error_training_rate
bool display


Detailed Description

This class is used by many different training algorithms to calculate the training rate given a training direction. It implements the golden section method and the Brent's methods.

Definition at line 34 of file training_rate_algorithm.h.


Member Enumeration Documentation

Available training operators for obtaining the perform_training rate.

Definition at line 43 of file training_rate_algorithm.h.


Constructor & Destructor Documentation

OpenNN::TrainingRateAlgorithm::TrainingRateAlgorithm ( void   )  [explicit]

Default constructor. It creates a training rate algorithm object not associated to any performance functional object. It also initializes the class members to their default values.

Definition at line 43 of file training_rate_algorithm.cpp.

OpenNN::TrainingRateAlgorithm::TrainingRateAlgorithm ( PerformanceFunctional new_performance_functional_pointer  )  [explicit]

General constructor. It creates a training rate algorithm associated to a performance functional. It also initializes the class members to their default values.

Parameters:
new_performance_functional_pointer Pointer to a performance functional object.

Definition at line 57 of file training_rate_algorithm.cpp.

OpenNN::TrainingRateAlgorithm::TrainingRateAlgorithm ( TiXmlElement *  training_rate_algorithm_element  )  [explicit]

XML constructor. It creates a training rate algorithm object not associated to any performance functional object. It also loads the class members from a XML element.

Definition at line 71 of file training_rate_algorithm.cpp.

OpenNN::TrainingRateAlgorithm::~TrainingRateAlgorithm ( void   )  [virtual]

Destructor.

Definition at line 82 of file training_rate_algorithm.cpp.


Member Function Documentation

PerformanceFunctional * OpenNN::TrainingRateAlgorithm::get_performance_functional_pointer ( void   ) 

This method returns a pointer to the performance functional object to which the training algorithm is associated.

Definition at line 94 of file training_rate_algorithm.cpp.

const TrainingRateAlgorithm::TrainingRateMethod & OpenNN::TrainingRateAlgorithm::get_training_rate_method ( void   )  const

This method returns the training rate method used for training.

Definition at line 104 of file training_rate_algorithm.cpp.

std::string OpenNN::TrainingRateAlgorithm::write_training_rate_method ( void   )  const

This method returns a string with the name of the training rate method to be used.

Definition at line 114 of file training_rate_algorithm.cpp.

const double & OpenNN::TrainingRateAlgorithm::get_first_training_rate ( void   )  const

This method returns the initial training rate value in line minimization.

Definition at line 155 of file training_rate_algorithm.cpp.

const double & OpenNN::TrainingRateAlgorithm::get_bracketing_factor ( void   )  const

This method returns the increase factor when bracketing a minimum in line minimization.

Definition at line 165 of file training_rate_algorithm.cpp.

const double & OpenNN::TrainingRateAlgorithm::get_training_rate_tolerance ( void   )  const

This method returns the tolerance value in line minimization.

Definition at line 175 of file training_rate_algorithm.cpp.

const double & OpenNN::TrainingRateAlgorithm::get_warning_training_rate ( void   )  const

This method returns the training rate value at wich a warning message is written to the screen during line minimization.

Definition at line 186 of file training_rate_algorithm.cpp.

const double & OpenNN::TrainingRateAlgorithm::get_error_training_rate ( void   )  const

This method returns the training rate value at wich the line minimization algorithm is assumed to fail when bracketing a minimum.

Definition at line 197 of file training_rate_algorithm.cpp.

const bool & OpenNN::TrainingRateAlgorithm::get_display ( void   )  const

This method returns true if messages from this class can be displayed on the screen, or false if messages from this class can't be displayed on the screen.

Definition at line 208 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set ( void   ) 

This method sets the performance functional pointer to NULL. It also sets the rest of members to their default values.

Definition at line 219 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set ( PerformanceFunctional new_performance_functional_pointer  ) 

This method sets a new performance functional pointer. It also sets the rest of members to their default values.

Parameters:
new_performance_functional_pointer Pointer to a performance functional object.

Definition at line 232 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set_performance_functional_pointer ( PerformanceFunctional new_performance_functional_pointer  ) 

This method sets a pointer to a performance functional object to be associated to the training algorithm.

Parameters:
new_performance_functional_pointer Pointer to a performance functional object.

Definition at line 271 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set_training_rate_method ( const TrainingRateMethod new_training_rate_method  ) 

This method sets a new training rate method to be used for training.

Parameters:
new_training_rate_method Training rate method.

Definition at line 282 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set_training_rate_method ( const std::string &  new_training_rate_method  ) 

This method sets the method for obtaining the training rate from a string with the name of the method.

Parameters:
new_training_rate_method Name of training rate method ("Fixed", "GoldenSection", "BrentMethod" or "UserTrainingRate").

Definition at line 293 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set_first_training_rate ( const double &  new_first_training_rate  ) 

This method sets a new value to be used as an initial training rate in line minimization.

Parameters:
new_first_training_rate Initial training rate value.

Definition at line 325 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set_bracketing_factor ( const double &  new_bracketing_factor  ) 

This method sets a new increase factor value to be used for line minimization when bracketing a minimum.

Parameters:
new_bracketing_factor Bracketing factor value.

Definition at line 355 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set_training_rate_tolerance ( const double &  new_training_rate_tolerance  ) 

This method sets a new tolerance value to be used in line minimization.

Parameters:
new_training_rate_tolerance Tolerance value in line minimization.

Definition at line 383 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set_warning_training_rate ( const double &  new_warning_training_rate  ) 

This method sets a new training rate value at wich a warning message is written to the screen during line minimization.

Parameters:
new_warning_training_rate Warning training rate value.

Definition at line 414 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set_error_training_rate ( const double &  new_error_training_rate  ) 

This method sets a new training rate value at wich a the line minimization algorithm is assumed to fail when bracketing a minimum.

Parameters:
new_error_training_rate Error training rate value.

Definition at line 443 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set_display ( const bool &  new_display  ) 

This method sets a new display value. If it is set to true messages from this class are to be displayed on the screen; if it is set to false messages from this class are not to be displayed on the screen.

Parameters:
new_display Display value.

Definition at line 475 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::set_default ( void   )  [virtual]

This method sets the members of the training rate algorithm to their default values.

Definition at line 243 of file training_rate_algorithm.cpp.

double OpenNN::TrainingRateAlgorithm::calculate_golden_section_training_rate ( const Vector< double > &  A,
const Vector< double > &  U,
const Vector< double > &  B 
) const

This method calculates the golden section point within a minimum interval defined by three points.

Parameters:
A Left point of the interval.
U Interior point of the interval.
B Right point of the interval.

Definition at line 946 of file training_rate_algorithm.cpp.

double OpenNN::TrainingRateAlgorithm::calculate_Brent_method_training_rate ( const Vector< double > &  A,
const Vector< double > &  B,
const Vector< double > &  C 
) const

This method returns the minimimal training rate of a parabola defined by three directional points.

Parameters:
A Left point of the interval.
B Interior point of the interval.
C Right point of the interval.

Definition at line 968 of file training_rate_algorithm.cpp.

Vector< Vector< double > > OpenNN::TrainingRateAlgorithm::calculate_bracketing_training_rate ( const double &  performance,
const Vector< double > &  training_direction,
const double &  initial_training_rate 
) const

This method returns a vector with two elements, a bracketing training rate for the optimum, and the performance for that training rate. This algorithm is used by line minimization algorithms.

Parameters:
performance Initial performance function performance.
training_direction Initial training direction.
initial_training_rate Initial training rate to start the algorithm.

Definition at line 567 of file training_rate_algorithm.cpp.

Vector< double > OpenNN::TrainingRateAlgorithm::calculate_fixed_directional_point ( const double &  ,
const Vector< double > &  training_direction,
const double &   
) const

This method returns a vector with two elements, a fixed training rate equal to the first training rate object member, and the performance for that training rate.

Parameters:
training_direction Initial training direction.

Definition at line 653 of file training_rate_algorithm.cpp.

Vector< double > OpenNN::TrainingRateAlgorithm::calculate_golden_section_directional_point ( const double &  performance,
const Vector< double > &  training_direction,
const double &  initial_training_rate 
) const

This method returns the training rate by searching in a given direction to locate the minimum of the objective function in that direction. It uses the golden section method.

Parameters:
performance Neural multilayer_perceptron_pointer's performance value.
training_direction Training direction vector.
initial_training_rate Initial training rate in line minimization.

Definition at line 673 of file training_rate_algorithm.cpp.

Vector< double > OpenNN::TrainingRateAlgorithm::calculate_Brent_method_directional_point ( const double &  performance,
const Vector< double > &  training_direction,
const double &  initial_training_rate 
) const

This method returns the training rate by searching in a given direction to locate the minimum of the performance function in that direction. It uses the Brent's method.

Parameters:
performance Neural multilayer_perceptron_pointer's performance value.
training_direction Training direction vector.
initial_training_rate Initial training rate in line minimization.

Definition at line 806 of file training_rate_algorithm.cpp.

Vector< double > OpenNN::TrainingRateAlgorithm::calculate_directional_point ( const double &  performance,
const Vector< double > &  training_direction,
const double &  initial_training_rate 
) const

This method returns a vector with two elements, the training rate calculated by means of the training rate object member, and the performance for that training rate.

Parameters:
performance Initial objective function performance.
training_direction Initial training direction.
initial_training_rate Initial training rate to start the algorithm.

Definition at line 489 of file training_rate_algorithm.cpp.

TiXmlElement * OpenNN::TrainingRateAlgorithm::to_XML ( void   )  const [virtual]

This method returns a default string representation in XML-type format of the training algorithm object. This containts the training operators, the training parameters, stopping criteria and other stuff.

Definition at line 1015 of file training_rate_algorithm.cpp.

void OpenNN::TrainingRateAlgorithm::from_XML ( TiXmlElement *  training_rate_algorithm_element  )  [virtual]

This method loads a gradient descent object from a XML-type file. Please mind about the file format, wich is specified in the User's Guide.

Parameters:
training_rate_algorithm_element Tiny XML element with the training rate algorithm members.

Definition at line 1108 of file training_rate_algorithm.cpp.


Member Data Documentation

Pointer to an external performance functional object.

Definition at line 140 of file training_rate_algorithm.h.

Variable containing the actual method used to obtain a suitable perform_training rate.

Definition at line 147 of file training_rate_algorithm.h.

Increase factor when bracketing a minimum.

Definition at line 151 of file training_rate_algorithm.h.

Initial training rate in line minimization.

Definition at line 155 of file training_rate_algorithm.h.

Maximum interval length for the training rate.

Definition at line 159 of file training_rate_algorithm.h.

Big training rate value at which the algorithm displays a warning.

Definition at line 163 of file training_rate_algorithm.h.

Big training rate value at which the algorithm throws an exception.

Definition at line 167 of file training_rate_algorithm.h.

Display messages to screen.

Definition at line 173 of file training_rate_algorithm.h.


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

Generated on Sun Aug 26 11:58:21 2012 for OpenNN by  doxygen 1.5.9