TALK.md — Dropout: Context, Discussion, and Q&A
Paper: Improving neural networks by preventing co-adaptation of feature detectors (arXiv:1207.0580)
Notable Press Coverage, Blog Posts, and Announcements
-
Journal of Machine Learning Research (JMLR) follow-up (2014) — The authors expanded the arXiv preprint into the longer paper “Dropout: A Simple Way to Prevent Neural Networks from Overfitting,” published in JMLR volume 15. JMLR page | PDF
-
Nitish Srivastava’s Dropout page (University of Toronto) — The first author’s page lists both papers, model config files for MNIST, CIFAR-10, CIFAR-100, SVHN and TIMIT, and his code: Dropout page
Talks
- Geoffrey Hinton, “Brains, Sex, and Machine Learning” (Google TechTalks) — The talk linked from the dropout page above. Hinton explains dropout and the link to sexual reproduction that the paper also discusses: YouTube
Q&A (answers from the paper)
All answers refer to arXiv:1207.0580. The main text has no section numbers, so answers name the part of the paper they come from.
Q1: What problem does dropout solve, and why does it work? A (from the paper, abstract and opening paragraphs): A large network trained on a small training set often overfits. Dropout randomly leaves out each hidden unit with probability 0.5 on every training case, so a unit cannot rely on other specific units being present. This stops “complex co-adaptations”. The paper also describes dropout as a very efficient way of averaging many different networks.
Q2: How is the network used at test time? A (from the paper, main text): At test time the paper uses the “mean network”: it keeps all hidden units but halves their outgoing weights, because twice as many units are active as during training. The authors say this gives very similar results to averaging many dropout networks. Modern libraries like PyTorch do the scaling during training instead (by 1/(1−p)), so model.eval() simply turns dropout off.
Q3: How is dropout different from L2 weight decay? A (from the paper, main text): L2 weight decay adds a penalty on large weights. Dropout instead changes the network on every training case. The paper does not use an L2 penalty on the whole weight vector; it puts an upper limit on the L2 norm of each hidden unit’s incoming weights, which lets training start with a very large learning rate.
Q4: What dropout rates does the paper use? A (from the paper, main text and Appendix A.1): 50% dropout for hidden units and 20% for the input units. The authors tried many rates; almost all helped, and more extreme rates tended to be worse, which is why they used 0.5 throughout.
Q5: Is dropout still useful now that batch normalization exists? A (general background, not from the paper): Batch normalization, published in 2015, also has a regularizing effect and has reduced the need for dropout in many CNNs. Dropout is still common in fully connected layers and in Transformers, and Monte Carlo Dropout uses it to estimate uncertainty.
Q6: Why does the paper compare dropout to sex? A (from the paper, main text): The authors say sexual reproduction breaks up sets of co-adapted genes, so a function is better achieved by many genes that each work on their own. In the same way, dropout pushes each hidden unit to be useful by itself.
Common Misconceptions
-
“Dropout should also be applied at test time.” — No. At test time, dropout is disabled and weights are scaled. Applying random dropout at inference would make predictions stochastic and inconsistent.
-
“Dropout always improves every model.” — Not true. On small networks or very large datasets, dropout can hurt performance or provide no benefit. It is most useful when the model has many parameters relative to the amount of data.
-
“Dropout and L2 are the same thing.” — They are different mechanisms. Dropout is stochastic and breaks co-adaptation; L2 is deterministic and penalizes large weights. They can complement each other.
-
“You should set dropout to 0.5 everywhere.” — 0.5 is a good default for hidden layers, but input layers often use 0.8, and CNNs may use much lower dropout. The optimal rate depends on the architecture and dataset.
-
“Dropout slows down training because it trains many networks.” — Each mini-batch trains one random sub-network, so a single forward/backward pass is actually cheaper (fewer active neurons). The total training time is usually similar to or less than training the full network without dropout.