org.joone.engine.extenders
Class SimulatedAnnealingExtender
- java.lang.Object
-
- org.joone.engine.extenders.LearnerExtender
-
- org.joone.engine.extenders.DeltaRuleExtender
-
- org.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.
-
-
Constructor Summary
Constructors Constructor and Description SimulatedAnnealingExtender()Creates a new instance of SimulatedAnnealingExtender
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description doublegetDelta(double[] currentGradientOuts, int j, double aPreviousDelta)Computes the delta value for a bias.doublegetDelta(double[] currentInps, int j, double[] currentPattern, int k, double aPreviousDelta)Computes the delta value for a weight.doublegetK()Gets the noise decay constant.doublegetN()Gets the constant controlling the initial noise.doublegetRandomBoundary()Gets the random number boundary.voidpostBiasUpdate(double[] currentGradientOuts)Gives extenders a change to do some post-computing after the biases are updated.voidpostWeightUpdate(double[] currentPattern, double[] currentInps)Gives extenders a change to do some post-computing after the weights are updated.voidpreBiasUpdate(double[] currentGradientOuts)Gives extenders a change to do some pre-computing before the biases are updated.voidpreWeightUpdate(double[] currentPattern, double[] currentInps)Gives extenders a change to do some pre-computing before the weights are updated.voidsetK(double aK)Sets the noise decay constant.voidsetN(double aN)Sets the constant controlling the initial noise.voidsetRandomBoundary(double aBoundary)Sets the noise decay constant.-
Methods inherited from class org.joone.engine.extenders.LearnerExtender
isEnabled, setEnabled, setLearner
-
-
-
-
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:DeltaRuleExtenderComputes the delta value for a bias.- Specified by:
getDeltain classDeltaRuleExtender- Parameters:
currentGradientOuts- the back propagated gradients.j- the index of the bias.aPreviousDelta- a delta value calculated by a previous delta extender.
-
getDelta
public double getDelta(double[] currentInps, int j, double[] currentPattern, int k, double aPreviousDelta)Description copied from class:DeltaRuleExtenderComputes the delta value for a weight.- Specified by:
getDeltain classDeltaRuleExtender- Parameters:
currentInps- the forwarded input.j- the input index of the weight.currentPattern- the back propagated gradients.k- the output index of the weight.aPreviousDelta- a delta value calculated by a previous delta extender.
-
postBiasUpdate
public void postBiasUpdate(double[] currentGradientOuts)
Description copied from class:LearnerExtenderGives extenders a change to do some post-computing after the biases are updated.- Specified by:
postBiasUpdatein classLearnerExtender- Parameters:
currentGradientOuts- the back propagated gradients.
-
postWeightUpdate
public void postWeightUpdate(double[] currentPattern, double[] currentInps)Description copied from class:LearnerExtenderGives extenders a change to do some post-computing after the weights are updated.- Specified by:
postWeightUpdatein classLearnerExtender- Parameters:
currentPattern- the back propagated gradients.currentInps- the forwarded input.
-
preBiasUpdate
public void preBiasUpdate(double[] currentGradientOuts)
Description copied from class:LearnerExtenderGives extenders a change to do some pre-computing before the biases are updated.- Specified by:
preBiasUpdatein classLearnerExtender- Parameters:
currentGradientOuts- the back propagated gradients.
-
preWeightUpdate
public void preWeightUpdate(double[] currentPattern, double[] currentInps)Description copied from class:LearnerExtenderGives extenders a change to do some pre-computing before the weights are updated.- Specified by:
preWeightUpdatein classLearnerExtender- Parameters:
currentPattern- the back propagated gradients.currentInps- the forwarded input.
-
getN
public double getN()
Gets the constant controlling the initial noise.- Returns:
- the constant controlling the initial noise.
-
setN
public void setN(double aN)
Sets the constant controlling the initial noise.- Parameters:
aN- the constant controlling the initial noise.
-
getK
public double getK()
Gets the noise decay constant.- Returns:
- the noise decay constant.
-
setK
public void setK(double aK)
Sets the noise decay constant.- Parameters:
aK- the noise decay constant.
-
getRandomBoundary
public double getRandomBoundary()
Gets the random number boundary.- Returns:
- the random number boundary.
-
setRandomBoundary
public void setRandomBoundary(double aBoundary)
Sets the noise decay constant.- Parameters:
aK- the noise decay constant.
-
-
DataMelt 3.0 © DataMelt by jWork.ORG