C# Класс xpidea.neuro.net.bam.BidirectionalAssociativeMemoryNetwork

Implements the Bidirectional Associative Memory (BAM) network.
The Bidirectional Associative Memory (BAM) network that consists of two layers. An input layer and an output layer. The main difference between backpropagation architecture is that BAM does not stop learning when input values reach the output layer. The learning phase stops when the network becomes stable ; no change between input and output values during two consecutive cycles. The pattern sets for training and running and ouput results can only have two values : 1.1 or -1.1. The BAM is a relatively simple neural network architecture with a content addressable memory. BAM is usefull for pattern recognition or with noisy and corrupted patterns. Bam can also "forget" if there are two many patterns in it. BAM becomes saturated when the number of patterns stored is greater than the minimum of the input layer count and the ouput layer node count. BAM System is created to solve this problem.
Наследование: xpidea.neuro.net.adaline.AdalineNetwork
Показать файл Открыть проект Примеры использования класса

Защищенные свойства (Protected)

Свойство Тип Описание
inputLayerNodesCount int
outputLayerNodesCount int

Открытые методы

Метод Описание
BidirectionalAssociativeMemoryNetwork ( int aInputNodesCount, int aOutputNodesCount ) : System

Creates BAM network.

BidirectionalAssociativeMemoryNetwork ( string fileName ) : System

Creates the network from a file.

Learn ( ) : void

Overridden.Teaches the network.

Load ( BinaryReader binaryReader ) : void

Overridden.Loads network data from a binary stream.

Run ( ) : void

Overridden.Runs the network.

Save ( BinaryWriter binaryWriter ) : void

Overridden.Stores network data in the binary stream.

SetValues ( int index, double value ) : void

Sets value of the node.

SetValuesFromPattern ( Pattern pattern ) : void

Overridden.Loads the values into the input layer from the pattern.

Train ( PatternsCollection patterns ) : void

Overridden.Trains the network to recognize specific patterns. Employs xpidea.neuro.net.bam.BidirectionalAssociativeMemoryOutputNode.Run and xpidea.neuro.net.bam.BidirectionalAssociativeMemoryOutputNode.Learn to teach the network.

UnLearn ( ) : void

Tells the network to "forget" last learn operation.

value ( int index ) : double

Returns value of the output node specified by index.

Защищенные методы

Метод Описание
CreateNetwork ( ) : void

Overridden.Constucts the network topology.

GetInputNodesCount ( ) : int

Overridden.Returns nodes count in the input layer.

GetNetworkType ( ) : NeuralNetworkType

Overridden.Returns xpidea.neuro.net.NeuralNetworkType.nntBAM for the BAM network.

GetNodeError ( ) : double

Overridden.Returns node error.

GetOutPutNodesCount ( ) : int

Overridden.Returns nodes count in output layer.

GetOutputNode ( int index ) : NeuroNode

Overridden.Returns output node by its index.

LoadInputs ( ) : void

Overridden.Loads input values into the input layer.

Описание методов

BidirectionalAssociativeMemoryNetwork() публичный Метод

Creates BAM network.
public BidirectionalAssociativeMemoryNetwork ( int aInputNodesCount, int aOutputNodesCount ) : System
aInputNodesCount int Number of nodes in the input layer.
aOutputNodesCount int Number of nodes in the output layer.
Результат System

BidirectionalAssociativeMemoryNetwork() публичный Метод

Creates the network from a file.
public BidirectionalAssociativeMemoryNetwork ( string fileName ) : System
fileName string
Результат System

CreateNetwork() защищенный Метод

Overridden.Constucts the network topology.
protected CreateNetwork ( ) : void
Результат void

GetInputNodesCount() защищенный Метод

Overridden.Returns nodes count in the input layer.
protected GetInputNodesCount ( ) : int
Результат int

GetNetworkType() защищенный Метод

Overridden.Returns xpidea.neuro.net.NeuralNetworkType.nntBAM for the BAM network.
protected GetNetworkType ( ) : NeuralNetworkType
Результат NeuralNetworkType

GetNodeError() защищенный Метод

Overridden.Returns node error.
protected GetNodeError ( ) : double
Результат double

GetOutPutNodesCount() защищенный Метод

Overridden.Returns nodes count in output layer.
protected GetOutPutNodesCount ( ) : int
Результат int

GetOutputNode() защищенный Метод

Overridden.Returns output node by its index.
protected GetOutputNode ( int index ) : NeuroNode
index int Output node index.
Результат NeuroNode

Learn() публичный Метод

Overridden.Teaches the network.
public Learn ( ) : void
Результат void

Load() публичный Метод

Overridden.Loads network data from a binary stream.
public Load ( BinaryReader binaryReader ) : void
binaryReader System.IO.BinaryReader Binary stream reader.
Результат void

LoadInputs() защищенный Метод

Overridden.Loads input values into the input layer.
protected LoadInputs ( ) : void
Результат void

Run() публичный Метод

Overridden.Runs the network.
public Run ( ) : void
Результат void

Save() публичный Метод

Overridden.Stores network data in the binary stream.
public Save ( BinaryWriter binaryWriter ) : void
binaryWriter System.IO.BinaryWriter Binary stream writer.
Результат void

SetValues() публичный Метод

Sets value of the node.
public SetValues ( int index, double value ) : void
index int Node index.
value double New node value.
Результат void

SetValuesFromPattern() публичный Метод

Overridden.Loads the values into the input layer from the pattern.
public SetValuesFromPattern ( Pattern pattern ) : void
pattern xpidea.neuro.net.patterns.Pattern Pattern.
Результат void

Train() публичный Метод

Overridden.Trains the network to recognize specific patterns. Employs xpidea.neuro.net.bam.BidirectionalAssociativeMemoryOutputNode.Run and xpidea.neuro.net.bam.BidirectionalAssociativeMemoryOutputNode.Learn to teach the network.
public Train ( PatternsCollection patterns ) : void
patterns xpidea.neuro.net.patterns.PatternsCollection Training patterns.
Результат void

UnLearn() публичный Метод

Tells the network to "forget" last learn operation.
public UnLearn ( ) : void
Результат void

value() публичный Метод

Returns value of the output node specified by index.
public value ( int index ) : double
index int Node index.
Результат double

Описание свойств

inputLayerNodesCount защищенное свойство

Stores nodes count in input layer.
protected int inputLayerNodesCount
Результат int

outputLayerNodesCount защищенное свойство

Stores nodes count in output layer.
protected int outputLayerNodesCount
Результат int