FCNN4R (version 0.6.2)

mlp_prune_obs: Optimal Brain Surgeon pruning

Description

The Optimal Brain Surgeon algorithm is a robust (yet computationally demanding) pruning algorithm in which candidate weight to be turned off is determined based on information about the inverse of (approximate) Hessian matrix of the MSE.

Usage

mlp_prune_obs(net, input, output, tol_level, max_reteach_epochs, report, plots = FALSE, alpha = 1e-05)

Arguments

net
an object of mlp_net class
input
numeric matrix, each row corresponds to one input vector, the number of columns must be equal to the number of neurons in the network input layer
output
numeric matrix with rows corresponding to expected outputs, the number of columns must be equal to the number of neurons in the network output layer, the number of rows must be equal to the number of input rows
tol_level
numeric value, error (MSE) tolerance level
max_reteach_epochs
integer value, maximal number of epochs (iterations) allowed when reteaching network
report
logical value, if TRUE, information about the pruning process will be printed on the console (FALSE by default)
plots
logical value, if TRUE, the initial network is plotted and then replotted every time neuron is removed and at the end of pruning (FALSE by default)
alpha
numeric value, scaling factor used for initial Hessian approximation

Value

Three-element list, the first field (net) contains the pruned network, the second (wcount) - the number of connections removed (inactivated), the third (ncount) - the number of neurons removed.

References

B. Hassibi, D. G. Stork, and G. J. Wolff. Optimal Brain Surgeon and General Network Pruning. Technical Report CRC-TR-9235, RICOH California Research Centre, 1992.