org.encog.neural.art

## Class ART1

- java.lang.Object
- - org.encog.ml.BasicML
  - - org.encog.neural.art.ART
    - - 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

    Constructors
    Constructor and Description
    `ART1()` Default constructor, used mainly for persistence.
    `ART1(int theF1Count, int theF2Count)` Construct the ART1 network.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.