#include "gnn_node.h"#include "gnn_dataset.h"#include "gnn_criterion.h"Include dependency graph for gnn_hessian.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Functions | |
| int | gnn_hessian_vector_mult (gnn_line *line, const gsl_vector *v, gsl_vector *vH, double eps) |
| Fast multiplication by the Hessian matrix. | |
| int | gnn_hessian_diagonal (gnn_line *line, gsl_vector *H, double eps) |
| Finite differences diagonal Hessian matrix approximation. | |
| int | gnn_hessian_levenberg_marquadt_init (gnn_grad *grad, gsl_matrix *H) |
| Initializes the Levenberg-Marquadt Hessian approximation. | |
| int | gnn_hessian_levenberg_marquadt (gnn_grad *grad, gsl_matrix *H, size_t k) |
| Levenberg-Marquadt Hessian approximation. | |
| int | gnn_hessian_inverse_init (gnn_grad *grad, gsl_matrix *H, double alpha) |
| Levenberg-Marquadt Hessian Inverse approximation initialization. | |
| int | gnn_hessian_inverse (gnn_grad *grad, gsl_matrix *H, size_t k) |
| Levenberg-Marquadt Hessian Inverse approximation. | |
| int | gnn_hessian_finite_differences (gnn_line *line, gsl_matrix *H, double eps) |
| Finite differences Hessian matrix approximation. | |
|
||||||||||||||||
|
This numerical efficient method computes the diagonal values of the Hessian matrix using the central differentes method, given by
where The same as above written in matrix notation is:
where
Definition at line 184 of file gnn_hessian.c. |
|
||||||||||||||||
|
This numerical efficient method computes the values of the Hessian matrix using the central differentes method, given by
where
Definition at line 534 of file gnn_hessian.c. |
|
||||||||||||||||
|
This function computes the k-th iteration of the outer-product inverse Hessian approximation, using the k-th pattern. The outer product approximation used in gnn_hessian_levenberg_marquadt can be used to develop an efficient procedure for computing the inverse of the Hessian matrix. Recalling the formula for the outer product approximation
where
Using the following matrix identity
where
The procedure can be initialized by It is important to note that, as in the case for gnn_hessian_levenberg_marquadt, this approximation is only valid for a sum-of-squares error function.
Definition at line 450 of file gnn_hessian.c. |
|
||||||||||||||||
|
This function initializes the outer product inverse approximation routine. For further details, please refer to gnn_hessian_inverse.
Definition at line 376 of file gnn_hessian.c. |
|
||||||||||||||||
|
This function computes the k-th iteration of the Levenberg-Marquadt Hessian approximation, using the k-th pattern. The Levenberg-Marquadt approximation (also known as the outer product approximation) of the Hessian matrix is given by
where the sum runs over all pattern outputs
that is, for an sum-of-squares error function (and its equivalent forms). The previous formula can be written in matrix form, giving the sequential procedure for building the Hessian:
which is the way used by libgnn.
Definition at line 309 of file gnn_hessian.c. |
|
||||||||||||
|
This function initializes the Hessian for the Levenberg-Marquadt approximation. For further details, see gnn_hessian_levenberg_marquadt.
Definition at line 250 of file gnn_hessian.c. |
|
||||||||||||||||||||
|
Some applications do not require the Hessian explicitally. Instead, what really is needed is a fast method for computing
where
Definition at line 97 of file gnn_hessian.c. |
1.2.18