edu.wlu.cs.levy.SNARLI
Class IGG

java.lang.Object
  |
  +--edu.wlu.cs.levy.SNARLI.Map2D
        |
        +--edu.wlu.cs.levy.SNARLI.IGG

public class IGG
extends Map2D

IGG implements Fritzke's Incremental Growing Grid network. Based on

@Article{Fritzke1994,
    author =  {B. Fritzke},
    title =   {Growing cell structures - a self-organizing network for 
               unsupervised and supervised learning},
    journal = {Neural Networks},
    year =    {1994},
    volume =  {7},
    number =  {9},
    pages =   {1441-1460}
  }
  

Since:
JDK1.2

Constructor Summary
IGG(double[][] X)
          Builds IGG with random initial weights and uniform probability density function.
IGG(double[][] X, double[] P)
          Builds IGG with random initial weights.
IGG(double[][] X, double[] P, long seed)
          Builds IGG with random initial weights.
IGG(double[][] X, double[] P, java.util.Random rand)
          Builds IGG with random initial weights.
IGG(double[][] X, long seed)
          Builds IGG with random initial weights and uniform probability density function.
IGG(double[][] X, java.util.Random rand)
          Builds IGG with random initial weights and uniform probability density function.
 
Method Summary
 void grow(int Nmin, double e0, double sigma, int lambda_g)
          Runs the growth phase.
 void tune(double e0, double e1, double sigma, int lambda_f)
          Runs the fine-tuning phase.
 
Methods inherited from class edu.wlu.cs.levy.SNARLI.Map2D
getColumnDimension, getRowDimension, getUnit, getUnits, getWeights
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IGG

public IGG(double[][] X,
           double[] P,
           java.util.Random rand)
    throws java.lang.IllegalArgumentException
Builds IGG with random initial weights.

Parameters:
X - data to learn
P - probability density function over X
rand - random-number generator
Throws:
java.lang.IllegalArgumentException - if X has fewer than two dimensions
java.lang.IllegalArgumentException - if X and P have different lengths
java.lang.IllegalArgumentException - if elements of P do not sum to 1

IGG

public IGG(double[][] X,
           double[] P)
    throws java.lang.IllegalArgumentException
Builds IGG with random initial weights.

Parameters:
X - data to learn
P - probability density function over X
Throws:
java.lang.IllegalArgumentException - if x and P have different lengths
java.lang.IllegalArgumentException - if elements of P do not sum to 1

IGG

public IGG(double[][] X,
           double[] P,
           long seed)
    throws java.lang.IllegalArgumentException
Builds IGG with random initial weights.

Parameters:
X - data to learn
P - probability density function over X
seed - seed for random-number generator
Throws:
java.lang.IllegalArgumentException - if X and P have different lengths
java.lang.IllegalArgumentException - if elements of P do not sum to 1

IGG

public IGG(double[][] X)
Builds IGG with random initial weights and uniform probability density function.

Parameters:
X - data to learn

IGG

public IGG(double[][] X,
           long seed)
Builds IGG with random initial weights and uniform probability density function.

Parameters:
X - data to learn
seed - seed for random-number generator

IGG

public IGG(double[][] X,
           java.util.Random rand)
Builds IGG with random initial weights and uniform probability density function.

Parameters:
X - data to learn
rand - random-number generator
Method Detail

grow

public void grow(int Nmin,
                 double e0,
                 double sigma,
                 int lambda_g)
Runs the growth phase. Learning rate e(t) = e0.

Parameters:
Nmin - desired network size
e0 - learning rate
sigma - width parameter
lambda_g - saturation parameter

tune

public void tune(double e0,
                 double e1,
                 double sigma,
                 int lambda_f)
          throws java.lang.IllegalArgumentException
Runs the fine-tuning phase. Learning rate e(t) = e0(e1/e0)^{t/tmax}.

Parameters:
e0 - learning rate
e1 - learning rate
sigma - width parameter
lambda_f - saturation parameter
java.lang.IllegalArgumentException