aureservoir::TrainPI< T > Class Template Reference

#include <train.h>

Inheritance diagram for aureservoir::TrainPI< T >:

Inheritance graph
[legend]
Collaboration diagram for aureservoir::TrainPI< T >:

Collaboration graph
[legend]

Detailed Description

template<typename T>
class aureservoir::TrainPI< T >

Trains the ESN offline in two steps, as described in Jaeger's "Tutorial on training recurrent neural networks"
See also:
http://www.faculty.iu-bremen.de/hjaeger/pubs/ESNTutorial.pdf
1. teacher-forcing/sampling: collects the internal states and desired outputs
2. computes output weights usings LAPACK's xGELSS routing, which performs a singular value decomposition and gets the pseudo inverse
See also:
http://www.netlib.org/lapack/single/sgelss.f
The difference to TrainLS is, that TrainPI is computationally more expansive, but TrainLeastSquare can have stability problems.
See also:
class TrainLeastSquare
For a more mathematical description:
See also:
http://en.wikipedia.org/wiki/Linear_least_squares

http://www.netlib.org/lapack/lug/node27.html


Public Member Functions

 TrainPI (ESN< T > *esn)
virtual ~TrainPI ()
class TrainPI Implementation
virtual void train (const typename ESN< T >::DEMatrix &in, const typename ESN< T >::DEMatrix &out, int washout) throw (AUExcept)

Protected Member Functions

void clearData ()
class TrainBase Implementation
void checkParams (const typename ESN< T >::DEMatrix &in, const typename ESN< T >::DEMatrix &out, int washout) throw (AUExcept)
void collectStates (const typename ESN< T >::DEMatrix &in, const typename ESN< T >::DEMatrix &out, int washout)
void squareStates ()

Protected Attributes

ESN< T > * esn_
ESN< T >::DEMatrix M
ESN< T >::DEMatrix O

Constructor & Destructor Documentation

template<typename T>
aureservoir::TrainPI< T >::TrainPI ( ESN< T > *  esn  )  [inline]

template<typename T>
virtual aureservoir::TrainPI< T >::~TrainPI (  )  [inline, virtual]


Member Function Documentation

template<typename T>
void aureservoir::TrainPI< T >::train ( const typename ESN< T >::DEMatrix in,
const typename ESN< T >::DEMatrix out,
int  washout 
) throw (AUExcept) [inline, virtual]

training algorithm

Implements aureservoir::TrainBase< T >.

template<typename T>
void aureservoir::TrainBase< T >::checkParams ( const typename ESN< T >::DEMatrix in,
const typename ESN< T >::DEMatrix out,
int  washout 
) throw (AUExcept) [inline, protected, inherited]

check parameters

template<typename T>
void aureservoir::TrainBase< T >::collectStates ( const typename ESN< T >::DEMatrix in,
const typename ESN< T >::DEMatrix out,
int  washout 
) [inline, protected, inherited]

collect network states with simulation algorithm

template<typename T>
void aureservoir::TrainBase< T >::squareStates (  )  [inline, protected, inherited]

squares states for SIM_SQUARE

template<typename T>
void aureservoir::TrainBase< T >::clearData (  )  [inline, protected, inherited]

frees allocated data for M and O


Field Documentation

template<typename T>
ESN<T>* aureservoir::TrainBase< T >::esn_ [protected, inherited]

reference to the data of the network

template<typename T>
ESN<T>::DEMatrix aureservoir::TrainBase< T >::M [protected, inherited]

matrix for network states and inputs over all timesteps

template<typename T>
ESN<T>::DEMatrix aureservoir::TrainBase< T >::O [protected, inherited]

matrix for outputs over all timesteps


The documentation for this class was generated from the following files:
Generated on Wed Mar 12 21:16:14 2008 for aureservoir by  doxygen 1.5.3