In the context of
artificial neural network, pruning is the practice of removing
parameters (which may entail removing individual parameters, or parameters in groups such as by
neurons) from an existing network.[1] The goal of this process is to maintain accuracy of the network while increasing its
efficiency. This can be done to reduce the
computational resources required to run the neural network. A biological process of
synaptic pruning takes place in the brain of mammals during development[2] (see also
Neural Darwinism).
Node (neuron) pruning
A basic algorithm for pruning is as follows:[3][4]
Evaluate the importance of each neuron.
Rank the neurons according to their importance (assuming there is a clearly defined measure for "importance").
Remove the least important neuron.
Check a termination condition (to be determined by the user) to see whether to continue pruning.
Edge (weight) pruning
Most work on neural network pruning focuses on removing weights, namely, setting their values to zero.
Early work suggested to also change the values of non-pruned weights.[5]
References
^Blalock, Davis; Ortiz, Jose Javier Gonzalez; Frankle, Jonathan; Guttag, John (2020-03-06). "What is the State of Neural Network Pruning?".
arXiv:2003.03033 [
cs.LG].