org.joone.engine
Class EKFRNNLearnerPlugin

java.lang.Object
  extended by org.joone.util.MonitorPlugin
      extended by org.joone.engine.EKFRNNLearnerPlugin
All Implemented Interfaces:
java.io.Serializable, java.util.EventListener, NeuralNetListener

public class EKFRNNLearnerPlugin
extends MonitorPlugin

A plugin listener that implements the EKF learner, based on "Some observations on the use of the extended Kalman filter as a recurrent network learning algorithm" by Williams (1992) in order to train a network. This should be attached to the desired output layer and will update weights whenever a new desired pattern is recovered.

Author:
mg
See Also:
Serialized Form

Field Summary
protected  int cycleCount
          Network cycle counter
protected  ExtendedKalmanFilterRNN ekf
          The filter that will do the training
protected  Synapse errorPatternListener
          The synapse we will use to catch the errors
protected  double kalmanBoost
          The kalman boost factor
protected  double[] lastError
          The most recently seen error
protected  int processorCount
          Number of processors to use, if 2 or more, will use SMP
protected  int verbose
          Zero for no verbosity, otherwise the number of patterns after which we croak
 
Constructor Summary
EKFRNNLearnerPlugin(double kalmanBoost, int verbose)
          The constructor
EKFRNNLearnerPlugin(double kalmanBoost, int verbose, int processorCount)
          The constructor
 
Method Summary
protected  void attachErrorPatternListener()
          Attach a synapse to the output layer to calculate the error pattern and update the EKF on line.
static void main(java.lang.String[] args)
          Execute one of the testers
protected  void manageCycle(Monitor mon)
           
protected  void manageError(Monitor mon)
           
protected  void manageStart(Monitor mon)
           
protected  void manageStop(Monitor mon)
           
protected  void manageStopError(Monitor mon, java.lang.String msgErr)
           
static void testEKF(java.lang.String[] args)
          Test the EKF learner
 
Methods inherited from class org.joone.util.MonitorPlugin
cicleTerminated, errorChanged, getName, getNeuralNet, getRate, netStarted, netStopped, netStoppedError, setName, setNeuralNet, setRate, toBeManaged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ekf

protected transient ExtendedKalmanFilterRNN ekf
The filter that will do the training


cycleCount

protected transient int cycleCount
Network cycle counter


lastError

protected transient double[] lastError
The most recently seen error


errorPatternListener

protected transient Synapse errorPatternListener
The synapse we will use to catch the errors


kalmanBoost

protected double kalmanBoost
The kalman boost factor


verbose

protected int verbose
Zero for no verbosity, otherwise the number of patterns after which we croak


processorCount

protected int processorCount
Number of processors to use, if 2 or more, will use SMP

Constructor Detail

EKFRNNLearnerPlugin

public EKFRNNLearnerPlugin(double kalmanBoost,
                           int verbose,
                           int processorCount)
The constructor


EKFRNNLearnerPlugin

public EKFRNNLearnerPlugin(double kalmanBoost,
                           int verbose)
The constructor

Method Detail

attachErrorPatternListener

protected void attachErrorPatternListener()
Attach a synapse to the output layer to calculate the error pattern and update the EKF on line.


manageStop

protected void manageStop(Monitor mon)
Specified by:
manageStop in class MonitorPlugin

manageCycle

protected void manageCycle(Monitor mon)
Specified by:
manageCycle in class MonitorPlugin

manageStart

protected void manageStart(Monitor mon)
Specified by:
manageStart in class MonitorPlugin

manageError

protected void manageError(Monitor mon)
Specified by:
manageError in class MonitorPlugin

manageStopError

protected void manageStopError(Monitor mon,
                               java.lang.String msgErr)
Specified by:
manageStopError in class MonitorPlugin

testEKF

public static void testEKF(java.lang.String[] args)
Test the EKF learner


main

public static void main(java.lang.String[] args)
Execute one of the testers



Submit Feedback to pmarrone@users.sourceforge.net