Information Bottleneck
Keep what predicts, drop what merely describes. The bottleneck trades input bits against label bits with one knob pricing relevance.
Why Does This Exist?
Embeddings memorize: 784 pixels stored verbatim ace training and flop on new handwriting. Regularizers punish size, not irrelevance; a small embedding can still encode stroke thickness that never helps the digit. What you want is minimal relevant bits.
The bottleneck objective prices exactly that: compress into , keep predictable. It builds on mutual information under the ceiling of data processing inequality.
The one idea you need first
is the rate: bits of input kept. is the relevance: label bits preserved. trades them: keeps nothing, keeps everything predictive. The curve of optimal pairs is the IB frontier.
Think of It Like This
Packing for a quiz
Your textbook is , the quiz is , your one-page cheat sheet is . Copying pages minimizes nothing useful; the best sheet keeps quiz answers in fewest lines.
is the page limit's strictness. Where it stops: quizzes reward reasoning, not retrieval, while IB prices bits about fixed . Shifting quiz distributions void the packing.
How It Actually Works
Blahut-Arimoto-style iterations solve the discrete IB; variational bounds (VIB) train deep nets with : reconstruction-free, decoder plus prior penalty. Deterministic IB variants quantize . Theory links: SGD's noise may trace the frontier (debated); minimal sufficient statistics are the limit; -VAE replays the tradeoff with reconstruction in place of .
Worked example
Binary digits: fair ( bit). Raw holds (labels determined). IB at learns with bits keeping : 60% of input bits dropped for 10% of label bits. Accuracy moves 99.0% to 98.6% while input reconstruction collapses (by design). Sweeping traces , , , : diminishing returns past the knee at .
Code
import numpy as np
rate = np.array([0.05, 0.15, 0.4, 1.2]) # I(X;Z)relevance = np.array([0.4, 0.7, 0.9, 0.99]) # I(Z;Y)beta = 4.0obj = rate - beta * relevance # IB objective, lower betterprint(np.round(obj, 2)) # -> [-1.55 -2.65 -3.2 -2.76]Objective bottoms at index 2 ( knee): beats fuller and thinner rivals. The frontier, not vibes, picks the operating point.
Watch Out For
Pricing bits you cannot measure
Deep-net MI estimates (binning, MINE, plug-in) err by 2-5x on high-dimensional . Optimizing a mismeasured squeezes phantoms while real memorization hides in estimator blind spots.
Pair IB training with probe accuracy and held-out tests. If probes disagree with MI meters, trust the probes.
Compressing away the next task's signal
tuned for today's drops attributes tomorrow's task needs (background, style, subgroup). Reuse then fails silently: the bits are gone, not hidden.
Keep task-family broad or version representations per task. If transfer drops while source holds, the bottleneck overfit the old quiz.
The Quick Version
- Minimize : least input bits for most label bits.
- Example keeps 0.9 of 1.0 label bits with 0.4 input bits at the knee.
- slides the frontier from empty to sufficient; diminishing returns past the knee.
- VIB trains it with decoder likelihood minus KL to a prior.
- MI meters lie in high dimensions; verify with probes and held-out tests.
- Bottlenecks overfit their quiz; broaden or version per task family.