Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.joone.engine
Class KohonenSynapse

    java.lang.Object
      org.joone.engine.Synapse
          org.joone.engine.FullSynapse
              org.joone.engine.KohonenSynapse

All Implemented Interfaces:
  java.io.Serializable, java.util.EventListener, InputPatternListener, Learnable, LearnableSynapse, NeuralElement, NeuralNetListener, OutputPatternListener, Inspectable

    public class KohonenSynapse

extends FullSynapse
implements NeuralNetListener

This is an unsupervised Kohonen Synapse which is a Self Organising Map.

This KohonenSynapse works in conjunction with the next layer which should implement a SOM strategy such as a GuassianLayer or WTALayer (Winner Takes All). This synapse should connect to one of these layers, without a SOM Strategy in the next layer this component will not function correctly.

This KohonenSynapse takes a pattern from the previous layer, calculates the distance between the input vector and the weights and passes this on to the next layer. In the learning phase the next layer should calculate the distance fall off between the winner and all other nodes (1.0 being the closest distance and 0.0 being furthest away and not being considered near to the winner). These distances are passed back to this KohonenSynapse and used to adjust the weights.

The weights are adjusted based on the current learning rate and distance fall off.

At each epoch/cycel the learning rate is adjusted in the following way ...

If the current cycle is within the ordering phase then the learning rate is set to

User setup learning rate * exp(-(double)(Current Cycle/Time Constant)).

See Also:
  Serialized Form

Field Summary
`(package private) double` | `currentLearningRate`

Fields inherited from class org.joone.engine.Synapse
`array, b_pattern, bitems, bouts, count, enabled, fwdLock, inps, items, learnable, m_batch, m_pattern, myLearner, notFirstTime, notFirstTimeB, outs, revLock`

Constructor Summary
`KohonenSynapse()` The default constructor for the KohonenSynapse class.

Method Summary
`protected void` | `backward(double[] pattern)` Adjusts the weights of this Kohonen Synapse according to the neighborhood fall off distance calculated by the next layer.
`java.util.TreeSet` | `check()` Check that there are no errors or problems with the properties of this KohonenSynapse.
`void` | `cicleTerminated(NeuralNetEvent e)` Changes the learning rate for this synapse depending in the current epoch number.
`void` | `errorChanged(NeuralNetEvent e)` Not implemented.
`protected void` | `forward(double[] pattern)` Fowards the euclidean distance squared between the input vector and the weight vector to the next layer.
`Learner` | `getLearner()` Deprecated. - Used only for backward compatibility
`int` | `getOrderingPhase()` Getter for property orderingPhase.
`double` | `getTimeConstant()` Getter for property timeConstant.
`void` | `netStarted(NeuralNetEvent e)` Initialises any shape sizes such as circular radius and time constant before possible training.
`void` | `netStopped(NeuralNetEvent e)` Not implemented.
`void` | `netStoppedError(NeuralNetEvent e, java.lang.String error)` Not implemented.
`void` | `setMonitor(Monitor newMonitor)` Sets the Monitor object of the synapse
`void` | `setOrderingPhase(int orderingPhase)` Setter for property orderingPhase.
`void` | `setTimeConstant(double timeConstant)` Setter for property timeConstant.

Methods inherited from class org.joone.engine.FullSynapse
`setArrays, setDimensions`

Methods inherited from class org.joone.engine.Synapse
`addNoise, canCountSteps, fwdGet, fwdPut, getFwdLock, getIgnoreBefore, getInputDimension, getLearningRate, getMomentum, getMonitor, getName, getOutputDimension, getRevLock, getWeights, init, initLearner, InspectableTitle, Inspections, isEnabled, isInputFull, isLoopBack, isOutputFull, randomize, readResolve, reset, revGet, revPut, setEnabled, setIgnoreBefore, setInputDimension, setInputFull, setLearningRate, setLoopBack, setMomentum, setName, setOutputDimension, setOutputFull, setWeights`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.joone.engine.LearnableSynapse
`getInputDimension, getLearningRate, getMomentum, getOutputDimension, getWeights, setWeights`

Methods inherited from interface org.joone.engine.Learnable
`getMonitor, initLearner`

Field Detail

### currentLearningRate

    double currentLearningRate

Constructor Detail

### KohonenSynapse

    public KohonenSynapse()

  The default constructor for the KohonenSynapse class.

Method Detail

### backward

    protected void backward(double[] pattern)

  Adjusts the weights of this Kohonen Synapse according to the neighborhood fall off distance calculated by the next layer.

  Overrides:
    `backward` in class `FullSynapse`
  Parameters:
    `pattern` - The pattern with the distance fall off's between the winner and all other nodes. (1.0 is the winner through 0.0 having no similarity to the original input vector)

### forward

    protected void forward(double[] pattern)

  Fowards the euclidean distance squared between the input vector and the weight vector to the next layer. If the learning phase is currently active then the next layer should process this and pass back the distance fall off between the winning output and all other outputs.

  Overrides:
    `forward` in class `FullSynapse`
  Parameters:
    `pattern` - The pattern containg the euclidean distance squared between each weight and the input.

### setMonitor

    public void setMonitor(Monitor newMonitor)

  Sets the Monitor object of the synapse

  Specified by:
    `setMonitor` in interface `NeuralElement`
  Overrides:
    `setMonitor` in class `Synapse`
  Parameters:
    `newMonitor` - neural.engine.Monitor

### cicleTerminated

    public void cicleTerminated(NeuralNetEvent e)

  Changes the learning rate for this synapse depending in the current epoch number. The learning rate is changed in the following way ...

  User setup learning rate * exp(-(double)(Current Cycle/Time Constant)).

  Specified by:
    `cicleTerminated` in interface `NeuralNetListener`
  Parameters:
    `e` - The original Net Event.

### errorChanged

    public void errorChanged(NeuralNetEvent e)

  Not implemented.

  Specified by:
    `errorChanged` in interface `NeuralNetListener`
  Parameters:
    `e` - The original Net Event.

### netStarted

    public void netStarted(NeuralNetEvent e)

  Initialises any shape sizes such as circular radius and time constant before possible training.

  Specified by:
    `netStarted` in interface `NeuralNetListener`
  Parameters:
    `e` - The original Net Event.

### netStopped

    public void netStopped(NeuralNetEvent e)

  Not implemented.

  Specified by:
    `netStopped` in interface `NeuralNetListener`
  Parameters:
    `e` - The original Net Event.

### netStoppedError

    public void netStoppedError(NeuralNetEvent e,
                                java.lang.String error)

  Not implemented.

  Specified by:
    `netStoppedError` in interface `NeuralNetListener`
  Parameters:
    `e` - The original Net Event.
    `error` - The error that caused this NetStoppedError event.

### check

    public java.util.TreeSet check()

  Check that there are no errors or problems with the properties of this KohonenSynapse.

  Specified by:
    `check` in interface `NeuralElement`
  Overrides:
    `check` in class `Synapse`
  Returns:
    The TreeSet of errors / problems if any.
  See Also:
    `InputPaternListener`, `OutputPaternListener`

### getOrderingPhase

    public int getOrderingPhase()

  Getter for property orderingPhase.

  Returns:
    Value of property orderingPhase.

### setOrderingPhase

    public void setOrderingPhase(int orderingPhase)

  Setter for property orderingPhase.

  Parameters:
    `orderingPhase` - New value of property orderingPhase.

### getTimeConstant

    public double getTimeConstant()

  Getter for property timeConstant.

  Returns:
    Value of property timeConstant.

### setTimeConstant

    public void setTimeConstant(double timeConstant)

  Setter for property timeConstant.

  Parameters:
    `timeConstant` - New value of property timeConstant.

### getLearner

    public Learner getLearner()

  Deprecated. - Used only for backward compatibility

  Description copied from class: `Synapse`
  Returns the appropriate Learner object for this class depending on the Monitor.learningMode property value

  Specified by:
    `getLearner` in interface `Learnable`
  Overrides:
    `getLearner` in class `FullSynapse`
  Returns:
    the Learner object if applicable, otherwise null
  See Also:
    `Learnable.getLearner()`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit Feedback to pmarrone@users.sourceforge.net