simbad.piconode.core.node
Class NeuronForBackPropLearning

java.lang.Object
  extended by simbad.piconode.core.node.Node
      extended by simbad.piconode.core.node.ConnectedNode
          extended by simbad.piconode.core.node.NeuronalNode
              extended by simbad.piconode.core.node.Neuron
                  extended by simbad.piconode.core.node.NeuronForBackPropLearning
All Implemented Interfaces:
java.io.Serializable, XmlRepresentation

public class NeuronForBackPropLearning
extends Neuron
implements XmlRepresentation, java.io.Serializable

The NeuronForBackPropLearning class extends a Neuron with methods that makes it possible to embed such neurons into NeuralNetworks with Back-propagation learning ability (e.g. FeedForwardNeuralNetworkForBackPropLearning).

See Also:
Serialized Form

Field Summary
private  double _deltaErrorSignal
           
private  boolean _learningNodeFlag
           
 
Fields inherited from class simbad.piconode.core.node.Neuron
_activationFunction
 
Fields inherited from class simbad.piconode.core.node.NeuronalNode
_isInputNode, _isOutputNode, _network, _neuronValue
 
Fields inherited from class simbad.piconode.core.node.ConnectedNode
_incomingArcsList, _outgoingArcsList
 
Fields inherited from class simbad.piconode.core.node.Node
_name, nGene
 
Constructor Summary
NeuronForBackPropLearning(FeedForwardNeuralNetworkForBackPropLearning __network)
           
NeuronForBackPropLearning(FeedForwardNeuralNetworkForBackPropLearning __network, ActivationFunctionWithDerivative __activationFunctionObject)
           
NeuronForBackPropLearning(FeedForwardNeuralNetworkForBackPropLearning __network, ActivationFunctionWithDerivative __activationFunctionObject, java.lang.String __name)
           
NeuronForBackPropLearning(FeedForwardNeuralNetworkForBackPropLearning __network, java.lang.String __name)
           
 
Method Summary
protected  void backprop_computeErrorTermHiddenNeuron()
          [backpropagation step 2] delta_k = derivativeOfActivationFunction(x) * ( Sum_allAxons ( weight_k * DeltaErrorSignal_targetedNeuronByk ) )
protected  void backprop_computeErrorTermOutputNeuron(double __targetValue)
          [backpropagation step 1] delta_k = derivativeOfActivationFunction(x) * ( targetValue_k - outputValue_k )
 double getDeltaErrorSignal()
           
 boolean isLearningNode()
           
private  void setDeltaErrorSignal(double __value)
           
 void setLearningNodeFlag(boolean __flag)
          set the neuron status toward learning ("true" by default -- i.e.
 java.lang.String toXml()
          Thomas Darde TER Visual Neuron Editor
 
Methods inherited from class simbad.piconode.core.node.Neuron
getActivationFunction, setActivationFunction, step
 
Methods inherited from class simbad.piconode.core.node.NeuronalNode
addIncomingArc, checkNetwork, displayInformation, getIncomingArcAt, getIncomingArcsListSize, getNetwork, getOutputValue, isNetworkInput, isNetworkOutput, setInputValue, setNetworkInputFlag, setNetworkOutputFlag, setValue
 
Methods inherited from class simbad.piconode.core.node.ConnectedNode
addIncomingArc, addOutgoingArc, getIncomingArcsList, getOutgoingArcAt, getOutgoingArcsList, getOutgoingArcsListSize
 
Methods inherited from class simbad.piconode.core.node.Node
getName, getNGene, setName, setNGene
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_learningNodeFlag

private boolean _learningNodeFlag

_deltaErrorSignal

private double _deltaErrorSignal
Constructor Detail

NeuronForBackPropLearning

public NeuronForBackPropLearning(FeedForwardNeuralNetworkForBackPropLearning __network)

NeuronForBackPropLearning

public NeuronForBackPropLearning(FeedForwardNeuralNetworkForBackPropLearning __network,
                                 ActivationFunctionWithDerivative __activationFunctionObject)

NeuronForBackPropLearning

public NeuronForBackPropLearning(FeedForwardNeuralNetworkForBackPropLearning __network,
                                 java.lang.String __name)

NeuronForBackPropLearning

public NeuronForBackPropLearning(FeedForwardNeuralNetworkForBackPropLearning __network,
                                 ActivationFunctionWithDerivative __activationFunctionObject,
                                 java.lang.String __name)
Method Detail

isLearningNode

public boolean isLearningNode()
Overrides:
isLearningNode in class NeuronalNode

setDeltaErrorSignal

private void setDeltaErrorSignal(double __value)

getDeltaErrorSignal

public double getDeltaErrorSignal()

backprop_computeErrorTermOutputNeuron

protected void backprop_computeErrorTermOutputNeuron(double __targetValue)
[backpropagation step 1] delta_k = derivativeOfActivationFunction(x) * ( targetValue_k - outputValue_k )

Parameters:
__targetValue -

backprop_computeErrorTermHiddenNeuron

protected void backprop_computeErrorTermHiddenNeuron()
[backpropagation step 2] delta_k = derivativeOfActivationFunction(x) * ( Sum_allAxons ( weight_k * DeltaErrorSignal_targetedNeuronByk ) )


setLearningNodeFlag

public void setLearningNodeFlag(boolean __flag)
set the neuron status toward learning ("true" by default -- i.e. will be considered during back-propagation). For instance, this is particularly useful if you intend to implement nolfi/parisi types of neural networks where only part of the network is modified during learning. Thus, if flag is *false*, every arcs targeting this neuron will *not* considered during learning.

Parameters:
__flag -

toXml

public java.lang.String toXml()
Thomas Darde TER Visual Neuron Editor

Specified by:
toXml in interface XmlRepresentation
Overrides:
toXml in class Neuron
Returns:
an Xml representation of this object