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
파일 보기 프로젝트 열기: AlexCherkasov/Neuro.NET 1 사용 예제들

보호된 프로퍼티들

프로퍼티 타입 설명
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