6
$\begingroup$

I know that Dropout will remove neurons randomly to reduce over-fitting.

If Dropout is going to remove neurons, why are those neurons built? We could remove those neurons from the architecture.

Why don't we do that?

$\endgroup$
2
  • $\begingroup$ Its a complexity penalty. rather than building 100 different networks with different numbers of nodes and seeing which gives better validation results, we train one network with ( a couple of different values for drop out) $\endgroup$
    – seanv507
    Oct 2, 2022 at 8:34
  • $\begingroup$ I recommend reading some explanations of dropout, such as in this question. stats.stackexchange.com/questions/241645 $\endgroup$
    – Sycorax
    Oct 4, 2022 at 3:08

3 Answers 3

23
$\begingroup$

To add to @frank's answer, the reason using dropout is not the same as training a smaller network is that the neurons that are dropped out are randomly selected each time the weights are updated. So while on each iteration only some of the neurons are used and updated, over the entire training cycle all the neurons are trained. According to Jason Brownlee's A Gentle Introduction to Dropout for Regularizing Deep Neural Networks, dropout can be thought of as training an ensemble of models in parallel.

$\endgroup$
1
  • $\begingroup$ Never really thought of it that way, but I suppose it is analogous to bagging a bunch of weakly trained NNs. Of course in the actual implementation in code and in the back propagation of gradients it's treated as a whole. $\endgroup$ Oct 3, 2022 at 13:52
18
$\begingroup$

The neurons are only dropped temporarily during training. They are not dropped from the network altogether. It is just that it turns out that we get better weights if we randomly set them to zero, temporarily, so the other neurons "think" they cannot "rely" on the other neurons and have to "perform well themselves". The neural network that you get out at the end contains all the neurons.

$\endgroup$
4
$\begingroup$

The goal of dropout isn't to disable neurons permanently. It is to prevent the network from splitting into separate sections functioning in parallel and not utilizing interconnections between them. An extreme, undesired case would be a network relying on only a single neuron processing certain feature.

Dropout disables neurons randomly during training which forces the consecutive layer to optimize weights coming from other inputs, and thus making a better use of all the possible connections available in the architecture.

$\endgroup$
3
  • $\begingroup$ This seems like an odd way to explain it, because the things you say are problems aren't obviously problematic, at least to me. From the perspective of human software design, being able to split software into separate sections that each do their own thing is highly desirable, and relying on other system components to work correctly is the norm. Even if we step away from human designs, in the world of explainable AI, finding out that a single neuron processes a specific feature would be a huge win. $\endgroup$ Oct 3, 2022 at 14:04
  • 1
    $\begingroup$ @DanielWagner Perhaps it's odd to you, but this line of reasoning was used by the authors of the method, whose abstract says "[Dropout] prevents units from co-adapting too much." jmlr.org/papers/volume15/srivastava14a/…, $\endgroup$ Oct 3, 2022 at 16:47
  • $\begingroup$ @DanielWagner thanks, that's a good example. One of the reasons we like to split the code is to avoid running the same code, on the same data, twice. If you want to recognize handwritten letters, you don't want to run a function checking if it might be an i and start with searching for a dot, and then run another function checking if it might be a j and search for a dot again. You'd rather prefer to search for the dot once, and reuse the search outcome for both i and j. That would either save you CPU or allow to write a more advanced dot finder. This is what dropout helps to achieve. $\endgroup$ Oct 3, 2022 at 17:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.