|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.encog.ml.train.BasicTraining
org.encog.neural.networks.training.pso.NeuralPSO
public class NeuralPSO
Iteratively trains a population of neural networks by applying particle swarm optimisation (PSO). Contributed by: Geoffroy Noel https://github.com/goffer-looney References: James Kennedy and Russell C. Eberhart, Particle swarm optimization, Proceedings of the IEEE International Conference on Neural Networks, 1995, pp. 1942-1948
| Field Summary | |
|---|---|
protected double[] |
m_bestErrors
|
protected int |
m_bestVectorIndex
|
protected double[][] |
m_bestVectors
|
protected double |
m_c1
|
protected double |
m_c2
|
protected CalculateScore |
m_calculateScore
|
protected double |
m_inertiaWeight
|
protected double |
m_maxPosition
|
protected double |
m_maxVelocity
|
protected boolean |
m_multiThreaded
|
protected BasicNetwork[] |
m_networks
|
protected int |
m_populationSize
|
protected Randomizer |
m_randomizer
|
protected VectorAlgebra |
m_va
|
protected double[][] |
m_velocities
|
| Constructor Summary | |
|---|---|
NeuralPSO(BasicNetwork network,
MLDataSet trainingSet)
Construct a PSO using a training set score function, 20 particles and the NguyenWidrowRandomizer randomizer. |
|
NeuralPSO(BasicNetwork network,
Randomizer randomizer,
CalculateScore calculateScore,
int populationSize)
Constructor. |
|
| Method Summary | |
|---|---|
boolean |
canContinue()
|
double |
getC1()
Get the cognition coefficient (c1). |
double |
getC2()
Get the social coefficient (c2). |
String |
getDescription()
Get a description of all the current settings. |
double |
getInertiaWeight()
Get the inertia weight (w) |
double |
getMaxPosition()
Get the boundary of the search space (Xmax) |
double |
getMaxVelocity()
Get the maximum velocity (Vmax) |
MLMethod |
getMethod()
Get the current best machine learning method from the training. |
protected double[] |
getNetworkState(int particleIndex)
Returns the state of a network in the swarm |
int |
getPopulationSize()
Returns the swarm size. |
boolean |
isMultiThreaded()
Get the multi-threaded mode. |
void |
iteration()
Runs one PSO iteration over the whole population of networks. |
protected void |
iterationPSO(boolean init)
Internal method for the iteration of the swarm. |
TrainingContinuation |
pause()
Pause the training to continue later. |
void |
resume(TrainingContinuation state)
Resume training. |
void |
setC1(double c1)
Sets the cognition coefficient (c1). |
void |
setC2(double c2)
Set the social coefficient (c2). |
void |
setInertiaWeight(double inertiaWeight)
Set the inertia weight (w) |
void |
setInitialPopulation(BasicNetwork[] initialPopulation)
Keep a reference to the passed population of networks. |
void |
setMaxPosition(double maxPosition)
Set the boundary of the search space (Xmax) |
void |
setMaxVelocity(double maxVelocity)
Sets the maximum velocity. |
protected void |
setNetworkState(int particleIndex,
double[] state)
Sets the state of the networks in the swarm |
void |
setPopulationSize(int populationSize)
Set the swarm size. |
protected void |
updateGlobalBestPosition()
Update the swarm's best position |
protected void |
updateParticle(int particleIndex,
boolean init)
Update the velocity, position and personal best position of a particle |
protected void |
updatePersonalBestPosition(int particleIndex,
double[] particlePosition)
Update the personal best position of a particle. |
protected void |
updateVelocity(int particleIndex,
double[] particlePosition)
Update the velocity of a particle |
| Methods inherited from class org.encog.ml.train.BasicTraining |
|---|
addStrategy, finishTraining, getError, getImplementationType, getIteration, getStrategies, getTraining, isTrainingDone, iteration, postIteration, preIteration, setError, setIteration, setTraining |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected boolean m_multiThreaded
protected VectorAlgebra m_va
protected CalculateScore m_calculateScore
protected Randomizer m_randomizer
protected BasicNetwork[] m_networks
protected double[][] m_velocities
protected double[][] m_bestVectors
protected double[] m_bestErrors
protected int m_bestVectorIndex
protected int m_populationSize
protected double m_maxPosition
protected double m_maxVelocity
protected double m_c1
protected double m_c2
protected double m_inertiaWeight
| Constructor Detail |
|---|
public NeuralPSO(BasicNetwork network,
Randomizer randomizer,
CalculateScore calculateScore,
int populationSize)
network - an initialised Encog network.
The networks in the swarm will be created with
the same topology as this network.randomizer - any type of Encog network weight initialisation
object.calculateScore - any type of Encog network scoring/fitness object.populationSize - the swarm size.
public NeuralPSO(BasicNetwork network,
MLDataSet trainingSet)
network - The network to train. an initialised Encog network.
The networks in the swarm will be created with
the same topology as this network.trainingSet - The training set.| Method Detail |
|---|
public void iteration()
protected void iterationPSO(boolean init)
init - true if this is an initialisation iteration.
protected void updateParticle(int particleIndex,
boolean init)
particleIndex - index of the particle in the swarminit - if true, the position and velocity
will be initialised.
protected void updateVelocity(int particleIndex,
double[] particlePosition)
particleIndex - index of the particle in the swarmparticlePosition - the particle current position vector
protected void updatePersonalBestPosition(int particleIndex,
double[] particlePosition)
particleIndex - index of the particle in the swarmparticlePosition - the particle current position vectorprotected void updateGlobalBestPosition()
public TrainingContinuation pause()
MLTrain
public boolean canContinue()
public void resume(TrainingContinuation state)
MLTrain
state - The training continuation object to use to continue.protected double[] getNetworkState(int particleIndex)
particleIndex - index of the network in the swarm
protected void setNetworkState(int particleIndex,
double[] state)
particleIndex - index of the network in the swarmstate - an array of weights and biasespublic void setPopulationSize(int populationSize)
populationSize - the swarm sizepublic int getPopulationSize()
public void setMaxVelocity(double maxVelocity)
maxVelocity - Maximum velocity / Vmaxpublic double getMaxVelocity()
public void setMaxPosition(double maxPosition)
maxPosition - maximum value for a component (Xmax)public double getMaxPosition()
public void setC1(double c1)
c1 - cognition coefficient (c1)public double getC1()
public void setC2(double c2)
c2 - the social coefficient (c2)public double getC2()
public void setInertiaWeight(double inertiaWeight)
inertiaWeight - the inertia weight (w)public double getInertiaWeight()
public String getDescription()
public MLMethod getMethod()
MLTrain
public void setInitialPopulation(BasicNetwork[] initialPopulation)
initialPopulation - public boolean isMultiThreaded()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||