Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

gnn_conjugate_gradient.h File Reference

#include "gnn_line_search.h"
#include "gnn_trainer.h"

Include dependency graph for gnn_conjugate_gradient.h:

Include dependency graph

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

Included by dependency graph

Go to the source code of this file.

Data Structures

struct  _gnn_conjugate_gradient

Defines

#define GNN_CONJUGATE_GRADIENT_TOL   0.0001
 Default precision for line search procedures.

#define GNN_CONJUGATE_GRADIENT_STEP   0.1
 Default bracketing step taken by the line search procedures.

#define GNN_CONJUGATE_GRADIENT_RESTART   100
 Default restart.

#define GNN_CONJUGATE_GRADIENT_ALPHA   gnn_line_search_brent
 Default line search procedure.

#define GNN_CONJUGATE_GRADIENT_BETA   gnn_conjugate_gradient_polak_ribiere
 Default .


Typedefs

typedef double(* gnn_conjugate_gradient_beta )(gnn_trainer *trainer)
 Type for evaluation procedures.

typedef _gnn_conjugate_gradient gnn_conjugate_gradient
 Conjugate gradients trainer structure.


Functions

gnn_trainergnn_conjugate_gradient_new (gnn_node *node, gnn_criterion *crit, gnn_dataset *data)
 Creates a new conjugate gradient descent trainer.

double gnn_conjugate_gradient_polak_ribiere (gnn_trainer *trainer)
 The Polak-Ribière form for the coefficient.

double gnn_conjugate_gradient_hestenes_stiefel (gnn_trainer *trainer)
 The Hestenes-Stiefel form for the coefficient.

double gnn_conjugate_gradient_fletcher_reeves (gnn_trainer *trainer)
 The Fletcher-Reeves form for the coefficient.

int gnn_conjugate_gradient_set_tol (gnn_trainer *trainer, double tol)
 Sets the precision tolerance for the line search procedure.

double gnn_conjugate_gradient_get_tol (gnn_trainer *trainer)
 Gets the tolerance for the line search procedure.

int gnn_conjugate_gradient_set_step (gnn_trainer *trainer, double step)
 Sets the initial step for the interval bracketing procedure.

double gnn_conjugate_gradient_get_step (gnn_trainer *trainer)
 Gets the initial step for the interval bracketing procedure.

int gnn_conjugate_gradient_set_restart (gnn_trainer *trainer, size_t restart)
 Sets the number of iterations before restarting.

size_t gnn_conjugate_gradient_get_restart (gnn_trainer *trainer)
 Gets the number of iterations before reinitializing the direction.

int gnn_conjugate_gradient_set_line_search (gnn_trainer *trainer, gnn_line_search_type lsearch)
 Sets the line search procedure.

gnn_line_search_type gnn_conjugate_gradient_get_alpha (gnn_trainer *trainer)
 Gets the installed line search procedure.

int gnn_conjugate_gradient_set_beta (gnn_trainer *trainer, gnn_conjugate_gradient_beta beta)
 Sets the form of the coefficient.

gnn_conjugate_gradient_beta gnn_conjugate_gradient_get_beta (gnn_trainer *trainer)
 Gets the evaluation function.


Function Documentation

double gnn_conjugate_gradient_fletcher_reeves gnn_trainer   trainer
 

This function returns the Fletcher-Reeves form of the coefficient for the evaluation of the new conjugate direction:

where

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
Returns:
Returns the coefficient.

Definition at line 404 of file gnn_conjugate_gradient.c.

gnn_line_search_type gnn_conjugate_gradient_get_alpha gnn_trainer   trainer
 

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
Returns:
Returns a pointer to the installed line-search procedure.

Definition at line 613 of file gnn_conjugate_gradient.c.

gnn_conjugate_gradient_beta gnn_conjugate_gradient_get_beta gnn_trainer   trainer
 

This function returns a pointer to the installed evaluation procedure.

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
Returns:
A pointer to a function.

Definition at line 671 of file gnn_conjugate_gradient.c.

size_t gnn_conjugate_gradient_get_restart gnn_trainer   trainer
 

This function returns the number of iterations executed by the conjugate gradients trainer before reinitializing the search direction.

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
Returns:
Returns the number of iterations.

Definition at line 556 of file gnn_conjugate_gradient.c.

double gnn_conjugate_gradient_get_step gnn_trainer   trainer
 

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
Returns:
The trainer's internal step.

Definition at line 505 of file gnn_conjugate_gradient.c.

double gnn_conjugate_gradient_get_tol gnn_trainer   trainer
 

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
Returns:
Returns the tolerance's value.

Definition at line 457 of file gnn_conjugate_gradient.c.

double gnn_conjugate_gradient_hestenes_stiefel gnn_trainer   trainer
 

This function returns the Hestenes-Stiefel form of the coefficient for the evaluation of the new conjugate direction:

where

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
Returns:
Returns the coefficient.

Definition at line 368 of file gnn_conjugate_gradient.c.

gnn_trainer* gnn_conjugate_gradient_new gnn_node   node,
gnn_criterion   crit,
gnn_dataset   data
 

This function creates a new conjugate gradients trainer (gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm.).

Parameters:
node  A pointer to a gnn_node.
crit  A pointer to a gnn_criterion : Basic Criterion Function..
data  A pointer to a gnn_dataset : Datasets for Training..
Returns:
Returns a pointer to a new gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm. trainer.

Definition at line 251 of file gnn_conjugate_gradient.c.

double gnn_conjugate_gradient_polak_ribiere gnn_trainer   trainer
 

This function returns the Polak-Ribière form of the coefficient for the evaluation of the new conjugate direction:

where

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
Returns:
Returns the coefficient.

Definition at line 333 of file gnn_conjugate_gradient.c.

int gnn_conjugate_gradient_set_beta gnn_trainer   trainer,
gnn_conjugate_gradient_beta    beta
 

This function sets a new form for evaluating the coefficient used by the conjugate gradients method to build the new search direction.

 gnn_trainer *trainer;
 trainer = gnn_conjugate_gradient_new (node, crit, data);

 // use the Fletcher-Reeves form
 gnn_conjugate_gradient_set_beta (trainer,
                                  gnn_conjugate_gradient_fletcher_reeves);
Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
beta  A pointer to the a evaluation procedure.
Returns:
Returns 0 if succeeded.

Definition at line 645 of file gnn_conjugate_gradient.c.

int gnn_conjugate_gradient_set_line_search gnn_trainer   trainer,
gnn_line_search_type    lsearch
 

This function sets a new line search procedure used by the conjugate gradients trainer.

 gnn_trainer *trainer;
 trainer = gnn_conjugate_gradient_new (node, crit, data);

 // use the Golden-Section line search
 gnn_conjugate_gradient_set_line_search (trainer, gnn_line_search_golden);

Please refer to (Line Search Procedures for Nodes.) for the available line search procedures.

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
lsearch  A pointer to a line search procedure.
Returns:
Returns 0 if succeeded.

Definition at line 590 of file gnn_conjugate_gradient.c.

int gnn_conjugate_gradient_set_restart gnn_trainer   trainer,
size_t    restart
 

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
restart  A stricly positive integer.
Returns:
Returns 0 if succeeded.

Definition at line 525 of file gnn_conjugate_gradient.c.

int gnn_conjugate_gradient_set_step gnn_trainer   trainer,
double    step
 

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
step  A stricly positive real value.
Returns:
Returns 0 if succeeded.

Definition at line 477 of file gnn_conjugate_gradient.c.

int gnn_conjugate_gradient_set_tol gnn_trainer   trainer,
double    tol
 

Parameters:
trainer  A pointer to a gnn_conjugate_gradient : Conjugate Gradient Descent Algorithm..
tol  A stricly positive real value.
Returns:
Returns 0 if succeeded.

Definition at line 429 of file gnn_conjugate_gradient.c.


Generated on Sun Jun 13 20:50:19 2004 for libgnn Gradient Retropropagation Machine Library by doxygen1.2.18