This article's factual accuracy is disputed. (April 2020) (Learn how and when to remove this template message) |
Dilution and dropout (also called DropConnect[1]) are regularization techniques for reducing overfitting in artificial neural networks by preventing complex co-adaptations on training data. They are an efficient way of performing model averaging with neural networks.[2] Dilution refers to thinning weights,[3] while dropout refers to randomly "dropping out", or omitting, units (both hidden and visible) during the training process of a neural network.[4][5][2] Both trigger the same type of regularization.
Dilution is usually split in weak dilution and strong dilution. Weak dilution describes the process in which the finite fraction of removed connections is small, and strong dilution refers to when this fraction is large. There is no clear distinction on where the limit between strong and weak dilution is, and often the distinction is dependent on the precedent of a specific use-case and has implications for how to solve for exact solutions.
Sometimes dilution is used for adding damping noise to the inputs. In that case, weak dilution refers to adding a small amount of damping noise, while strong dilution refers to adding a greater amount of damping noise. Both can be rewritten as variants of weight dilution.
These techniques are also sometimes referred to as random pruning of weights, but this is usually a non-recurring one-way operation. The network is pruned, and then kept if it is an improvement over the previous model. Dilution and dropout both refer to an iterative process. The pruning of weights typically does not imply that the network continues learning, while in dilution/dropout, the network continues to learn after the technique is applied.
Output from a layer of linear nodes, in an artificial neural net can be described as
[math]\displaystyle{ y_i = \sum_j w_{ij} x_j }[/math] |
|
( ) |
This can be written in vector notation as
[math]\displaystyle{ \mathbf{y} = \mathbf{W} \mathbf{x} }[/math] |
|
( ) |
Equations (1) and (2) are used in the subsequent sections.
During weak dilution, the finite fraction of removed connections (the weights) is small, giving rise to a tiny uncertainty. This edge-case can be solved exactly with mean field theory. In weak dilution the impact on the weights can be described as
[math]\displaystyle{ \hat{w_{ij}} = \begin{cases} w_{ij}, & \mbox{with } P(c) \\ 0, & \mbox{otherwise} \end{cases} }[/math] |
|
( ) |
The interpretation of probability [math]\displaystyle{ P(c) }[/math] can also be changed from keeping a weight into pruning a weight.
In vector notation this can be written as
[math]\displaystyle{ \hat{\mathbf{W}} = \operatorname{g} \left ( \mathbf{W}, c \right ) }[/math] |
|
( ) |
where the function [math]\displaystyle{ \operatorname{g} ( \cdot ) }[/math] imposes the previous dilution.
In weak dilution only a small and fixed fraction of the weights are diluted. When the number of terms in the sum goes to infinite (the weights for each node) it is still infinite (the fraction is fixed), thus mean field theory can be applied. In the notation from Hertz et al.[3] this would be written as
[math]\displaystyle{ \left \langle h_i \right \rangle = c \sum_j w_{ij} \left \langle S_j \right \rangle }[/math] |
|
( ) |
There are some assumptions for this to hold, which are not listed here.[6][7]
When the dilution is strong, the finite fraction of removed connections (the weights) is large, giving rise to a huge uncertainty.
Dropout is a special case of the previous weight equation (3), where the aforementioned equation is adjusted to remove a whole row in the vector matrix, and not only random weights
[math]\displaystyle{ \hat{\mathbf{w}_{j}} = \begin{cases} \mathbf{w}_{j}, & \mbox{with } P(c) \\ \mathbf{0}, & \mbox{otherwise} \end{cases} }[/math] |
|
( ) |
Because dropout removes a whole row from the vector matrix, the previous (unlisted) assumptions for weak dilution and the use of mean field theory are not applicable.
The process by which the node is driven to zero, whether by setting the weights to zero, by “removing the node”, or by some other means, does not impact the end result and does not create a new and unique case. If the neural net is processed by a high-performance digital array-multiplicator, then it is likely more effective to drive the value to zero late in the process graph. If the net is processed by a constrained processor, perhaps even an analog neuromorph processor, then it is likely a more power-efficient solution is to drive the value to zero early in the process graph.
Although there have been examples of randomly removing connections between neurons in a neural network to improve models,[3] this technique was first introduced with the name dropout by Geoffrey Hinton, et al. in 2012.[2] Google currently holds the patent for the dropout technique.[8][note 1]
Original source: https://en.wikipedia.org/wiki/Dilution (neural networks).
Read more |