wolffd@0: wolffd@0:
wolffd@0:wolffd@0: [net, options] = netopt(net, options, x, t, alg) wolffd@0: [net, options, varargout] = netopt(net, options, x, t, alg) wolffd@0:wolffd@0: wolffd@0: wolffd@0:
netopt
is a helper function which facilitates the training of
wolffd@0: networks using the general purpose optimizers as well as sampling from the
wolffd@0: posterior distribution of parameters using general purpose Markov chain
wolffd@0: Monte Carlo sampling algorithms. It can be used with any function that
wolffd@0: searches in parameter space using error and gradient functions.
wolffd@0:
wolffd@0:
[net, options] = netopt(net, options, x, t, alg)
takes a network
wolffd@0: data structure net
, together with a vector options
of
wolffd@0: parameters governing the behaviour of the optimization algorithm, a
wolffd@0: matrix x
of input vectors and a matrix t
of target
wolffd@0: vectors, and returns the trained network as well as an updated
wolffd@0: options
vector. The string alg
determines which optimization
wolffd@0: algorithm (conjgrad
, quasinew
, scg
, etc.) or Monte
wolffd@0: Carlo algorithm (such as hmc
) will be used.
wolffd@0:
wolffd@0:
[net, options, varargout] = netopt(net, options, x, t, alg)
wolffd@0: also returns any additional return values from the optimisation algorithm.
wolffd@0:
wolffd@0:
net = mlp(4, 3, 2, 'linear')
. We can then train
wolffd@0: the network with the scaled conjugate gradient algorithm by using
wolffd@0: net = netopt(net, options, x, t, 'scg')
where x
and
wolffd@0: t
are the input and target data matrices respectively, and the
wolffd@0: options vector is set appropriately for scg
.
wolffd@0:
wolffd@0: If we also wish to plot the learning curve, we can use the additional
wolffd@0: return value errlog
given by scg
:
wolffd@0:
wolffd@0: wolffd@0: [net, options, errlog] = netopt(net, options, x, t, 'scg'); wolffd@0:wolffd@0: wolffd@0: wolffd@0:
netgrad
, bfgs
, conjgrad
, graddesc
, hmc
, scg
Copyright (c) Ian T Nabney (1996-9) wolffd@0: wolffd@0: wolffd@0: wolffd@0: