where both indexes run over all parameters
. These elements form the Hessian Matrix, which plays a very important role in several aspects of neural computing, like, per example:
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 Hessian Matrix Evaluation Routines. 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 Hessian Matrix Evaluation Routines., 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 Hessian Matrix Evaluation Routines..
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 Hessian Matrix Evaluation Routines..
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