C# Class Encog.Neural.Networks.Prune.PruneSelective

Prune a neural network selectivly. This class allows you to either add or remove neurons from layers of a neural network.
Exibir arquivo Open project: encog/encog-silverlight-core

Public Methods

Method Description
ChangeNeuronCount ( ILayer 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.

DetermineNeuronSignificance ( ILayer layer, int neuron ) : double

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

Prune ( ILayer targetLayer, int neuron ) : void

Prune one of the neurons from this layer. Remove all entries in this weight matrix and other layers.

PruneSelective ( BasicNetwork network ) : System

Construct an object prune the neural network.

StimulateNeuron ( double percent, ILayer layer, 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 ( ILayer layer, int count, double percent ) : void

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

Private Methods

Method Description
DecreaseNeuronCount ( ILayer layer, int neuronCount ) : void

Internal function to decrease the neuron count of a layer.

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

Find the weakest neurons.

IncreaseNeuronCount ( ILayer layer, int neuronCount ) : void

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

Method Details

ChangeNeuronCount() public method

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.
public ChangeNeuronCount ( ILayer layer, int neuronCount ) : void
layer ILayer The layer to adjust.
neuronCount int The new neuron count for this layer.
return void

DetermineNeuronSignificance() public method

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

Prune() public method

Prune one of the neurons from this layer. Remove all entries in this weight matrix and other layers.
public Prune ( ILayer targetLayer, int neuron ) : void
targetLayer ILayer The neuron to prune. Zero specifies the first neuron.
neuron int The neuron to prune.
return void

PruneSelective() public method

Construct an object prune the neural network.
public PruneSelective ( BasicNetwork network ) : System
network BasicNetwork The network to prune.
return System

StimulateNeuron() public method

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, ILayer layer, int neuron ) : void
percent double The percent to randomize by.
layer ILayer The layer that the neuron is on.
neuron int The neuron to randomize.
return void

StimulateWeakNeurons() public method

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