108 extern ANN*
NewANN(
int n_inputs,
int n_outputs);
void ANN_BatchAdapt(ANN *ann)
Adapt the parameters after a series of patterns has been seen.
real htan(real x)
Hyperbolic tangent hook.
real Exp(real x)
Exponential hook.
Connection * c
connections
real ANN_GetError(ANN *ann)
Get the error for the current input/output pair.
int ANN_AddRBFHiddenLayer(ANN *ann, int n_nodes)
Add an RBF layer with n_nodes.
void ANN_SetZeta(ANN *ann, real lambda)
Set zeta, parameter variance smoothing.
bool eligibility_traces
use eligibility
real ANN_LayerShowInputs(Layer *l)
Dump inputs to a particular layer on stdout.
void ANN_CalculateLayerOutputs(Layer *current_layer, bool stochastic=false)
Calculate layer outputs.
real lambda
eligibility decay
void ANN_SetBatchMode(ANN *ann, bool batch)
Set batch updates.
real(* f_d)(real x)
derivative of activation function
real ANN_LayerShowWeights(Layer *l)
Dump the weights of a particular layer on stdout.
real ANN_ShowInputs(ANN *ann)
Dump inputs to all layers on stdout.
real linear(real x)
linear hook
int ANN_Init(ANN *ann)
Initialise neural network.
real ANN_StochasticInput(ANN *ann, real *x)
Stochastically generate an output, depending on parameter distributions.
struct ANN_ ANN
ANN management structure.
RBFConnection * rbf
rbf connections (if any)
real ANN_RBFBackpropagate(LISTITEM *p, real *d, bool use_eligibility=false, real TD=0.0)
Backpropagation for an RBF layer.
int ANN_AddHiddenLayer(ANN *ann, int n_nodes)
Add a hidden layer with n_nodes.
Some simple functions for string operations.
void ANN_RBFCalculateLayerOutputs(Layer *current_layer, bool stochastic=false)
Calculate layer outputs.
real(* backward)(LISTITEM *p, real *d, bool use_eligibility, real TD)
partial derivative calculation
ANN * LoadANN(char *filename)
Load an ANN from a filename.
An RBF connection between two neural elements.
real ANN_Train(ANN *ann, real *x, real *t)
Perform mean square error training, where the aim is to minimise the cost function ...
real dtan(real x)
Discrete htan hook.
A linear connection between two neural elements.
real * ANN_GetOutput(ANN *ann)
Get the output for the current input.
void ANN_ShowOutputs(ANN *ann)
Dump outputs to stdout.
void ANN_FreeLayer(void *l)
Free this layer - low level.
void ANN_SetOutputsToTanH(ANN *ann)
Set outputs to hyperbolic tangent.
void ANN_LayerBatchAdapt(Layer *l)
Perform batch adaptation.
int DeleteANN(ANN *ann)
Delete a neural network.
real ANN_Input(ANN *ann, real *x)
Give an input vector to the neural network.
struct Layer_ Layer
A collection of connections from one layer to another, plus management functions and data...
real zeta
variance update smoothness.
void ANN_SetLearningRate(ANN *ann, real a)
Set the learning rate to a.
void ANN_SetLambda(ANN *ann, real lambda)
Set lambda, eligibility decay.
Layer * ANN_AddLayer(ANN *ann, int n_inputs, int n_outputs, real *x)
Low-level code to add a weighted sum layer.
real(* f)(real x)
activation function
real zeta
variance update smoothness
real Exp_d(real x)
Exponential derivative hook.
struct Connection_ Connection
A linear connection between two neural elements.
void ANN_Reset(ANN *ann)
Resets the eligbility traces and batch updates.
ANN * NewANN(int n_inputs, int n_outputs)
Create a new ANN.
void ANN_SetOutputsToLinear(ANN *ann)
Set outputs to linear.
bool batch_mode
do not update weights immediately
real * ANN_GetErrorVector(ANN *ann)
Return the error vector for pattern.
real ANN_ShowWeights(ANN *ann)
Dump the weights on stdout.
bool batch_mode
use batch mode
A collection of connections from one layer to another, plus management functions and data...
A very simple list structure.
int SaveANN(ANN *ann, char *filename)
Save the ANN to a filename.
real dtan_d(real x)
Discrete htan derivative hook.
int n_outputs
number of outputs
int n_inputs
number of inputs
int n_outputs
number of outputs
void(* forward)(struct Layer_ *current_layer, bool stochastic)
forward calculation
real htan_d(real x)
Hyperbolic tangent derivative hook.
real ANN_Backpropagate(LISTITEM *p, real *d, bool use_eligibility=false, real TD=0.0)
d are the derivatives at the outputs.
int n_inputs
number of inputs
real linear_d(real x)
linear derivative hook
Layer * ANN_AddRBFLayer(ANN *ann, int n_inputs, int n_outputs, real *x)
Low-level code to add an RBF layer.
real ANN_Test(ANN *ann, real *x, real *t)
Given an input and test pattern, return the MSE between the network's output and the test pattern...
real lambda
eligibility trace decay
ANN management structure.
struct RBFConnection_ RBFConnection
An RBF connection between two neural elements.
real ANN_Delta_Train(ANN *ann, real *delta, real TD=0.0)
Minimise a custom cost function.
LIST * c
connection layers