A Fast Learning Algorithm for Deep Belief Nets
Authors: Geoffrey E. Hinton, Simon Osindero, Yee-Whye Teh
Year: 2006 | Neural Computation
Source: hinton-2006-a-fast-learning-algorithm-for
What it is
The paper that restarted deep learning. Hinton, Osindero and Teh showed that a deep network could be trained effectively by greedy layer-wise pretraining: train one layer at a time as a Restricted Boltzmann Machine, then fine-tune the whole stack with backpropagation. This solved the vanishing gradient problem that had made deep networks impractical since 1986 — not by fixing the gradient itself, but by initializing the weights in a region where gradients could flow.
The problem it solved
By 2006, “deep learning” was an aspiration without a practical method. The obstacle:
- Networks deeper than 2–3 layers couldn’t be trained reliably with backpropagation
- Random initialization led to poor local optima in deep networks
- Gradients from the output vanished to near-zero by the time they reached early layers
- SVMs with handcrafted features outperformed neural networks on most benchmarks
The community’s consensus: deep networks don’t work in practice.
Greedy layer-wise pretraining
The solution: don’t train the deep network end-to-end from random initialization. Instead, build it bottom-up.
Step 1: Train an RBM on the raw input. The RBM learns a distribution over the input and produces a hidden layer h₁.
Step 2: Freeze the first RBM. Treat h₁ as data and train a new RBM → h₂.
Step 3: Repeat for each subsequent layer.
Step 4: Unroll all RBMs into a deep directed network. Fine-tune end-to-end with backpropagation.
Data → RBM₁ → h₁ → RBM₂ → h₂ → RBM₃ → h₃ → classifier
↑ pretrain ↑ pretrain ↑ pretrain
←────────── fine-tune (backprop) ──────────────→
Each pretraining step maximizes a lower bound on the log-likelihood of the data — so each added layer provably improves the generative model. The pretraining gives backpropagation a good starting point, not a random one.
Restricted Boltzmann Machine (RBM)
An RBM is a two-layer undirected model (visible v, hidden h) with energy:
E(v, h) = −bᵥᵀv − bₕᵀh − vᵀWh
Training uses contrastive divergence (CD): approximate the gradient by a short Gibbs chain rather than full MCMC. Fast (a few steps suffice), and effective enough for pretraining.
Results
A 3-layer deep belief net (500–500–2000 units) trained on MNIST:
- 1.25% test error — competitive with convolutional networks
- Better than all previous non-convolutional methods
- The generative model learned meaningful representations: units in higher layers responded to abstract features (digit identity) rather than raw pixels
Why the approach was eventually superseded
Greedy pretraining was a workaround. Later work found better direct solutions:
- Xavier/He initialization (2010, 2015) — proper random initialization for deep networks
- ReLU activations (Krizhevsky 2012) — gradient flows without saturation, no pretraining needed
- Batch normalization (2015) — stabilizes training of very deep networks
- Residual connections (2016) — allows networks 100+ layers deep
By 2012, AlexNet was trained from random initialization with none of the RBM machinery. But the 2006 paper was what broke the wall: it demonstrated empirically that depth helps when the training problem is solved, motivating the engineering work that produced AlexNet.
Historical position
Rumelhart et al. 1986 → networks up to ~3 layers
Minsky & Papert 1969 → "deep networks won't work"
Hinton et al. 2006 → deep networks CAN work with pretraining
↓
Krizhevsky et al. 2012 → deep networks work WITHOUT pretraining, with better engineering
↓
He et al. 2016 → 152-layer residual networks (no pretraining, no special tricks)
See also
- rumelhart-1986-learning-representations-by-back-propagating-errors — The backpropagation this paper rescues from the vanishing gradient problem
- cortes-1995-support-vector-networks — SVMs: what deep learning was competing against in 2006
- krizhevsky-2012-imagenet-classification-with-deep-convolutional — AlexNet: the beneficiary of the deep learning revival Hinton 2006 started