Pruning (artificial neural network): Difference between revisions

Content deleted Content added
Reformatted source 4
Tags: Visual edit Mobile edit Mobile web edit Advanced mobile edit
Citation bot (talk | contribs)
Altered url. URLs might have been anonymized. Add: s2cid, pmid, authors 1-1. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Jay8g | Category:CS1 maint: url-status | #UCB_Category 624/962
Line 1:
{{Orphan|date=June 2020}}
 
In the context of [[artificial neural network]], '''pruning''' is the practice of removing [[parameter]]s (which may entail removing individual parameters, or parameters in groups such as by [[artificial neurons|neurons]]) from an existing network.<ref>{{cite arXiv|last1=Blalock|first1=Davis|last2=Ortiz|first2=Jose Javier Gonzalez|last3=Frankle|first3=Jonathan|last4=Guttag|first4=John|date=2020-03-06|title=What is the State of Neural Network Pruning?|class=cs.LG|eprint=2003.03033}}</ref> The goal of this process is to maintain accuracy of the network while increasing its [[efficiency]]. This can be done to reduce the [[computational resource]]s required to run the neural network. A biological process of [[synaptic pruning]] takes place in the brain of mammals during development<ref>{{Cite journal |lastlast1=Chechik |firstfirst1=Gal |last2=Meilijson |first2=Isaac |last3=Ruppin |first3=Eytan |date=October 1998 |title=Synaptic Pruning in Development: A Computational Account |url=https://ieeexplore.ieee.org/abstract/document/6790725 |journal=Neural Computation |volume=10 |issue=7 |pages=1759–1777 |doi=10.1162/089976698300017124 |pmid=9744896 |s2cid=14629275 |issn=0899-7667}}</ref> (see also [[Neural Darwinism]]).
 
== Node (neuron) pruning ==
A basic algorithm for pruning is as follows:<ref>Molchanov, P., Tyree, S., Karras, T., Aila, T., & Kautz, J. (2016). ''Pruning convolutional neural networks for resource efficient inference''. arXiv preprint arXiv:1611.06440.</ref><ref>{{Cite web |last=Gildenblat |first=Jacob |date=2017-06-23 |title=Pruning deep neural networks to make them fast and small |url=http://jacobgil.github.io/deeplearning/pruning-deep-learning |url-status=live |access-date=2024-02-04 |website=Github |language=en}}</ref>
#Evaluate the importance of each neuron.
#Rank the neurons according to their importance (assuming there is a clearly defined measure for "importance").
Line 13:
== 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.<ref>{{Cite journal |lastlast1=Chechik |firstfirst1=Gal |last2=Meilijson |first2=Isaac |last3=Ruppin |first3=Eytan |date=April 2001 |title=Effective Neuronal Learning with Ineffective Hebbian Learning Rules |url=https://ieeexplore.ieee.org/abstract/document/6789989 |journal=Neural Computation |volume=13 |issue=4 |pages=817–840 |doi=10.1162/089976601300014367 |pmid=11255571 |s2cid=133186 |issn=0899-7667}}</ref>
 
== References ==