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.
Показать файл Открыть проект Примеры использования класса

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

Метод Описание
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