org.neuroph.nnet.learning
Class UnsupervisedHebbianLearning

java.lang.Object
  extended by java.util.Observable
      extended by org.neuroph.core.learning.LearningRule
          extended by org.neuroph.core.learning.IterativeLearning
              extended by org.neuroph.core.learning.UnsupervisedLearning
                  extended by org.neuroph.nnet.learning.UnsupervisedHebbianLearning
All Implemented Interfaces:
java.io.Serializable, java.lang.Runnable
Direct Known Subclasses:
BinaryHebbianLearning, InstarLearning, OjaLearning, OutstarLearning

public class UnsupervisedHebbianLearning
extends UnsupervisedLearning

Unsupervised hebbian learning rule.

Author:
Zoran Sevarac
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.neuroph.core.learning.IterativeLearning
currentIteration, iterationsLimited, learningRate, maxIterations
 
Fields inherited from class org.neuroph.core.learning.LearningRule
neuralNetwork
 
Constructor Summary
UnsupervisedHebbianLearning()
          Creates new instance of UnsupervisedHebbianLearning algorithm
UnsupervisedHebbianLearning(NeuralNetwork neuralNetwork)
          Creates an instance of UnsupervisedHebbianLearning algorithm for the specified neural network
 
Method Summary
protected  void adjustWeights()
          Adjusts weights for the output neurons
 void doLearningEpoch(TrainingSet trainingSet)
          This method does one learning epoch for the unsupervised learning rules.
protected  void updateNeuronWeights(Neuron neuron)
          This method implements weights update procedure for the single neuron
 
Methods inherited from class org.neuroph.core.learning.UnsupervisedLearning
learnPattern
 
Methods inherited from class org.neuroph.core.learning.IterativeLearning
doOneLearningIteration, getCurrentIteration, getLearningRate, isPausedLearning, learn, learn, pause, resume, setLearningRate, setMaxIterations
 
Methods inherited from class org.neuroph.core.learning.LearningRule
getNeuralNetwork, getTrainingSet, isStopped, notifyChange, run, setNeuralNetwork, setTrainingSet, stopLearning
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UnsupervisedHebbianLearning

public UnsupervisedHebbianLearning()
Creates new instance of UnsupervisedHebbianLearning algorithm


UnsupervisedHebbianLearning

public UnsupervisedHebbianLearning(NeuralNetwork neuralNetwork)
Creates an instance of UnsupervisedHebbianLearning algorithm for the specified neural network

Parameters:
neuralNetwork - neural network to train
Method Detail

doLearningEpoch

public void doLearningEpoch(TrainingSet trainingSet)
This method does one learning epoch for the unsupervised learning rules. It iterates through the training set and trains network weights for each element. Stops learning after one epoch.

Overrides:
doLearningEpoch in class UnsupervisedLearning
Parameters:
trainingSet - training set for training network

adjustWeights

protected void adjustWeights()
Adjusts weights for the output neurons

Specified by:
adjustWeights in class UnsupervisedLearning

updateNeuronWeights

protected void updateNeuronWeights(Neuron neuron)
This method implements weights update procedure for the single neuron

Parameters:
neuron - neuron to update weights