yawn.nn.fuzzyartmap
Class FuzzyArtMap

java.lang.Object
  extended by yawn.nn.NeuralNetwork
      extended by yawn.nn.fuzzyartmap.FuzzyArtMap
All Implemented Interfaces:
java.io.Serializable, OptimizableModel

public class FuzzyArtMap
extends NeuralNetwork
implements OptimizableModel

Implements the Fuzzy ARTMAP neural network, as described in

Carpenter, G. A., Grossberg, S., Markuzon, N., Reynolds, J. H. & Rosen, D. B. (1992). Fuzzy ARTMAP: A neural network architecture for incremental supervised learning of analog multidimensional maps. IEEE Transactions on Neural Networks, 3(5):698-713.

This code is based on the implementations of Relu Patrascu (rpatrasc at cs dot uwaterloo dot ca) and John Reynold (refined and maintained by Ah-Hwee Tan (atan at park dot bu dot edu)).
$Id: FuzzyArtMap.java,v 1.11 2005/04/07 17:28:25 supermarti Exp $

Version:
$Revision: 1.11 $
Author:
Luis Martí (luis dot marti at uc3m dot es)
See Also:
Serialized Form

Field Summary
protected  double alphaArtA
           
protected  double alphaArtB
           
protected  FuzzyArt artA
           
protected  FuzzyArt artB
           
protected  double betaArtA
           
protected  double betaArtB
           
protected  double epsilon
          small amount added when doing match tracking
protected  int inputSize
           
protected  double matchError
          max difference between desired output and prediction to be counted as error
protected  int maxEpochs
          max number of passes through the training set
protected  int outputSize
           
protected  boolean useComplementCoding
           
protected  double vigilanceArtA
           
protected  double vigilanceArtB
           
 
Constructor Summary
FuzzyArtMap()
           
 
Method Summary
protected  Pattern bThenAActivation(Pattern input, Pattern output)
          Activates ARTb before ARTa, this kind of activation avoids the ``match tracking anomaly'' reported in
 Pattern deScaleZeroOneOutput(Pattern pat)
           
 OptimizationAdapter getAdapterInstance()
           
 double getAlphaArtA()
           
 double getAlphaArtB()
           
 double getBetaArtA()
           
 double getBetaArtB()
           
 double getEpsilon()
           
 int getInputSize()
           
 double getMatchError()
           
 int getMaxEpochs()
           
 java.lang.String getNeuralNetworkName()
          Returns a human readable
 int getNumberOfArtACategories()
           
 int getNumberOfArtBCategories()
           
 int getNumberOfMismatches()
           
 int getOutputSize()
           
 double getVigilanceArtA()
           
 double getVigilanceArtB()
           
protected  void increaseSize()
           
protected  void init()
           
 boolean isUseComplementCoding()
           
 void oneLearningStep(Pattern input, Pattern output)
          Performs one learning iteration.
 Pattern predict(Pattern input)
          Computes a network prediction
 java.util.Vector propagate(double[][] inData)
           
 Pattern scaleZeroOneInput(Pattern pat)
           
protected  InputOutputPattern[] scaleZeroOneTrainingDataSet(InputOutputPattern[] iops)
           
 void setAlphaArtA(double alphaArtA)
           
 void setAlphaArtB(double alphaArtB)
           
 void setBaseArtAVigilance(double value)
           
 void setBetaArtA(double betaArtA)
           
 void setBetaArtB(double betaArtB)
           
 void setEpsilon(double epsilon)
           
 void setMatchError(double matchError)
           
 void setMaxEpochs(int maxEpochs)
           
 void setNumberOfMismatches(int numberOfMismatches)
           
 void setup(NeuralNetworkConfig config)
           
 void setUseComplementCoding(boolean useComplementCoding)
           
 void setVigilanceArtA(double vigilanceArtA)
           
 void setVigilanceArtB(double vigilanceArtB)
           
 void setVigilanceB(double value)
           
 double[] testPattern(double[] inPattern)
           
 void train(InputOutputPattern[] ori)
          Trains the network until the stop criteria is met.
 NeuralNetworkConfig yieldConfiguration()
           
 
Methods inherited from class yawn.nn.NeuralNetwork
getAdapting, getStatisticsFacility, isAdapting, setAdapting, setStatisticsFacility
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

alphaArtA

protected double alphaArtA

alphaArtB

protected double alphaArtB

artA

protected FuzzyArt artA

artB

protected FuzzyArt artB

betaArtA

protected double betaArtA

betaArtB

protected double betaArtB

epsilon

protected double epsilon
small amount added when doing match tracking


inputSize

protected int inputSize

matchError

protected double matchError
max difference between desired output and prediction to be counted as error


maxEpochs

protected int maxEpochs
max number of passes through the training set


outputSize

protected int outputSize

useComplementCoding

protected boolean useComplementCoding

vigilanceArtA

protected double vigilanceArtA

vigilanceArtB

protected double vigilanceArtB
Constructor Detail

FuzzyArtMap

public FuzzyArtMap()
Method Detail

bThenAActivation

protected Pattern bThenAActivation(Pattern input,
                                   Pattern output)
Activates ARTb before ARTa, this kind of activation avoids the ``match tracking anomaly'' reported in

Bartfai, G. (1996)On the Match Tracking Anomaly of the ARTMAP Neural Network. Neural Networks, 2 (9): 295-308.

Parameters:
input - the ARTa input pattern
output - the ARTb input pattern
Returns:
network prediction

deScaleZeroOneOutput

public Pattern deScaleZeroOneOutput(Pattern pat)

getAdapterInstance

public OptimizationAdapter getAdapterInstance()
Specified by:
getAdapterInstance in interface OptimizableModel

getAlphaArtA

public double getAlphaArtA()
Returns:
Returns the alphaArtA.

getAlphaArtB

public double getAlphaArtB()
Returns:
Returns the alphaArtB.

getBetaArtA

public double getBetaArtA()
Returns:
Returns the betaArtA.

getBetaArtB

public double getBetaArtB()
Returns:
Returns the betaArtB.

getEpsilon

public double getEpsilon()
Returns:
Returns the epsilon.

getInputSize

public int getInputSize()
Specified by:
getInputSize in class NeuralNetwork

getMatchError

public double getMatchError()
Returns:
Returns the matchError.

getMaxEpochs

public int getMaxEpochs()
Returns:
Returns the maxEpochs.

getNeuralNetworkName

public java.lang.String getNeuralNetworkName()
Description copied from class: NeuralNetwork
Returns a human readable

Specified by:
getNeuralNetworkName in class NeuralNetwork
Returns:
The name
See Also:
NeuralNetwork.getNeuralNetworkName()

getNumberOfArtACategories

public int getNumberOfArtACategories()

getNumberOfArtBCategories

public int getNumberOfArtBCategories()

getNumberOfMismatches

public int getNumberOfMismatches()
Returns:
Returns the numberOfMismatches.

getOutputSize

public int getOutputSize()
Specified by:
getOutputSize in class NeuralNetwork

getVigilanceArtA

public double getVigilanceArtA()
Returns:
Returns the vigilanceArtA.

getVigilanceArtB

public double getVigilanceArtB()
Returns:
Returns the vigilanceArtB.

increaseSize

protected void increaseSize()

init

protected void init()

isUseComplementCoding

public boolean isUseComplementCoding()
Returns:
Returns the useComplementCoding.

oneLearningStep

public void oneLearningStep(Pattern input,
                            Pattern output)
Description copied from class: NeuralNetwork
Performs one learning iteration.

Specified by:
oneLearningStep in class NeuralNetwork
Parameters:
input - The network input.
output - The desired output.

predict

public Pattern predict(Pattern input)
Description copied from class: NeuralNetwork
Computes a network prediction

Specified by:
predict in class NeuralNetwork
Parameters:
input - The input to propagate.
Returns:
the network output.

propagate

public java.util.Vector propagate(double[][] inData)

scaleZeroOneInput

public Pattern scaleZeroOneInput(Pattern pat)

scaleZeroOneTrainingDataSet

protected InputOutputPattern[] scaleZeroOneTrainingDataSet(InputOutputPattern[] iops)

setAlphaArtA

public void setAlphaArtA(double alphaArtA)
Parameters:
alphaArtA - The alphaArtA to set.

setAlphaArtB

public void setAlphaArtB(double alphaArtB)
Parameters:
alphaArtB - The alphaArtB to set.

setBaseArtAVigilance

public void setBaseArtAVigilance(double value)

setBetaArtA

public void setBetaArtA(double betaArtA)
Parameters:
betaArtA - The betaArtA to set.

setBetaArtB

public void setBetaArtB(double betaArtB)
Parameters:
betaArtB - The betaArtB to set.

setEpsilon

public void setEpsilon(double epsilon)
Parameters:
epsilon - The epsilon to set.

setMatchError

public void setMatchError(double matchError)
Parameters:
matchError - The matchError to set.

setMaxEpochs

public void setMaxEpochs(int maxEpochs)
Parameters:
maxEpochs - The maxEpochs to set.

setNumberOfMismatches

public void setNumberOfMismatches(int numberOfMismatches)
Parameters:
numberOfMismatches - The numberOfMismatches to set.

setup

public void setup(NeuralNetworkConfig config)
           throws ConfigurationException
Specified by:
setup in class NeuralNetwork
Throws:
ConfigurationException

setUseComplementCoding

public void setUseComplementCoding(boolean useComplementCoding)
Parameters:
useComplementCoding - The useComplementCoding to set.

setVigilanceArtA

public void setVigilanceArtA(double vigilanceArtA)
Parameters:
vigilanceArtA - The vigilanceArtA to set.

setVigilanceArtB

public void setVigilanceArtB(double vigilanceArtB)
Parameters:
vigilanceArtB - The vigilanceArtB to set.

setVigilanceB

public void setVigilanceB(double value)

testPattern

public double[] testPattern(double[] inPattern)

train

public void train(InputOutputPattern[] ori)
Description copied from class: NeuralNetwork
Trains the network until the stop criteria is met.

Specified by:
train in class NeuralNetwork
Parameters:
ori - The training set to be learned.

yieldConfiguration

public NeuralNetworkConfig yieldConfiguration()
Specified by:
yieldConfiguration in class NeuralNetwork


Copyright © 2003-2005 GIAA, Universidad Carlos III de Madrid. All Rights Reserved.