|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.joone.engine.ExtendedKalmanFilterRNN
public class ExtendedKalmanFilterRNN
Implements the extended Kalman filter (EKF) as described in "Some observations on the use of the extended Kalman filter as a recurrent network learning algorithm" by Williams (1992) in order to train a recurrent neural network. This requires some matrix algebra for which colt is utilised.
Field Summary | |
---|---|
protected double |
initVarW
The initial weight variance estimate |
protected double |
kalmanBoost
A boost factor used to dampen the Kalman gain |
protected java.util.List<NodesAndWeights.Node> |
nodes
The list of nodes we use in the filter |
protected NodesAndWeights |
nodesAndWeights
The network structure |
protected DoubleMatrix2D |
P1p
The P1+ matrix |
protected DoubleMatrix2D |
P2p
The P2+ matrix |
protected DoubleMatrix2D |
P4p
The P4+ matrix |
protected int |
patternCount
Pattern count |
protected int |
processorCount
Number of processors to use - if 2 or more, will use SMP |
protected double |
varDecay
Variance decay factor |
protected double[] |
varU
Used to update the unit variance estimates |
protected double[] |
varW
Used to update the weight variance estimates |
protected int |
verbose
Zero for no verbosity, otherwise the number of patterns after which we croak |
protected java.util.List<NodesAndWeights.Weight> |
weights
The list of weights that we use in the filter |
protected DoubleMatrix1D |
Wp
The W+ vector |
protected DoubleMatrix1D |
yp
The y+ vector |
Constructor Summary | |
---|---|
ExtendedKalmanFilterRNN(NodesAndWeights nodesAndWeights,
double kalmanBoost,
int verbose)
Create a new instance of the filter |
|
ExtendedKalmanFilterRNN(NodesAndWeights nodesAndWeights,
double kalmanBoost,
int verbose,
int processorCount)
Create a new instance of the filter |
Method Summary | |
---|---|
protected void |
init()
Initialise the filter |
void |
update(double[] error)
Update the filter |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected NodesAndWeights nodesAndWeights
protected DoubleMatrix1D yp
protected DoubleMatrix1D Wp
protected DoubleMatrix2D P1p
protected DoubleMatrix2D P4p
protected DoubleMatrix2D P2p
protected java.util.List<NodesAndWeights.Node> nodes
protected java.util.List<NodesAndWeights.Weight> weights
protected double[] varW
protected double initVarW
protected double[] varU
protected double varDecay
protected int patternCount
protected double kalmanBoost
protected int verbose
protected int processorCount
Constructor Detail |
---|
public ExtendedKalmanFilterRNN(NodesAndWeights nodesAndWeights, double kalmanBoost, int verbose, int processorCount)
nodesAndWeights
- the network we need to optimisekalmanBoost
- the boost factor (multiplier) to useverbose
- zero for no verbosity or the number of patterns after which we croakprocessorCount
- if more than 2, will use SMPpublic ExtendedKalmanFilterRNN(NodesAndWeights nodesAndWeights, double kalmanBoost, int verbose)
nodesAndWeights
- the network we need to optimisekalmanBoost
- the boost factor (multiplier) to useverbose
- zero for no verbosity or the number of patterns after which we croakMethod Detail |
---|
protected void init()
public void update(double[] error)
error
- the most recently seen error pattern
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |