C# Class xpidea.neuro.net.son.SelfOrganizingNetwork

Implements the Self Organizing Network (SON).
The basic Self-Organizing Network can be visualized as a sheet-like neural-network array , the cells (or nodes) of which become specifically tuned to various input signal patterns or classes of patterns in an orderly fashion. The learning process is competitive and unsupervised, meaning that no teacher is needed to define the correct output (or actually the cell into which the input is mapped) for an input. In the basic version, only one map node (winner) at a time is activated corresponding to each input. The locations of the responses in the array tend to become ordered in the learning process as if some meaningful nonlinear coordinate system for the different input features were being created over the network (Kohonen, 1995c).The SOM was developed by Prof. Teuvo Kohonen in the early 1980s. The first application area of the SOM was speech recognition, or perhaps more accurately, speech-to-text transformation. (Timo Honkela)
Inheritance: xpidea.neuro.net.adaline.AdalineNetwork
Mostrar archivo Open project: AlexCherkasov/Neuro.NET

Protected Properties

Property Type Description
columsCount int
currentIteration long
currentNeighborhoodSize int
finalLearningRate double
initialLearningRate double
initialNeighborhoodSize int
kohonenLayer ].NeuroNode[
neighborhoodReduceInterval int
rowsCount int
trainingIterations long
winnigCol int
winnigRow int

Public Methods

Method Description
Epoch ( int epoch ) : void

Overridden.Epoch - number of patterns that was exposed to a network during one training cycle.

Learn ( ) : void

Overridden.Teaches the network.

Load ( BinaryReader binaryReader ) : void

Overridden.Loads network data from the binary stream.

Run ( ) : void

Overridden.Runs the network.

Save ( BinaryWriter binaryWriter ) : void

Overridden.Stores network into to a binary stream.

SelfOrganizingNetwork ( ) : System

Constructs uninitialized instance of SON network. Used for persistance purposes.

SelfOrganizingNetwork ( int aInputNodesCount, int aRowCount, int aColCount, double aInitialLearningRate, double aFinalLearningRate, int aInitialNeighborhoodSize, int aNeighborhoodReduceInterval, long aTrainingIterationsCount ) : System

Constructs the network.

SelfOrganizingNetwork ( string fileName ) : System

Creates the network from a file.

Train ( PatternsCollection patterns ) : void

Overridden.Trains the network.

Protected Methods

Method Description
CreateNetwork ( ) : void

Overridden.Constructs network topology.

GetInputNode ( int index ) : NeuroNode

Overridden.Retrieves the input node by its index.

GetInputNodesCount ( ) : int

Overridden.Returns number of nodes in input layer.

GetNetworkType ( ) : NeuralNetworkType

Overridden.Returns xpidea.neuro.net.NeuralNetworkType.nntSON for SON network.

GetNodeError ( ) : double

Overridden.Always returns 0. There is no output node.

GetOutPutNodesCount ( ) : int

Overridden.Number of nodes in output layer. Always return 0 since there are no nodes as its have an Kohonen layer.

GetOutputNode ( int index ) : NeuroNode

Overridden.Returns an output node by its index.

SetNodeError ( double value ) : void

Overridden.Doesn't do anything. There is no output node.

Method Details

CreateNetwork() protected method

Overridden.Constructs network topology.
protected CreateNetwork ( ) : void
return void

Epoch() public method

Overridden.Epoch - number of patterns that was exposed to a network during one training cycle.
public Epoch ( int epoch ) : void
epoch int
return void

GetInputNode() protected method

Overridden.Retrieves the input node by its index.
protected GetInputNode ( int index ) : NeuroNode
index int Input node index.
return NeuroNode

GetInputNodesCount() protected method

Overridden.Returns number of nodes in input layer.
protected GetInputNodesCount ( ) : int
return int

GetNetworkType() protected method

Overridden.Returns xpidea.neuro.net.NeuralNetworkType.nntSON for SON network.
protected GetNetworkType ( ) : NeuralNetworkType
return NeuralNetworkType

GetNodeError() protected method

Overridden.Always returns 0. There is no output node.
protected GetNodeError ( ) : double
return double

GetOutPutNodesCount() protected method

Overridden.Number of nodes in output layer. Always return 0 since there are no nodes as its have an Kohonen layer.
protected GetOutPutNodesCount ( ) : int
return int

GetOutputNode() protected method

Overridden.Returns an output node by its index.
protected GetOutputNode ( int index ) : NeuroNode
index int Output node index.
return NeuroNode

Learn() public method

Overridden.Teaches the network.
public Learn ( ) : void
return void

Load() public method

Overridden.Loads network data from the binary stream.
public Load ( BinaryReader binaryReader ) : void
binaryReader System.IO.BinaryReader Binary stream reader.
return void

Run() public method

Overridden.Runs the network.
public Run ( ) : void
return void

Save() public method

Overridden.Stores network into to a binary stream.
public Save ( BinaryWriter binaryWriter ) : void
binaryWriter System.IO.BinaryWriter Binary stream writer.
return void

SelfOrganizingNetwork() public method

Constructs uninitialized instance of SON network. Used for persistance purposes.
public SelfOrganizingNetwork ( ) : System
return System

SelfOrganizingNetwork() public method

Constructs the network.
public SelfOrganizingNetwork ( int aInputNodesCount, int aRowCount, int aColCount, double aInitialLearningRate, double aFinalLearningRate, int aInitialNeighborhoodSize, int aNeighborhoodReduceInterval, long aTrainingIterationsCount ) : System
aInputNodesCount int Number of input nodes.
aRowCount int Number of rows in output layer.
aColCount int Number of colums in output layer.
aInitialLearningRate double Starting learning rate.
aFinalLearningRate double Ending learning rate.
aInitialNeighborhoodSize int Initial neighborhood size.
aNeighborhoodReduceInterval int Number of training iterations after neighborhood size will be reduced.
aTrainingIterationsCount long Number of training iterations.
return System

SelfOrganizingNetwork() public method

Creates the network from a file.
public SelfOrganizingNetwork ( string fileName ) : System
fileName string
return System

SetNodeError() protected method

Overridden.Doesn't do anything. There is no output node.
protected SetNodeError ( double value ) : void
value double Error value.
return void

Train() public method

Overridden.Trains the network.
public Train ( PatternsCollection patterns ) : void
patterns xpidea.neuro.net.patterns.PatternsCollection
return void

Property Details

columsCount protected_oe property

Number of colums in output layer.
protected int columsCount
return int

currentIteration protected_oe property

Current iteration.
protected long currentIteration
return long

currentNeighborhoodSize protected_oe property

Current neighborhood size.
protected int currentNeighborhoodSize
return int

finalLearningRate protected_oe property

Final learning rate.
protected double finalLearningRate
return double

initialLearningRate protected_oe property

Initial learning rate.
protected double initialLearningRate
return double

initialNeighborhoodSize protected_oe property

Initial neighborhood size.
protected int initialNeighborhoodSize
return int

kohonenLayer protected_oe property

Represents the Kohonen layer as two-dimetional array of xpidea.neuro.net.NeuroNode.
protected NeuroNode[,] kohonenLayer
return ].NeuroNode[

neighborhoodReduceInterval protected_oe property

Neighborhood reduce interval.
protected int neighborhoodReduceInterval
return int

rowsCount protected_oe property

Number of rows in output layer.
protected int rowsCount
return int

trainingIterations protected_oe property

Number of training iterations.
protected long trainingIterations
return long

winnigCol protected_oe property

Winning column in output layer.
protected int winnigCol
return int

winnigRow protected_oe property

Winning row in output layer.
protected int winnigRow
return int