# Generative Models — Taxonomy & History > Every image model, text model, video model, and 3D model fits in one of five buckets. Pick the wrong bucket and you will fight the math for weeks. Pick the right one and the field's last twelve years of progress stacks cleanly in your head. **Type:** Learn **Languages:** Python **Prerequisites:** Phase 2 (ML Fundamentals), Phase 3 (Deep Learning Core), Phase 7 · 14 (Transformers) **Time:** ~45 minutes ## The Problem A generative model does one job: given training samples drawn from some unknown distribution $p_{\text{data}}(x)$, output new samples that look like they came from the same distribution. Faces, sentences, MIDI files, protein structures — all the same problem if you squint. The rub is that $p_{\text{data}}$ lives in a space with millions of dimensions (a 512x512 RGB image is ~786k dimensions), the samples sit on a thin manifold inside that space, and you only have maybe 10M examples. Brute-forcing the density is hopeless. Every generative model is a compromise that trades one hard problem for a slightly less hard one. Five families have survived the last twelve years. Knowing which compromise each family makes tells you why it wins on some tasks and collapses on others. ## The Concept ![Five families of generative models — taxonomy by what they model](../assets/taxonomy.svg) **1. Explicit density, tractable.** Write $\log p(x)$ as a sum you can actually evaluate. Autoregressive models (PixelCNN, WaveNet, GPT) factorize $p(x) = \prod_i p(x_i \mid x_{