org.encog.neural.art
Class ART1

java.lang.Object
  extended by org.encog.ml.BasicML
      extended by org.encog.neural.art.ART
          extended by org.encog.neural.art.ART1
All Implemented Interfaces:
Serializable, MLClassification, MLInput, MLInputOutput, MLMethod, MLOutput, MLProperties, MLResettable

public class ART1
extends ART
implements MLResettable, MLClassification

Implements an ART1 neural network. An ART1 neural network is trained to recognize bipolar patterns as it is presented data. There is no distinct learning phase, like there is with other neural network types. The ART1 neural network is a type of Adaptive Resonance Theory (ART) neural network. ART1 was developed by Stephen Grossberg and Gail Carpenter. This neural network type supports only bipolar input. The ART1 neural network is trained as it is used. New patterns are presented to the ART1 network, and they are classified into either new, or existing, classes. Once the maximum number of classes have been used the network will report that it is out of classes. ART1 neural networks are used for classification. There are essentially 2 layers in an ART1 network. The first, named the F1 layer, acts as the input. The F1 layer receives bipolar patterns that the network is to classify. The F2 layer specifies the maximum number classes that the ART1 network can recognize. Plasticity is an important part for all Adaptive Resonance Theory (ART) neural networks. Unlike most neural networks, ART1 does not have a distinct training and usage stage. The ART1 network will learn as it is used.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.encog.neural.art.ART
PROPERTY_A1, PROPERTY_B1, PROPERTY_C1, PROPERTY_D1, PROPERTY_L, PROPERTY_NO_WINNER, PROPERTY_VIGILANCE
 
Constructor Summary
ART1()
          Default constructor, used mainly for persistence.
ART1(int theF1Count, int theF2Count)
          Construct the ART1 network.
 
Method Summary
 void adjustWeights()
          Adjust the weights for the pattern just presented.
 int classify(MLData input)
          Classify the input data to a class number.
 void compute(BiPolarNeuralData input, BiPolarNeuralData output)
          Compute the output from the ART1 network.
 MLData compute(MLData input)
          Compute the output for the BasicNetwork class.
 double getA1()
           
 double getB1()
           
 double getC1()
           
 double getD1()
           
 int getF1Count()
           
 int getF2Count()
           
 int getInputCount()
           
 double getL()
           
 int getNoWinner()
           
 int getOutputCount()
           
 double getVigilance()
           
 Matrix getWeightsF1toF2()
           
 Matrix getWeightsF2toF1()
           
 int getWinner()
           
 boolean hasWinner()
           
 double magnitude(BiPolarNeuralData input)
          Get the magnitude of the specified input.
 void reset()
          Reset the weight matrix back to starting values.
 void reset(int seed)
          Reset with a specic seed.
 void setA1(double theA1)
          Set the A1 parameter.
 void setB1(double theB1)
          Set the B1 parameter.
 void setC1(double theC1)
          Set the C1 parameter.
 void setD1(double theD1)
          Set the D1 parameter.
 void setF1Count(int i)
          Set the F1 count.
 void setF2Count(int i)
          Set the F2 count.
 void setL(double theL)
          Set the L parameter.
 void setNoWinner(int i)
          Set the i parameter.
 void setVigilance(double theVigilance)
          Set the vigilance.
 void setWeightsF1toF2(Matrix matrix)
          Set the f1 to f2 matrix.
 void setWeightsF2toF1(Matrix matrix)
          Set the f2 to f1 matrix.
 
Methods inherited from class org.encog.neural.art.ART
updateProperties
 
Methods inherited from class org.encog.ml.BasicML
getProperties, getPropertyDouble, getPropertyLong, getPropertyString, setProperty, setProperty, setProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ART1

public ART1()
Default constructor, used mainly for persistence.


ART1

public ART1(int theF1Count,
            int theF2Count)
Construct the ART1 network.

Parameters:
theF1Count - The neuron count for the f1 layer.
theF2Count - The neuron count for the f2 layer.
Method Detail

adjustWeights

public void adjustWeights()
Adjust the weights for the pattern just presented.


classify

public int classify(MLData input)
Classify the input data to a class number.

Specified by:
classify in interface MLClassification
Parameters:
input - The input data.
Returns:
The class that the data belongs to.

compute

public void compute(BiPolarNeuralData input,
                    BiPolarNeuralData output)
Compute the output from the ART1 network. This can be called directly or used by the BasicNetwork class. Both input and output should be bipolar numbers.

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

compute

public MLData compute(MLData input)
Compute the output for the BasicNetwork class.

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

getA1

public double getA1()
Returns:
The A1 parameter.

getB1

public double getB1()
Returns:
The B1 parameter.

getC1

public double getC1()
Returns:
The C1 parameter.

getD1

public double getD1()
Returns:
The D1 parameter.

getF1Count

public int getF1Count()
Returns:
the f1Count

getF2Count

public int getF2Count()
Returns:
the f2Count

getInputCount

public int getInputCount()
Specified by:
getInputCount in interface MLInput
Returns:
The input.

getL

public double getL()
Returns:
The L parameter.

getNoWinner

public int getNoWinner()
Returns:
This is the value that is returned if there is no winner. This value is generally set to the index of the last classes, plus 1. For example, if there were 3 classes, the network would return 0-2 to represent what class was found, in this case the no winner property would be set to 3.

getOutputCount

public int getOutputCount()
Specified by:
getOutputCount in interface MLOutput
Returns:
The number of neurons in the output count, which is the f2 layer count.

getVigilance

public double getVigilance()
Returns:
The vigilance parameter.

getWeightsF1toF2

public Matrix getWeightsF1toF2()
Returns:
the weightsF1toF2

getWeightsF2toF1

public Matrix getWeightsF2toF1()
Returns:
the weightsF2toF1

getWinner

public int getWinner()
Returns:
The winning neuron.

hasWinner

public boolean hasWinner()
Returns:
Does this network have a "winner"?

magnitude

public double magnitude(BiPolarNeuralData input)
Get the magnitude of the specified input.

Parameters:
input - The input to calculate the magnitude for.
Returns:
The magnitude of the specified pattern.

reset

public void reset()
Reset the weight matrix back to starting values.

Specified by:
reset in interface MLResettable

reset

public void reset(int seed)
Reset with a specic seed.

Specified by:
reset in interface MLResettable
Parameters:
seed - The seed to reset with.

setA1

public void setA1(double theA1)
Set the A1 parameter.

Parameters:
theA1 - The new value.

setB1

public void setB1(double theB1)
Set the B1 parameter.

Parameters:
theB1 - The new value.

setC1

public void setC1(double theC1)
Set the C1 parameter.

Parameters:
theC1 - The new value.

setD1

public void setD1(double theD1)
Set the D1 parameter.

Parameters:
theD1 - The new value.

setF1Count

public void setF1Count(int i)
Set the F1 count. The F1 layer is the input layer.

Parameters:
i - The count.

setF2Count

public void setF2Count(int i)
Set the F2 count. The F2 layer is the output layer.

Parameters:
i - The count.

setL

public void setL(double theL)
Set the L parameter.

Parameters:
theL - The new value.

setNoWinner

public void setNoWinner(int i)
Set the i parameter.

Parameters:
i - The new value.

setVigilance

public void setVigilance(double theVigilance)
Set the vigilance.

Parameters:
theVigilance - The new value.

setWeightsF1toF2

public void setWeightsF1toF2(Matrix matrix)
Set the f1 to f2 matrix.

Parameters:
matrix - The new matrix.

setWeightsF2toF1

public void setWeightsF2toF1(Matrix matrix)
Set the f2 to f1 matrix.

Parameters:
matrix - The new matrix.


Copyright © 2014. All Rights Reserved.