The Encog Project

org.encog.neural.networks
Interface Network

All Superinterfaces:
java.lang.Cloneable, EncogPersistedObject, java.io.Serializable
All Known Implementing Classes:
BasicNetwork

public interface Network
extends EncogPersistedObject

Interface that defines a neural network.

Author:
jheaton

Method Summary
 void addLayer(Layer layer)
          Add a layer to the neural network.
 void addLayer(Layer layer, SynapseType type)
          Add a layer to the neural network.
 double calculateError(NeuralDataSet data)
          Calculate the error for this neural network.
 int calculateNeuronCount()
          Calculate the total number of neurons in the network across all layers.
 void checkInputSize(NeuralData input)
          Check that the input size is acceptable, if it does not match the input layer, then throw an error.
 java.lang.Object clone()
          Return a clone of this neural network.
 boolean compareLayer(Layer layerThis, Layer layerOther, int precision)
          Used to compare one neural network to another, compare two layers.
 NeuralData compute(NeuralData input)
          Compute the output for a given input to the neural network.
 NeuralData compute(NeuralData input, NeuralOutputHolder useHolder)
          Compute the output for a given input to the neural network.
 Persistor createPersistor()
          Create a persistor for this object.
 boolean equals(BasicNetwork other)
          Compare the two neural networks.
 boolean equals(BasicNetwork other, int precision)
          Determine if this neural network is equal to another.
 java.lang.String getDescription()
           
 int getHiddenLayerCount()
          Get the count for how many hidden layers are present.
 java.util.Collection<Layer> getHiddenLayers()
          Get a collection of the hidden layers in the network.
 Layer getInputLayer()
          Get the input layer.
 java.lang.String getName()
           
 Layer getOutputLayer()
          Get the output layer.
 NeuralStructure getStructure()
           
 int getWeightMatrixSize()
           
 int hashCode()
          Generate a hash code.
 void inferOutputLayer()
          Called to cause the network to attempt to infer which layer should be the output layer.
 boolean isHidden(Layer layer)
          Determine if this layer is hidden.
 boolean isInput(Layer layer)
          Determine if this layer is the input layer.
 boolean isOutput(Layer layer)
          Determine if this layer is the output layer.
 void reset()
          Reset the weight matrix and the thresholds.
 void setDescription(java.lang.String theDescription)
          Set the description for this object.
 void setInputLayer(Layer input)
          Define the input layer for the network.
 void setName(java.lang.String name)
          Set the name of this object.
 void setOutputLayer(Layer outputLayer)
           
 java.lang.String toString()
           
 int winner(NeuralData input)
          Determine the winner for the specified input.
 

Method Detail

addLayer

void addLayer(Layer layer)
Add a layer to the neural network. The first layer added is the input layer, the last layer added is the output layer. This layer is added with a weighted synapse.

Parameters:
layer - The layer to be added.

addLayer

void addLayer(Layer layer,
              SynapseType type)
Add a layer to the neural network. If there are no layers added this layer will become the input layer. This function automatically updates both the input and output layer references.

Parameters:
layer - The layer to be added to the network.
type - What sort of synapse should connect this layer to the last.

calculateError

double calculateError(NeuralDataSet data)
Calculate the error for this neural network. The error is calculated using root-mean-square(RMS).

Parameters:
data - The training set.
Returns:
The error percentage.

calculateNeuronCount

int calculateNeuronCount()
Calculate the total number of neurons in the network across all layers.

Returns:
The neuron count.

checkInputSize

void checkInputSize(NeuralData input)
Check that the input size is acceptable, if it does not match the input layer, then throw an error.

Parameters:
input - The input data.

clone

java.lang.Object clone()
Return a clone of this neural network. Including structure, weights and threshold values.

Specified by:
clone in interface EncogPersistedObject
Returns:
A cloned copy of the neural network.

compareLayer

boolean compareLayer(Layer layerThis,
                     Layer layerOther,
                     int precision)
Used to compare one neural network to another, compare two layers.

Parameters:
layerThis - The layer being compared.
layerOther - The other layer.
precision - The precision to use, how many decimal places.
Returns:
Returns true if the two layers are the same.

compute

NeuralData compute(NeuralData input)
Compute the output for a given input to the neural network.

Parameters:
input - The input to the neural network.
Returns:
The output from the neural network.

compute

NeuralData compute(NeuralData input,
                   NeuralOutputHolder useHolder)
Compute the output for a given input to the neural network. This method provides a parameter to specify an output holder to use. This holder allows propagation training to track the output from each layer. If you do not need this holder pass null, or use the other compare method.

Parameters:
input - The input provide to the neural network.
useHolder - Allows a holder to be specified, this allows propagation training to check the output of each layer.
Returns:
The results from the output neurons.

createPersistor

Persistor createPersistor()
Create a persistor for this object.

Specified by:
createPersistor in interface EncogPersistedObject
Returns:
The newly created persistor.

equals

boolean equals(BasicNetwork other)
Compare the two neural networks. For them to be equal they must be of the same structure, and have the same matrix values.

Parameters:
other - The other neural network.
Returns:
True if the two networks are equal.

equals

boolean equals(BasicNetwork other,
               int precision)
Determine if this neural network is equal to another. Equal neural networks have the same weight matrix and threshold values, within a specified precision.

Parameters:
other - The other neural network.
precision - The number of decimal places to compare to.
Returns:
True if the two neural networks are equal.

getDescription

java.lang.String getDescription()
Specified by:
getDescription in interface EncogPersistedObject
Returns:
The description for this object.

getHiddenLayerCount

int getHiddenLayerCount()
Get the count for how many hidden layers are present.

Returns:
The hidden layer count.

getHiddenLayers

java.util.Collection<Layer> getHiddenLayers()
Get a collection of the hidden layers in the network.

Returns:
The hidden layers.

getInputLayer

Layer getInputLayer()
Get the input layer.

Returns:
The input layer.

getName

java.lang.String getName()
Specified by:
getName in interface EncogPersistedObject
Returns:
the name

getOutputLayer

Layer getOutputLayer()
Get the output layer.

Returns:
The output layer.

getStructure

NeuralStructure getStructure()
Returns:
Get the structure of the neural network. The structure allows you to quickly obtain synapses and layers without traversing the network.

getWeightMatrixSize

int getWeightMatrixSize()
Returns:
The size of the matrix.

hashCode

int hashCode()
Generate a hash code.

Overrides:
hashCode in class java.lang.Object
Returns:
THe hash code.

inferOutputLayer

void inferOutputLayer()
Called to cause the network to attempt to infer which layer should be the output layer.


isHidden

boolean isHidden(Layer layer)
Determine if this layer is hidden.

Parameters:
layer - The layer to evaluate.
Returns:
True if this layer is a hidden layer.

isInput

boolean isInput(Layer layer)
Determine if this layer is the input layer.

Parameters:
layer - The layer to evaluate.
Returns:
True if this layer is the input layer.

isOutput

boolean isOutput(Layer layer)
Determine if this layer is the output layer.

Parameters:
layer - The layer to evaluate.
Returns:
True if this layer is the output layer.

reset

void reset()
Reset the weight matrix and the thresholds.


setDescription

void setDescription(java.lang.String theDescription)
Set the description for this object.

Specified by:
setDescription in interface EncogPersistedObject
Parameters:
theDescription - The description.

setInputLayer

void setInputLayer(Layer input)
Define the input layer for the network.

Parameters:
input - The new input layer.

setName

void setName(java.lang.String name)
Description copied from interface: EncogPersistedObject
Set the name of this object.

Specified by:
setName in interface EncogPersistedObject
Parameters:
name - the name to set

setOutputLayer

void setOutputLayer(Layer outputLayer)
Parameters:
outputLayer - the outputLayer to set

toString

java.lang.String toString()
Overrides:
toString in class java.lang.Object
Returns:
Convert this object to a string.

winner

int winner(NeuralData input)
Determine the winner for the specified input. This is the number of the winning neuron.

Parameters:
input - The input patter to present to the neural network.
Returns:
The winning neuron.

The Encog Project