Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.joone.engine.extenders
Class SimulatedAnnealingExtender  view SimulatedAnnealingExtender download SimulatedAnnealingExtender.java

java.lang.Object
  extended byorg.joone.engine.extenders.LearnerExtender
      extended byorg.joone.engine.extenders.DeltaRuleExtender
          extended byorg.joone.engine.extenders.SimulatedAnnealingExtender

public class SimulatedAnnealingExtender
extends DeltaRuleExtender

Simulated annealing (SA) refers to the process in which random or thermal noise in a system is systematically decreased over time so as to enhance the system's response. Basically the change of weights and biases in SA is defined as: dW = dw + (n)(r)(2^-kt), where dw is the weight / bias change produced by standard back propagation, n is a constant controlling the initial intensity of the noise, k is the decay constant,t is the generation counter and r is a random number.


Field Summary
private  double theBoundary
          The random number boundary.
private  double theK
          The noise decay constant.
private  double theN
          Constant controlling the initial intensity of the noise.
 
Fields inherited from class org.joone.engine.extenders.LearnerExtender
 
Constructor Summary
SimulatedAnnealingExtender()
          Creates a new instance of SimulatedAnnealingExtender
 
Method Summary
 double getDelta(double[] currentGradientOuts, int j, double aPreviousDelta)
          Computes the delta value for a bias.
 double getDelta(double[] currentInps, int j, double[] currentPattern, int k, double aPreviousDelta)
          Computes the delta value for a weight.
 double getK()
          Gets the noise decay constant.
 double getN()
          Gets the constant controlling the initial noise.
protected  double getRandom()
          Gets a random value between the random boundary.
 double getRandomBoundary()
          Gets the random number boundary.
 void postBiasUpdate(double[] currentGradientOuts)
          Gives extenders a change to do some post-computing after the biases are updated.
 void postWeightUpdate(double[] currentPattern, double[] currentInps)
          Gives extenders a change to do some post-computing after the weights are updated.
 void preBiasUpdate(double[] currentGradientOuts)
          Gives extenders a change to do some pre-computing before the biases are updated.
 void preWeightUpdate(double[] currentPattern, double[] currentInps)
          Gives extenders a change to do some pre-computing before the weights are updated.
 void setK(double aK)
          Sets the noise decay constant.
 void setN(double aN)
          Sets the constant controlling the initial noise.
 void setRandomBoundary(double aBoundary)
          Sets the noise decay constant.
 
Methods inherited from class org.joone.engine.extenders.LearnerExtender
getLearner, isEnabled, setEnabled, setLearner
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

theN

private double theN
Constant controlling the initial intensity of the noise.


theK

private double theK
The noise decay constant.


theBoundary

private double theBoundary
The random number boundary.

Constructor Detail

SimulatedAnnealingExtender

public SimulatedAnnealingExtender()
Creates a new instance of SimulatedAnnealingExtender

Method Detail

getDelta

public double getDelta(double[] currentGradientOuts,
                       int j,
                       double aPreviousDelta)
Description copied from class: DeltaRuleExtender
Computes the delta value for a bias.

Specified by:
getDelta in class DeltaRuleExtender

getDelta

public double getDelta(double[] currentInps,
                       int j,
                       double[] currentPattern,
                       int k,
                       double aPreviousDelta)
Description copied from class: DeltaRuleExtender
Computes the delta value for a weight.

Specified by:
getDelta in class DeltaRuleExtender

postBiasUpdate

public void postBiasUpdate(double[] currentGradientOuts)
Description copied from class: LearnerExtender
Gives extenders a change to do some post-computing after the biases are updated.

Specified by:
postBiasUpdate in class LearnerExtender

postWeightUpdate

public void postWeightUpdate(double[] currentPattern,
                             double[] currentInps)
Description copied from class: LearnerExtender
Gives extenders a change to do some post-computing after the weights are updated.

Specified by:
postWeightUpdate in class LearnerExtender

preBiasUpdate

public void preBiasUpdate(double[] currentGradientOuts)
Description copied from class: LearnerExtender
Gives extenders a change to do some pre-computing before the biases are updated.

Specified by:
preBiasUpdate in class LearnerExtender

preWeightUpdate

public void preWeightUpdate(double[] currentPattern,
                            double[] currentInps)
Description copied from class: LearnerExtender
Gives extenders a change to do some pre-computing before the weights are updated.

Specified by:
preWeightUpdate in class LearnerExtender

getN

public double getN()
Gets the constant controlling the initial noise.


setN

public void setN(double aN)
Sets the constant controlling the initial noise.


getK

public double getK()
Gets the noise decay constant.


setK

public void setK(double aK)
Sets the noise decay constant.


getRandomBoundary

public double getRandomBoundary()
Gets the random number boundary.


setRandomBoundary

public void setRandomBoundary(double aBoundary)
Sets the noise decay constant.


getRandom

protected double getRandom()
Gets a random value between the random boundary.