#include <training_rate_algorithm.h>
Public Types | |
enum | TrainingRateMethod { Fixed, GoldenSection, BrentMethod } |
Public Member Functions | |
TrainingRateAlgorithm (void) | |
TrainingRateAlgorithm (PerformanceFunctional *) | |
TrainingRateAlgorithm (TiXmlElement *) | |
virtual | ~TrainingRateAlgorithm (void) |
PerformanceFunctional * | get_performance_functional_pointer (void) |
const TrainingRateMethod & | get_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 | |
PerformanceFunctional * | performance_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 |
Definition at line 34 of file training_rate_algorithm.h.
Available training operators for obtaining the perform_training rate.
Definition at line 43 of file training_rate_algorithm.h.
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.
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] |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
training_rate_algorithm_element | Tiny XML element with the training rate algorithm members. |
Definition at line 1108 of file training_rate_algorithm.cpp.
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.
double OpenNN::TrainingRateAlgorithm::bracketing_factor [protected] |
Increase factor when bracketing a minimum.
Definition at line 151 of file training_rate_algorithm.h.
double OpenNN::TrainingRateAlgorithm::first_training_rate [protected] |
Initial training rate in line minimization.
Definition at line 155 of file training_rate_algorithm.h.
double OpenNN::TrainingRateAlgorithm::training_rate_tolerance [protected] |
Maximum interval length for the training rate.
Definition at line 159 of file training_rate_algorithm.h.
double OpenNN::TrainingRateAlgorithm::warning_training_rate [protected] |
Big training rate value at which the algorithm displays a warning.
Definition at line 163 of file training_rate_algorithm.h.
double OpenNN::TrainingRateAlgorithm::error_training_rate [protected] |
Big training rate value at which the algorithm throws an exception.
Definition at line 167 of file training_rate_algorithm.h.
bool OpenNN::TrainingRateAlgorithm::display [protected] |