#include <performance_functional.h>
Definition at line 47 of file performance_functional.h.
Enumeration of available performance terms in OpenNN.
Definition at line 137 of file performance_functional.h.
OpenNN::PerformanceFunctional::PerformanceFunctional | ( | void | ) | [explicit] |
Default constructor. It creates a performance functional object with all pointers initialized to NULL. It also initializes all the rest of class members to their default values.
Definition at line 61 of file performance_functional.cpp.
OpenNN::PerformanceFunctional::PerformanceFunctional | ( | PerformanceTerm * | new_objective_term_pointer | ) | [explicit] |
Objective term constructor. It creates a performance functional object with a given objective functional. The rest of pointers are initialized to NULL. The other members are set to their default values, but the objective term type, which is set to USER_PERFORMANCE_TERM.
Definition at line 166 of file performance_functional.cpp.
OpenNN::PerformanceFunctional::PerformanceFunctional | ( | NeuralNetwork * | new_neural_network_pointer | ) | [explicit] |
Neural network constructor. It creates a performance functional object associated to a neural network object. The rest of pointers are initialized to NULL. It also initializes all the rest of class members to their default values.
new_neural_network_pointer | Pointer to a neural network object. |
Definition at line 81 of file performance_functional.cpp.
OpenNN::PerformanceFunctional::PerformanceFunctional | ( | NeuralNetwork * | new_neural_network_pointer, | |
DataSet * | new_data_set_pointer | |||
) | [explicit] |
Neural network and data set constructor. It creates a performance functional object associated to a neural network and a data set objects. The rest of pointers are initialized to NULL. It also initializes all the rest of class members to their default values.
new_neural_network_pointer | Pointer to a neural network object. | |
new_data_set_pointer | Pointer to a data set object. |
Definition at line 102 of file performance_functional.cpp.
OpenNN::PerformanceFunctional::PerformanceFunctional | ( | NeuralNetwork * | new_neural_network_pointer, | |
MathematicalModel * | new_mathematical_model_pointer | |||
) | [explicit] |
Neural network and mathematical model constructor. It creates a performance functional object associated to a neural network and a mathematical model objects. The rest of pointers are initialized to NULL. It also initializes all the rest of class members to their default values.
new_neural_network_pointer | Pointer to a neural network object. | |
new_mathematical_model_pointer | Pointer to a mathematical model object. |
Definition at line 124 of file performance_functional.cpp.
OpenNN::PerformanceFunctional::PerformanceFunctional | ( | NeuralNetwork * | new_neural_network_pointer, | |
MathematicalModel * | new_mathematical_model_pointer, | |||
DataSet * | new_data_set_pointer | |||
) | [explicit] |
Neural network, mathematical model and data set constructor. It creates a performance functional object associated to a neural network, a mathematical model and a data set objects. The rest of pointers are initialized to NULL. It also initializes all the rest of class members to their default values.
new_neural_network_pointer | Pointer to a neural network object. | |
new_mathematical_model_pointer | Pointer to a mathematical model object. | |
new_data_set_pointer | Pointer to a data set object. |
Definition at line 147 of file performance_functional.cpp.
OpenNN::PerformanceFunctional::PerformanceFunctional | ( | const std::string & | filename | ) | [explicit] |
File constructor. It creates a performance functional object by loading its members from an XML-type file. Please be careful with the format of that file, which is specified in the OpenNN manual.
filename | Name of performance functional file. |
Definition at line 185 of file performance_functional.cpp.
OpenNN::PerformanceFunctional::PerformanceFunctional | ( | const PerformanceFunctional & | other_performance_functional | ) |
Copy constructor. It creates a copy of an existing performance functional object.
other_performance_functional | Performance functional object to be copied. |
Definition at line 204 of file performance_functional.cpp.
OpenNN::PerformanceFunctional::~PerformanceFunctional | ( | void | ) | [virtual] |
Destructor. It deletes the objective, regularization and constraints terms.
Definition at line 252 of file performance_functional.cpp.
NeuralNetwork* OpenNN::PerformanceFunctional::get_neural_network_pointer | ( | void | ) | const [inline] |
This method returns a pointer to the neural network associated to the performance functional.
Definition at line 162 of file performance_functional.h.
PerformanceTerm* OpenNN::PerformanceFunctional::get_objective_term_pointer | ( | void | ) | const [inline] |
This method returns a pointer to the mathematical model associated to the performance functional.
This method returns a pointer to the data set associated to the performance functional. This method returns a pointer to the performance term composing the performance functional.
Definition at line 183 of file performance_functional.h.
PerformanceTerm* OpenNN::PerformanceFunctional::get_regularization_term_pointer | ( | void | ) | const [inline] |
This method returns a pointer to the regularization functional composing the performance functional.
Definition at line 190 of file performance_functional.h.
PerformanceTerm* OpenNN::PerformanceFunctional::get_constraints_term_pointer | ( | void | ) | [inline] |
This method returns a pointer to the constraints functional composing the performance functional.
Definition at line 198 of file performance_functional.h.
const PerformanceFunctional::PerformanceTermType & OpenNN::PerformanceFunctional::get_objective_term_type | ( | void | ) | const |
This method returns the type of objective term used in the performance functional expression.
Definition at line 266 of file performance_functional.cpp.
const PerformanceFunctional::PerformanceTermType & OpenNN::PerformanceFunctional::get_regularization_term_type | ( | void | ) | const |
This method returns the type of regularization term used in the performance functional expression.
Definition at line 276 of file performance_functional.cpp.
const PerformanceFunctional::PerformanceTermType & OpenNN::PerformanceFunctional::get_constraints_term_type | ( | void | ) | const |
This method returns the type of constraints term used in the performance functional expression.
Definition at line 286 of file performance_functional.cpp.
std::string OpenNN::PerformanceFunctional::write_objective_term_type | ( | void | ) | const |
This method returns a string with the type of objective term used in the performance functional expression.
Definition at line 296 of file performance_functional.cpp.
std::string OpenNN::PerformanceFunctional::write_regularization_term_type | ( | void | ) | const |
This method returns a string with the type of regularization term used in the performance functional expression.
Definition at line 371 of file performance_functional.cpp.
std::string OpenNN::PerformanceFunctional::write_constraints_term_type | ( | void | ) | const |
This method returns a string with the type of constraints term used in the performance functional expression.
Definition at line 446 of file performance_functional.cpp.
const bool & OpenNN::PerformanceFunctional::get_objective_term_flag | ( | void | ) | const |
This method returns the flag value for including or not the objective term in the performance functional expression.
Definition at line 521 of file performance_functional.cpp.
const bool & OpenNN::PerformanceFunctional::get_regularization_term_flag | ( | void | ) | const |
This method returns the flag value for using regularization or not.
Definition at line 531 of file performance_functional.cpp.
const bool & OpenNN::PerformanceFunctional::get_constraints_term_flag | ( | void | ) | const |
This method returns true if constraints are to be included in the performance functional expression, and false otherwise.
Definition at line 542 of file performance_functional.cpp.
const bool & OpenNN::PerformanceFunctional::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 553 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_neural_network_pointer | ( | NeuralNetwork * | new_neural_network_pointer | ) |
This method sets a pointer to a multilayer perceptron object which is to be associated to the performance functional.
new_neural_network_pointer | Pointer to a neural network object to be associated to the performance functional. |
Definition at line 564 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_objective_term_pointer | ( | PerformanceTerm * | new_objective_term_pointer | ) |
This method sets a new objective term into the performance functional.
new_objective_term_pointer | Pointer to a performance term representing the objective functional. |
Definition at line 575 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_regularization_term_pointer | ( | PerformanceTerm * | new_regularization_term_pointer | ) |
This method sets a new regularization term into the performance functional.
new_regularization_term_pointer | Pointer to a performance term representing the regularization functional. |
Definition at line 594 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_constraints_term_pointer | ( | PerformanceTerm * | new_constraints_term_pointer | ) |
This method sets a new constraints term into the performance functional.
new_constraints_term_pointer | Pointer to a performance term representing the constraints functional. |
Definition at line 613 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_default | ( | void | ) |
This method sets the members of the performance functional object to their default values.
Definition at line 631 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_objective_term_type | ( | const PerformanceTermType & | new_objective_term_type | ) |
This method sets a new type for the objective term.
new_objective_term_type | Type of objective term. |
Definition at line 650 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_objective_term_type | ( | const std::string & | new_objective_term_type | ) |
This method sets a new type for the objective term from a string.
new_objective_term_type | String with the type of objective term. |
Definition at line 683 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_regularization_term_type | ( | const PerformanceTermType & | new_regularization_term_type | ) |
This method sets a new type for the regularization term.
new_regularization_term_type | Type of regularization term. |
Definition at line 661 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_regularization_term_type | ( | const std::string & | new_regularization_term_type | ) |
This method sets a new type for the regularization term from a string.
new_regularization_term_type | String with the type of regularization term. |
Definition at line 759 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_constraints_term_type | ( | const PerformanceTermType & | new_constraints_term_type | ) |
This method sets a new type for the constraints term.
new_constraints_term_type | Type of constraints term. |
Definition at line 672 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_constraints_term_type | ( | const std::string & | new_constraints_term_type | ) |
This method sets a new type for the constraints term from a string.
new_constraints_term_type | String with the type of constraints term. |
Definition at line 835 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_objective_term_flag | ( | const bool & | new_objective_term_flag | ) |
This method sets a new flag value for using the objective term or not.
new_objective_term_flag | Flag value for the use of objective term. |
Definition at line 911 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_regularization_term_flag | ( | const bool & | new_regularization_term_flag | ) |
This method sets a new flag value for using regularization or not.
new_regularization_term_flag | Flag value for the use of regularization. |
Definition at line 922 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::set_constraints_term_flag | ( | const bool & | new_constraints_term_flag | ) |
This method sets a new flag value for using constraints or not in the performance functional expression.
new_constraints_term_flag | Flag value for the use of constraints. |
Definition at line 933 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::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 946 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_objective_term | ( | const PerformanceTermType & | new_objective_term_type | ) |
This method creates a new objective term inside the performance functional of a given performance term type.
new_objective_term_type | Type of objective term to be created. |
Definition at line 957 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_regularization_term | ( | const PerformanceTermType & | new_regularization_term_type | ) |
This method creates a new regularization term inside the performance functional of a given performance term type.
new_regularization_term_type | Type of regularization term to be created. |
Definition at line 1073 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_constraints_term | ( | const PerformanceTermType & | new_constraints_term_type | ) |
This method creates a new constraints term inside the performance functional of a given performance term type.
new_constraints_term_type | Type of constraints term to be created. |
Definition at line 1189 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_objective_term | ( | const PerformanceTermType & | new_performance_term_type, | |
MathematicalModel * | new_mathematical_model_pointer | |||
) |
This method creates a new objective term inside the performance functional.
new_performance_term_type | Type of objective term. | |
new_mathematical_model_pointer | Pointer to a mathematical model object. |
Definition at line 1306 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_regularization_term | ( | const PerformanceTermType & | new_performance_term_type, | |
MathematicalModel * | new_mathematical_model_pointer | |||
) |
This method creates a new regularization term inside the performance functional.
new_performance_term_type | Type of objective term. | |
new_mathematical_model_pointer | Pointer to a mathematical model object. |
Definition at line 1320 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_constraints_term | ( | const PerformanceTermType & | new_performance_term_type, | |
MathematicalModel * | new_mathematical_model_pointer | |||
) |
This method creates a new constraints term inside the performance functional.
new_performance_term_type | Type of objective term. | |
new_mathematical_model_pointer | Pointer to a mathematical model object. |
Definition at line 1334 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_objective_term | ( | const PerformanceTermType & | new_performance_term_type, | |
DataSet * | new_data_set_pointer | |||
) |
This method creates a new objective term inside the performance functional.
new_performance_term_type | Type of objective term. | |
new_data_set_pointer | Pointer to a data set object. |
Definition at line 1348 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_regularization_term | ( | const PerformanceTermType & | new_performance_term_type, | |
DataSet * | new_data_set_pointer | |||
) |
This method creates a new regularization term inside the performance functional.
new_performance_term_type | Type of regularization term. | |
new_data_set_pointer | Pointer to a data set object. |
Definition at line 1362 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_constraints_term | ( | const PerformanceTermType & | new_performance_term_type, | |
DataSet * | new_data_set_pointer | |||
) |
This method creates a new constraints term inside the performance functional.
new_performance_term_type | Type of constraints term. | |
new_data_set_pointer | Pointer to a data set object. |
Definition at line 1376 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_objective_term | ( | const PerformanceTermType & | new_performance_term_type, | |
MathematicalModel * | new_mathematical_model_pointer, | |||
DataSet * | new_data_set_pointer | |||
) |
This method creates a new objective term inside the performance functional.
new_performance_term_type | Type of objective term. | |
new_mathematical_model_pointer | Pointer to a mathematical model object. | |
new_data_set_pointer | Pointer to a data set object. |
Definition at line 1391 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_regularization_term | ( | const PerformanceTermType & | new_performance_term_type, | |
MathematicalModel * | new_mathematical_model_pointer, | |||
DataSet * | new_data_set_pointer | |||
) |
This method creates a new regularization term inside the performance functional.
new_performance_term_type | Type of regularization term. | |
new_mathematical_model_pointer | Pointer to a mathematical model object. | |
new_data_set_pointer | Pointer to a data set object. |
Definition at line 1407 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_constraints_term | ( | const PerformanceTermType & | new_performance_term_type, | |
MathematicalModel * | new_mathematical_model_pointer, | |||
DataSet * | new_data_set_pointer | |||
) |
This method creates a new constraints term inside the performance functional.
new_performance_term_type | Type of constraints term. | |
new_mathematical_model_pointer | Pointer to a mathematical model object. | |
new_data_set_pointer | Pointer to a data set object. |
Definition at line 1423 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_objective_term | ( | const std::string & | new_objective_term_type | ) |
This method creates a new objective term inside the performance functional of a given performance term type.
new_objective_term_type | String with the type of objective term to be created. |
Definition at line 1437 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_regularization_term | ( | const std::string & | new_regularization_term_type | ) |
This method creates a new regularization term inside the performance functional of a given performance term type.
new_regularization_term_type | String with the type of regularization term to be created. |
Definition at line 1513 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::construct_constraints_term | ( | const std::string & | new_constraints_term_type | ) |
This method creates a new constraints term inside the performance functional of a given performance term type.
new_constraints_term_type | String with the type of constraints term to be created. |
Definition at line 1589 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::destruct_objective_term | ( | void | ) |
This method deletes the objective term object. It also sets the objective term type to NONE and the corresponding flag to false.
Definition at line 1665 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::destruct_regularization_term | ( | void | ) |
This method deletes the regularization term object. It also sets the regularization term type to NONE and the corresponding flag to false.
Definition at line 1682 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::destruct_constraints_term | ( | void | ) |
This method deletes the constraints term object. It also sets the constraints term type to NONE and the corresponding flag to false.
Definition at line 1699 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::destruct_all_terms | ( | void | ) |
This method destructs the objective, regularization and constraints terms.
Definition at line 1715 of file performance_functional.cpp.
double OpenNN::PerformanceFunctional::calculate_evaluation | ( | void | ) | const |
This method calculates the performance value of the performance functional, as the sum of the objective and the regularization terms.
Definition at line 1728 of file performance_functional.cpp.
Vector< double > OpenNN::PerformanceFunctional::calculate_gradient | ( | void | ) | const |
This method returns the objective function gradient, as the sum of the objective and the regularization gradient vectors.
Definition at line 1898 of file performance_functional.cpp.
Matrix< double > OpenNN::PerformanceFunctional::calculate_Hessian | ( | void | ) | const |
This method returns the default objective function Hessian matrix, which is computed using numerical differentiation.
Definition at line 2046 of file performance_functional.cpp.
double OpenNN::PerformanceFunctional::calculate_evaluation | ( | const Vector< double > & | parameters | ) |
This method returns the performance of a neural network for a given vector of parameters. It does not set that vector of parameters to the neural network.
parameters | Vector of parameters for the neural network associated to the performance functional. |
Definition at line 1814 of file performance_functional.cpp.
Vector< double > OpenNN::PerformanceFunctional::calculate_gradient | ( | const Vector< double > & | parameters | ) |
This method returns the performance gradient for a given vector of parameters. It does not set that vector of parameters to the neural network.
parameters | Vector of parameters for the neural network associated to the performance functional. |
Definition at line 1985 of file performance_functional.cpp.
Matrix< double > OpenNN::PerformanceFunctional::calculate_Hessian | ( | const Vector< double > & | parameters | ) |
This method returns which would be the objective function Hessian of a multilayer perceptron for an hypothetical vector of parameters. It does not set that vector of parameters to the multilayer perceptron.
parameters | Vector of a potential parameters for the multilayer perceptron associated to the performance functional. |
Definition at line 2079 of file performance_functional.cpp.
Matrix< double > OpenNN::PerformanceFunctional::calculate_inverse_Hessian | ( | void | ) | const [virtual] |
This method returns inverse matrix of the Hessian. It first computes the Hessian matrix and then computes its inverse.
Definition at line 2128 of file performance_functional.cpp.
Vector< double > OpenNN::PerformanceFunctional::calculate_vector_dot_Hessian | ( | const Vector< double > & | vector | ) | const [virtual] |
This method returns the default product of some vector with the objective function Hessian matrix, which is computed using numerical differentiation.
vector | Vector in the dot product. |
Definition at line 2150 of file performance_functional.cpp.
PerformanceFunctional::ZeroOrderEvaluation OpenNN::PerformanceFunctional::calculate_zero_order_evaluation | ( | void | ) | const [virtual] |
This method returns a zero order evaluation structure, which just contains the evaluation value of the performance function.
Definition at line 2181 of file performance_functional.cpp.
PerformanceFunctional::FirstOrderEvaluation OpenNN::PerformanceFunctional::calculate_first_order_evaluation | ( | void | ) | const [virtual] |
This method returns a first order evaluation structure, which contains the value and the gradient of the performance function.
Definition at line 2195 of file performance_functional.cpp.
PerformanceFunctional::SecondOrderEvaluation OpenNN::PerformanceFunctional::calculate_second_order_evaluation | ( | void | ) | const [virtual] |
This method returns a second order evaluation structure, which contains the value, the gradient and the Hessian of the performance function.
Definition at line 2210 of file performance_functional.cpp.
double OpenNN::PerformanceFunctional::calculate_generalization_evaluation | ( | void | ) | const [virtual] |
This method calculates the performance value of the performance functional, as the sum of the objective and the regularization terms.
Definition at line 1854 of file performance_functional.cpp.
double OpenNN::PerformanceFunctional::calculate_zero_order_Taylor_approximation | ( | const Vector< double > & | ) | const |
This method returns the Taylor approximation of the performance function at some point near the parameters. The order of the approximation here is zero, i.e., only the performance value is used.
Definition at line 2227 of file performance_functional.cpp.
double OpenNN::PerformanceFunctional::calculate_first_order_Taylor_approximation | ( | const Vector< double > & | parameters | ) | const |
This method returns the Taylor approximation of the performance function at some point near the parameters. The order of the approximation here is one, i.e., both the performance value and the performance gradient are used.
parameters | Approximation point. |
Definition at line 2239 of file performance_functional.cpp.
double OpenNN::PerformanceFunctional::calculate_second_order_Taylor_approximation | ( | const Vector< double > & | parameters | ) | const |
This method returns the Taylor approximation of the performance function at some point near the parameters. The order of the approximation here is two, i.e., the performance value, the performance gradient and the performance Hessian are used.
parameters | Approximation point. |
Definition at line 2278 of file performance_functional.cpp.
double OpenNN::PerformanceFunctional::calculate_directional_performance | ( | const Vector< double > & | direction, | |
double | rate | |||
) |
This method returns the value of the performance function at some step along some direction.
direction | Direction vector. | |
rate | Step value. |
Definition at line 2325 of file performance_functional.cpp.
double OpenNN::PerformanceFunctional::calculate_directional_performance_derivative | ( | const Vector< double > & | direction, | |
double | rate | |||
) |
This method returns the derivative of the performance function at some step along some direction.
direction | Direction vector. | |
rate | Step value. |
Definition at line 2337 of file performance_functional.cpp.
double OpenNN::PerformanceFunctional::calculate_directional_performance_second_derivative | ( | const Vector< double > & | direction, | |
double | rate | |||
) |
This method returns the second derivative of the performance function at some step along some direction.
direction | Direction vector. | |
rate | Step value. |
Definition at line 2353 of file performance_functional.cpp.
TiXmlElement * OpenNN::PerformanceFunctional::to_XML | ( | void | ) | const [virtual] |
This method serializes a default performance functional object into a XML element of the TinyXML library. See the OpenNN manual for more information about the format of this element.
Definition at line 2368 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::from_XML | ( | TiXmlElement * | performance_functional_element | ) | [virtual] |
This method sets the performance functional member data from an XML element.
performance_functional_element | Pointer to a TinyXML element with the performance functional data. |
Definition at line 2490 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::print | ( | void | ) | const [virtual] |
This method prints the members of the performance functional object to the screen in XML-type format.
Definition at line 2635 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::save | ( | const std::string & | filename | ) | const [virtual] |
This method saves to a XML-type file a string representation of the performance functional object.
filename | Name of XML-type performance functional file. |
Definition at line 2645 of file performance_functional.cpp.
void OpenNN::PerformanceFunctional::load | ( | const std::string & | filename | ) | [virtual] |
This method loads a default performance functional XML-type file.
filename | Name of default XML-type performance functional file. |
Definition at line 2668 of file performance_functional.cpp.
std::string OpenNN::PerformanceFunctional::write_information | ( | void | ) | [virtual] |
This method returns any useful information about the objective function during training. By default it is an empty string.
Definition at line 2705 of file performance_functional.cpp.