simbad.piconode.core.node
Class FeedForwardNeuralNetworkForBackPropLearning

java.lang.Object
  extended by simbad.piconode.core.node.Node
      extended by simbad.piconode.core.node.ConnectedNode
          extended by simbad.piconode.core.node.ModularNode
              extended by simbad.piconode.core.node.Module
                  extended by simbad.piconode.core.node.Network
                      extended by simbad.piconode.core.node.NeuralNetwork
                          extended by simbad.piconode.core.node.FeedForwardNeuralNetwork
                              extended by simbad.piconode.core.node.FeedForwardNeuralNetworkForBackPropLearning
All Implemented Interfaces:
java.io.Serializable, XmlRepresentation

public class FeedForwardNeuralNetworkForBackPropLearning
extends FeedForwardNeuralNetwork
implements XmlRepresentation, java.io.Serializable

This class implement a feed-forward neural network with learning capabilitie through back-propagation. Such a network should be used exclusively with neurons that handles this very ability (i.e. NeuronForBackPropLearning objects).

See Also:
Serialized Form

Field Summary
protected  ActivationFunctionWithDerivative _activationFunctionForArcsFromBiasNeuron
           
protected  NeuronForBackPropLearning _biasNeuron
           
protected  double _etaLearningRate
           
 
Fields inherited from class simbad.piconode.core.node.NeuralNetwork
_allNeuronsUnorderedList, _biasArcList, _containsBiasNeuron, _init, _inputNeuronsList, _outputNeuronsList
 
Fields inherited from class simbad.piconode.core.node.Network
_arcList, _nodeList
 
Fields inherited from class simbad.piconode.core.node.ConnectedNode
_incomingArcsList, _outgoingArcsList
 
Fields inherited from class simbad.piconode.core.node.Node
_name, nGene
 
Constructor Summary
FeedForwardNeuralNetworkForBackPropLearning()
          create a new network with no bias neuron.
FeedForwardNeuralNetworkForBackPropLearning(ActivationFunction __activationFunctionForArcsFromBiasNeuron)
          Create a new network that contains a bias neuron.
 
Method Summary
protected  void addBiasNeuron()
          Add a bias neuron and connect it to all node in the network
 double backprop_getEtaLearningRate()
           
 void backprop_setEtaLearningRate(double __etaLearningRate)
           
 double estimateSquaredError(java.util.ArrayList __targetValuesRawList)
          Compute the squared error of the networks.
protected  void launchBackPropagationLearningAlgorithm(java.util.ArrayList __targetValuesList)
           
private  java.util.ArrayList makeCleanTargetValuesList(java.util.ArrayList __targetValuesRawList)
          This method is used to build a list suitable for internal use.
 void performBackPropagationLearning(java.util.ArrayList __targetValuesRawList)
          Perform back-propagation learning algorithm using the target output values (correct values only for learnable outputs).
 void registerOutputNeuron(NeuronForBackPropLearning __neuron)
          specify an output neuron.
 void registerOutputNeuron(NeuronForBackPropLearning __neuron, boolean __learnableFlag)
          specify an output neuron and if the neuron should be considered during learning.
 java.lang.String toXml()
          Thomas Darde TER NNEDITOR Provides an xml representation of this element Xml DTD is defined in visual piconode
 
Methods inherited from class simbad.piconode.core.node.FeedForwardNeuralNetwork
initNetwork, step, step
 
Methods inherited from class simbad.piconode.core.node.NeuralNetwork
containsBiasNeuron, displayInformation, getBiasArcAt, getBiasArcListSize, getInputNeuronListSize, getNodeAt, getNodeListSize, getNumberOfAllArcs, getOutputNeuronAt, getOutputNeuronListSize, getWeightsFromAllArcs, getWeightsFromBiasArcs, getWeightsFromStdArcs, registerArc, registerBiasArc, registerInputNeuron, registerNode, registerOutputNeuron, setAllArcsWeightValues, setBiasArcsWeightValues, setStdArcsWeightValues, stepModule
 
Methods inherited from class simbad.piconode.core.node.Network
getArcAt, getArcListSize, updateGenotype
 
Methods inherited from class simbad.piconode.core.node.Module
getInputRegister, getInputRegisterSize, getOldOutputRegister, getOldOutputRegisterSize, getOutputRegister, getOutputRegisterSize, setInputRegister, setInputRegisterSize, setOldOutputRegister, setOldOutputRegisterSize, setOutputRegister, setOutputRegisterSize
 
Methods inherited from class simbad.piconode.core.node.ModularNode
isUpdated, setUpdated
 
Methods inherited from class simbad.piconode.core.node.ConnectedNode
addIncomingArc, addOutgoingArc, getIncomingArcAt, getIncomingArcsList, getIncomingArcsListSize, 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

_activationFunctionForArcsFromBiasNeuron

protected ActivationFunctionWithDerivative _activationFunctionForArcsFromBiasNeuron

_biasNeuron

protected NeuronForBackPropLearning _biasNeuron

_etaLearningRate

protected double _etaLearningRate
Constructor Detail

FeedForwardNeuralNetworkForBackPropLearning

FeedForwardNeuralNetworkForBackPropLearning()
create a new network with no bias neuron.


FeedForwardNeuralNetworkForBackPropLearning

public FeedForwardNeuralNetworkForBackPropLearning(ActivationFunction __activationFunctionForArcsFromBiasNeuron)
Create a new network that contains a bias neuron. Activation function for arcs from bias neuron is given as parameter.

Parameters:
__activationFunctionFromBiasNeuron -
Method Detail

launchBackPropagationLearningAlgorithm

protected void launchBackPropagationLearningAlgorithm(java.util.ArrayList __targetValuesList)

makeCleanTargetValuesList

private java.util.ArrayList makeCleanTargetValuesList(java.util.ArrayList __targetValuesRawList)
This method is used to build a list suitable for internal use. If all output neurons flags are set to "learnable", input list will be returned

Parameters:
__targetValuesRawList -
Returns:

estimateSquaredError

public double estimateSquaredError(java.util.ArrayList __targetValuesRawList)
Compute the squared error of the networks. Ignore non-learnable output node if any.

Parameters:
__targetValuesRawList -
Returns:

performBackPropagationLearning

public void performBackPropagationLearning(java.util.ArrayList __targetValuesRawList)
Perform back-propagation learning algorithm using the target output values (correct values only for learnable outputs).

Parameters:
__targetValuesRawList -

backprop_getEtaLearningRate

public double backprop_getEtaLearningRate()

backprop_setEtaLearningRate

public void backprop_setEtaLearningRate(double __etaLearningRate)

registerOutputNeuron

public void registerOutputNeuron(NeuronForBackPropLearning __neuron)
specify an output neuron.

Parameters:
__neuron -

registerOutputNeuron

public void registerOutputNeuron(NeuronForBackPropLearning __neuron,
                                 boolean __learnableFlag)
specify an output neuron and if the neuron should be considered during learning.

Parameters:
__neuron -
__learnableFlag -

addBiasNeuron

protected void addBiasNeuron()
Description copied from class: NeuralNetwork
Add a bias neuron and connect it to all node in the network

Overrides:
addBiasNeuron in class NeuralNetwork

toXml

public java.lang.String toXml()
Thomas Darde TER NNEDITOR Provides an xml representation of this element Xml DTD is defined in visual piconode

Specified by:
toXml in interface XmlRepresentation
Overrides:
toXml in class FeedForwardNeuralNetwork