C# 클래스 Encog.Neural.Prune.PruneSelective

Prune a neural network selectively. This class allows you to either add or remove neurons from layers of a neural network. You can also randomize or stimulate neurons. No provision is given for removing an entire layer. Removing a layer requires a totally new set of weights between the layers before and after the removed one. This essentially makes any remaining weights useless. At this point you are better off just creating a new network of the desired dimensions.
파일 보기 프로젝트 열기: encog/encog-silverlight-core 1 사용 예제들

공개 메소드들

메소드 설명
ChangeNeuronCount ( int layer, int neuronCount ) : void

Change the neuron count for the network. If the count is increased then a zero-weighted neuron is added, which will not affect the output of the neural network. If the neuron count is decreased, then the weakest neuron will be removed. This method cannot be used to remove a bias neuron.

DetermineNeuronSignificance ( int layer, int neuron ) : double

Determine the significance of the neuron. The higher the return value, the more significant the neuron is.

Prune ( int targetLayer, int neuron ) : void

Prune one of the neurons from this layer. Remove all entries in this weight matrix and other layers. This method cannot be used to remove a bias neuron.

PruneSelective ( BasicNetwork network ) : System

Construct an object prune the neural network.

RandomizeNeuron ( double low, double high, int targetLayer, int neuron ) : void
RandomizeNeuron ( int targetLayer, int neuron ) : void

Assign random values to the network. The range will be the min/max of existing neurons.

StimulateNeuron ( double percent, int targetLayer, int neuron ) : void

Stimulate the specified neuron by the specified percent. This is used to randomize the weights and bias values for weak neurons.

StimulateWeakNeurons ( int layer, int count, double percent ) : void

Stimulate weaker neurons on a layer. Find the weakest neurons and then randomize them by the specified percent.

비공개 메소드들

메소드 설명
DecreaseNeuronCount ( int layer, int neuronCount ) : void

Internal function to decrease the neuron count of a layer.

FindWeakestNeurons ( int layer, int count ) : int[]

Find the weakest neurons on a layer. Considers both weight and bias.

IncreaseNeuronCount ( int targetLayer, int neuronCount ) : void

Internal function to increase the neuron count. This will add a zero-weight neuron to this layer.

RandomizeNeuron ( int targetLayer, int neuron, bool useRange, double low, double high, bool usePercent, double percent ) : void

Used internally to randomize a neuron. Usually called from randomizeNeuron or stimulateNeuron.

ReindexNetwork ( ) : void

Creat new index values for the network.

메소드 상세

ChangeNeuronCount() 공개 메소드

Change the neuron count for the network. If the count is increased then a zero-weighted neuron is added, which will not affect the output of the neural network. If the neuron count is decreased, then the weakest neuron will be removed. This method cannot be used to remove a bias neuron.
public ChangeNeuronCount ( int layer, int neuronCount ) : void
layer int The layer to adjust.
neuronCount int The new neuron count for this layer.
리턴 void

DetermineNeuronSignificance() 공개 메소드

Determine the significance of the neuron. The higher the return value, the more significant the neuron is.
public DetermineNeuronSignificance ( int layer, int neuron ) : double
layer int The layer to query.
neuron int The neuron to query.
리턴 double

Prune() 공개 메소드

Prune one of the neurons from this layer. Remove all entries in this weight matrix and other layers. This method cannot be used to remove a bias neuron.
public Prune ( int targetLayer, int neuron ) : void
targetLayer int The neuron to prune. Zero specifies the first neuron.
neuron int The neuron to prune.
리턴 void

PruneSelective() 공개 메소드

Construct an object prune the neural network.
public PruneSelective ( BasicNetwork network ) : System
network Encog.Neural.Networks.BasicNetwork The network to prune.
리턴 System

RandomizeNeuron() 공개 메소드

public RandomizeNeuron ( double low, double high, int targetLayer, int neuron ) : void
low double The low-end of the range.
high double The high-end of the range.
targetLayer int The target layer.
neuron int The target neuron.
리턴 void

RandomizeNeuron() 공개 메소드

Assign random values to the network. The range will be the min/max of existing neurons.
public RandomizeNeuron ( int targetLayer, int neuron ) : void
targetLayer int The target layer.
neuron int The target neuron.
리턴 void

StimulateNeuron() 공개 메소드

Stimulate the specified neuron by the specified percent. This is used to randomize the weights and bias values for weak neurons.
public StimulateNeuron ( double percent, int targetLayer, int neuron ) : void
percent double The percent to randomize by.
targetLayer int The layer that the neuron is on.
neuron int The neuron to randomize.
리턴 void

StimulateWeakNeurons() 공개 메소드

Stimulate weaker neurons on a layer. Find the weakest neurons and then randomize them by the specified percent.
public StimulateWeakNeurons ( int layer, int count, double percent ) : void
layer int The layer to stimulate.
count int The number of weak neurons to stimulate.
percent double The percent to stimulate by.
리턴 void