Package org.apache.commons.math3.ml.neuralnet.sofm

# Class KohonenUpdateAction

java.lang.Object
org.apache.commons.math3.ml.neuralnet.sofm.KohonenUpdateAction

All Implemented Interfaces:
  `UpdateAction`

public class KohonenUpdateAction extends Object implements UpdateAction
Update formula for Kohonen's Self-Organizing Map.
The `update` method modifies the features `w` of the "winning" neuron and its neighbours according to the following rule: `wnew = wold + α e(-d / σ) * (sample - wold)` where

- α is the current learning rate,
- σ is the current neighbourhood size, and
- `d` is the number of links to traverse in order to reach the neuron from the winning neuron.

This class is thread-safe as long as the arguments passed to the `constructor` are instances of thread-safe classes.
Each call to the `update` method will increment the internal counter used to compute the current values for

- the learning rate, and
- the neighbourhood size.

Consequently, the function instances that compute those values (passed to the constructor of this class) must take into account whether this class's instance will be shared by multiple threads, as this will impact the training process.

Since:
  3.3

## Constructor Summary

Constructors
Constructor
Description
`KohonenUpdateAction(DistanceMeasure distance, LearningFactorFunction learningFactor, NeighbourhoodSizeFunction neighbourhoodSize)`

## Method Summary

Modifier and Type
Method
Description
`long`
`getNumberOfCalls()`
Retrieves the number of calls to the `update` method.
`void`
`update(Network net, double[] features)`
Updates the network in response to the sample `features`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### KohonenUpdateAction

public KohonenUpdateAction(DistanceMeasure distance, LearningFactorFunction learningFactor, NeighbourhoodSizeFunction neighbourhoodSize)

Parameters:
  `distance` - Distance function.
  `learningFactor` - Learning factor update function.
  `neighbourhoodSize` - Neighbourhood size update function.

## Method Details

### update

public void update(Network net, double[] features)
Updates the network in response to the sample `features`.

Specified by:
  `update` in interface `UpdateAction`
Parameters:
  `net` - Network.
  `features` - Training data.

### getNumberOfCalls

public long getNumberOfCalls()
Retrieves the number of calls to the `update` method.

Returns:
  the current number of calls.