org.joone.engine.learning
Class FahlmanTeacherSynapse

java.lang.Object
  extended by org.joone.engine.Synapse
      extended by org.joone.engine.learning.AbstractTeacherSynapse
          extended by org.joone.engine.learning.TeacherSynapse
              extended by org.joone.engine.learning.FahlmanTeacherSynapse
All Implemented Interfaces:
java.io.Serializable, InputPatternListener, Learnable, LearnableSynapse, NeuralElement, OutputPatternListener, Inspectable

public class FahlmanTeacherSynapse
extends TeacherSynapse

This class extends the normal Teacher synapse and implements the Fahlman 40-20-40 criterion (the values can be changed). This teacher makes only sense in case of binary outputs.

In case of the default values (40-20-40) and considering [0,1] binary outputs the criterion is fullfilled if for all patterns the output is - within [0, 0.4] in case the desired output is 0 - within [0.6, 1] in case the desired output is 1.

More about this criterion can be found at http://citeseer.ist.psu.edu/fahlman88empirical.html.

Author:
Boris Jansen
See Also:
Serialized Form

Field Summary
static java.lang.String CRITERION
          Constant to indicate (key) the parameter for checking (in the monitor object) if the criterion has been forfilled or not.
protected static ILogger log
          Logger
 
Fields inherited from class org.joone.engine.learning.TeacherSynapse
GlobalError
 
Fields inherited from class org.joone.engine.learning.AbstractTeacherSynapse
currEpoch, desired, error, lastErrorPatternReady, net
 
Fields inherited from class org.joone.engine.Synapse
array, b_pattern, bitems, bouts, count, enabled, fwdLock, inps, items, learnable, m_batch, m_pattern, myLearner, outs, revLock
 
Constructor Summary
FahlmanTeacherSynapse()
          Creates a new instance of FahlmanTeacherSynapse
 
Method Summary
 double calculateError(double aDesired, double anOutput, int anIndex)
          Calculates the error to be backpropaged for a single output neuron.
 double getLowerBit()
          Gets the lower bit value.
 double getLowerBitPercentage()
          Gets the lower bit percentage.
 double getUpperBit()
          Gets the upper bit value.
 double getUpperBitPercentage()
          Gets the upper bit percentage.
 void setLowerBit(double aValue)
          Sets the lower bit.
 void setLowerBitPercentage(double aValue)
          Sets the lower bit percentage.
 void setUpperBit(double aValue)
          Sets the upper bit.
 void setUpperBitPercentage(double aValue)
          Sets the upper bit percentage.
 
Methods inherited from class org.joone.engine.learning.TeacherSynapse
calculateGlobalError, fwdPut
 
Methods inherited from class org.joone.engine.learning.AbstractTeacherSynapse
backward, check, constructErrorPattern, epochFinished, forward, fwdGet, getDesired, getLastErrorPattern, getSeenPatterns, incSeenPatterns, init, isFirstTime, isLastErrorPatternReady, netStoppedError, pushError, readResolve, reset, resetInput, revGet, revPut, setArrays, setDesired, setDimensions, setFirstTime, setInputDimension, setMonitor, setSeenPatterns, stopTheNet
 
Methods inherited from class org.joone.engine.Synapse
addNoise, canCountSteps, fwdPattern_consume, fwdPattern_produce, getCount, getFwdLock, getIgnoreBefore, getInputDimension, getLearner, getLearningRate, getMomentum, getMonitor, getName, getOutputDimension, getRevLock, getSynapseNameSafely, getWeights, initLearner, InspectableTitle, Inspections, isEnabled, isInputFull, isLoopBack, isOutputFull, randomize, revPattern_consume, revPattern_produce, setEnabled, setIgnoreBefore, setInputFull, setLearningRate, setLoopBack, setMomentum, setName, setOutputDimension, setOutputFull, setWeights, warnLogger, warnLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CRITERION

public static final java.lang.String CRITERION
Constant to indicate (key) the parameter for checking (in the monitor object) if the criterion has been forfilled or not.

See Also:
Constant Field Values

log

protected static final ILogger log
Logger

Constructor Detail

FahlmanTeacherSynapse

public FahlmanTeacherSynapse()
Creates a new instance of FahlmanTeacherSynapse

Method Detail

setUpperBit

public void setUpperBit(double aValue)
Sets the upper bit.

Parameters:
aValue - sets the upper bit to aValue.

getUpperBit

public double getUpperBit()
Gets the upper bit value.

Returns:
the upper bit value.

setLowerBit

public void setLowerBit(double aValue)
Sets the lower bit.

Parameters:
aValue - sets the lower bit to aValue.

getLowerBit

public double getLowerBit()
Gets the lower bit value.

Returns:
the lower bit value.

setUpperBitPercentage

public void setUpperBitPercentage(double aValue)
Sets the upper bit percentage.

Parameters:
aValue - sets the upper bit percentage to aValue.

getUpperBitPercentage

public double getUpperBitPercentage()
Gets the upper bit percentage.

Returns:
the upper bit percentage.

setLowerBitPercentage

public void setLowerBitPercentage(double aValue)
Sets the lower bit percentage.

Parameters:
aValue - sets the lower bit percentage to aValue.

getLowerBitPercentage

public double getLowerBitPercentage()
Gets the lower bit percentage.

Returns:
the lower bit percentage.

calculateError

public double calculateError(double aDesired,
                             double anOutput,
                             int anIndex)
Description copied from class: AbstractTeacherSynapse
Calculates the error to be backpropaged for a single output neuron. (The function should also update the global error internally).

Overrides:
calculateError in class TeacherSynapse
Parameters:
aDesired - the desired output
anOutput - the actual output of a single neuron
anIndex - the index of the output neuron
Returns:
the error to be back propagated


Submit Feedback to pmarrone@users.sourceforge.net