org.retro.neural
Class IGG

java.lang.Object
  extended byorg.retro.neural.Map2D
      extended byorg.retro.neural.IGG

public class IGG
extends Map2D


Nested Class Summary
 
Nested classes inherited from class org.retro.neural.Map2D
Map2D.ReportTimerTask
 
Field Summary
 
Fields inherited from class org.retro.neural.Map2D
_A, _N1, _N2, _percent_done, _PX, _wheel, REPORT_MSEC
 
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)
           
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.
protected  void initA()
           
protected  double sigma(int t, int tmax)
           
 void tune(double e0, double e1, double sigma, int lambda_f)
          Runs the fine-tuning phase.
 
Methods inherited from class org.retro.neural.Map2D
adapt, getColumnDimension, getRowDimension, getUnit, getUnit, getUnits, getWeights, learn, randomSignal, scale, updf, vector, winner
 
Methods inherited from class java.lang.Object
clone, equals, finalize, 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

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
Throws:
java.lang.IllegalArgumentException

initA

protected void initA()
Specified by:
initA in class Map2D

sigma

protected double sigma(int t,
                       int tmax)
Specified by:
sigma in class Map2D