When Does a Diffusion Model Decide What to Draw ?
Organizations: Independent Researcher
Abstract
A diffusion model starts from pure noise and removes it step by step. Somewhere along the way it stops being able to become "anything" and becomes committed to, say, a horse rather than a truck. We measure when this happens, and what a trained model gets wrong about it, on CIFAR-10. The most direct measurement is to freeze a half-finished image, restart the generation from that point many times, and count how often each class comes out. We call this probability the committor. Measured this way, the model settles coarse questions (vehicle or animal?) at roughly twice the noise level of fine ones (which animal?). A much cheaper measurement, the noise level at which a classifier's opinion about two classes splits into two distinct groups, gets the order of these decisions right (rank correlation 0.73-0.88) but not their exact timing. We then compare pretrained models with their
Figures & tables
| term | meaning |
|---|---|
| noise level | How much Gaussian noise is mixed into an image. Generation starts at a large (pure noise) and ends near (a clean image). Higher noise means earlier in generation. |
| commitment | The point in generation after which the final class of an image is effectively fixed. |
| committor | For a half-finished image, the probability that generation continued from it ends in a given class. Estimated by restarting generation many times from the same point. |
| decision noise level | The noise level below which a trajectory’s outcome is settled, i.e. its committor stays close to 0 or 1. |
| order parameter | A single number that says how “class -like versus class -like” an image is. We use a classifier’s log-odds. |
| density transition | The noise level at which the distribution of across many images splits from one hump into two. |
| model | sampler and modification | images | purpose |
|---|---|---|---|
| EDM uncond. | – | 14,500 | main comparison (Sec. 6 ) |
| EDM uncond. | – (replicate) | 3,500 | replication |
| EDM uncond. | – | 320 (+46,080 restarts) | committors (Sec. 5 ) |
| EDM cond. | equal labels | 4,000 | proportions right by design |
| EDM uncond. | Heun, 18 steps, full precision | 10,000 | standard sampler |
| EDM uncond. | 256 / 512 / 1,024 steps, full prec. | 2,000 / 1,500 / 1,000 | sampler (Sec. 6.4 ) |
| decision noise level (median) | stick: log-odds | stick: | ||||||
|---|---|---|---|---|---|---|---|---|
| threshold | veh./anim. | veh./veh. | anim./anim. | ratio | rank corr. | ratio | rank corr. | ratio |
| 0.05 | 2.16 | 1.61 | 0.87 | 2.5 | 0.74 [0.47, 0.91] | 1.6 | 0.73 [0.38, 0.93] | 0.39 |
| 0.10 | 3.15 | 2.60 | 1.52 | 2.1 | 0.84 [0.66, 0.93] | 2.8 | 0.88 [0.71, 0.97] | 0.58 |
| 0.20 | 5.29 | 4.01 | 3.02 | 1.8 | 0.81 [0.54, 0.94] | 4.2 | 0.87 [0.61, 0.96] | 0.93 |
| model | compared with | agreement of | spread of timing error | timing ratio |
|---|---|---|---|---|
| EDM, | the data | 0.11 [ , 0.68] | 0.332 [0.16, 0.42] | 1.00 |
| mass-matched data | 0.974 [0.94, 0.99] | 0.178 [0.09, 0.25] | 1.115 [1.01, 1.23] | |
| two halves of the data | 0.981 [0.93, 0.99] | 0.208 [0.12, 0.30] | — | |
| EDM cond., equal labels | the data | 0.87 | 0.223 | 1.00 [0.92, 1.18] |
| two halves of the data | — | 0.211 | 1.07 [0.98, 1.29] | |
| EDM, corrected sampler | the data | 0.889 [0.64, 0.98] | 0.254 [0.15, 0.35] | 1.017 |
| sampler | precision | images | class imbalance | noise floor |
|---|---|---|---|---|
| stochastic, 256 steps | half | 2,500–3,500 | 0.12–0.15 | 0.040–0.048 |
| stochastic, 256 steps | full | 2,000 | 0.171 | 0.054 |
| stochastic, 512 steps | full | 1,500 | 0.132 | 0.063 |
| stochastic, 1,024 steps | full | 1,000 | 0.137 | 0.076 |
| deterministic, 18 steps (EDM default) | full | 10,000 | 0.095 | 0.024 |
| run | imbalance (ours) | imbalance (ViT) | FID | vs data |
|---|---|---|---|---|
| no correction | 0.134 | 0.119 | 12.93 | |
| first-order correction, 1 round | 0.076 | 0.083 | 12.68 | 0.56 |
| exact correction (Eq. 4 ), 1 round | 0.093 | 0.107 | 12.95 | 0.54 |
| exact correction, 2nd round | 0.051 | 0.074 | 12.98 | 0.89 |
| split point | 0.5 | 1.0 | 2.0 | 4.0 |
|---|---|---|---|---|
| correct only for (noisy part) | ||||
| correct only for (cleaner part) | ||||
| sum | 1.05 | 1.22 | 1.20 | 1.07 |
Appendix figures & tables14 assets
Supplementary material from the paper’s appendix.
Appendix
| warp | tilting slope, raw | tilting slope, recalibrated | correlation with | relative error |
|---|---|---|---|---|
| affine | 1.42 | 0.98 | 0.999 | 0.054 |
| 1.34 | 0.99 | 0.997 | 0.079 | |
| signed | 1.65 | 0.99 | 0.998 | 0.060 |
| 0.49 | 0.78 | 0.959 | 0.485 |
| comparison | corr. | sign agr. | median | corr. | median ratio |
|---|---|---|---|---|---|
| ResNet: raw vs. recal. | 0.822 | 0.70 | 0.058 | 0.968 | 1.00 |
| VGG: raw vs. recal. | 0.834 | 0.77 | 0.056 | 0.946 | 0.90 |
| raw: ResNet vs. VGG | 0.938 | 0.86 | 0.027 | 0.958 | 1.11 |
| recal.: ResNet vs. VGG | 0.903 | 0.93 | 0.039 | 0.944 | 1.00 |
| variant | corr. | median | corr. | median ratio |
|---|---|---|---|---|
| bandwidth | 0.964 | 0.030 | 0.978 | 1.22 |
| bandwidth | 0.984 | 0.020 | 0.989 | 1.22 |
| bandwidth | 0.983 | 0.016 | 0.983 | 0.82 |
| merge , prominence | 0.994 | 0.010 | 0.993 | 0.90 |
| persistence over 2 levels | 1.000 | 0.000 | 1.000 | 1.00 |
| persistence over 3 levels | 1.000 | 0.000 | 1.000 | 1.00 |
| total variation | excess over 12-draw noise | above floor [95% CI] | slope | |
|---|---|---|---|---|
| 7.95 | 0.354 | 0.029 | [ , ] | 1.03 |
| 5.42 | 0.344 | 0.034 | [ , ] | 1.09 |
| 3.61 | 0.361 | 0.086 | [ , ] | 1.11 |
| 2.42 | 0.359 | 0.118 | [ , ] | 1.09 |
| 1.63 | 0.325 | 0.125 | [ , ] | 1.07 |
| 1.11 | 0.303 | 0.147 | [ , ] | 1.00 |
| airpl. | autom. | bird | cat | deer | dog | frog | horse | ship | truck | |
|---|---|---|---|---|---|---|---|---|---|---|
| SDE, fp16 (14.5k; ours) | 0.100 | 0.128 | 0.067 | 0.081 | 0.075 | 0.094 | 0.108 | 0.129 | 0.094 | 0.125 |
| SDE, fp16 (3.5k; ours) | 0.101 | 0.133 | 0.076 | 0.082 | 0.082 | 0.104 | 0.104 | 0.111 | 0.094 | 0.114 |
| SDE, fp16 (3.5k; ViT) | 0.099 | 0.130 | 0.082 | 0.089 | 0.079 | 0.095 | 0.100 | 0.113 | 0.093 | 0.119 |
| Heun, fp32 (10k; ours) | 0.112 | 0.111 | 0.082 | 0.096 | 0.086 | 0.094 | 0.102 | 0.115 | 0.106 | 0.095 |
| Heun, fp32 (10k; ViT) | 0.110 | 0.109 | 0.086 | 0.103 | 0.085 | 0.083 | 0.104 | 0.115 | 0.107 | 0.096 |
| run | ratio, raw | ratio, rebalanced | rebalanced vs data | class-mass error | FID |
|---|---|---|---|---|---|
| baseline (self) | 0.98 [0.94, 1.03] | 1.00 [0.97, 1.03] | 0.91 | 0.134 | 12.9 |
| score | 0.81 [0.72, 0.90] | 0.94 [0.83, 1.04] | 0.89 | 0.203 | 13.7 |
| score | 0.71 [0.57, 0.90] | 0.84 [0.68, 1.11] | 0.94 | 0.227 | 15.7 |
| score | 0.55 [0.39, 0.69] | 0.87 [0.75, 0.97] | 0.84 | 0.393 | 25.4 |
| noise level | 0.55 [0.44, 0.68] | 0.81 [0.66, 1.05] | 0.85 | 0.349 | 35.7 |
| noise level | 0.60 [0.30, 1.50] | 0.66 [0.42, 1.27] | 0.21 | 1.009 | 106.1 |
| pair | jump | pair | jump | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| (0,1) | 0.906 | 0.72 | 0.277 | (2,9) | 0.754 | 1.07 | 0.350 | ||||
| (0,2) | 0.827 | 0.74 | 0.272 | (3,4) | 0.792 | 0.95 | 0.323 | ||||
| (0,3) | 0.864 | 0.63 | 0.260 | (3,5) | 0.571 | 1.13 | 0.366 | ||||
| (0,4) | 0.855 | 0.84 | 0.297 | (3,6) | 0.782 | 0.96 | 0.325 | ||||
| (0,5) | 0.748 | 1.06 | 0.354 | (3,7) | 0.770 | 1.07 | 0.343 | ||||
| (0,6) | 0.810 | 0.86 | 0.298 | (3,8) | 0.770 | 0.55 | 0.236 |
| pair | data | epoch 20 | epoch 80 |
|---|---|---|---|
| MNIST (0,1) | 0.905 | ||
| MNIST (0,8) | 0.933 | ||
| MNIST (3,8) | 0.778 | not bimodal | 0.58 |
| FashionMNIST (1,7) | 0.917 | 0.28 | 0.75 |
| pair | sampler | none | all | |||
|---|---|---|---|---|---|---|
| (0,1) | Heun-40 | |||||
| (0,1) | SDE-40 | |||||
| (3,8) | SDE-40 | |||||
| (0,8) | Heun-40 | |||||
| (2,7) | Heun-40 | |||||
| (2,7) | SDE-40 |
| Heun-10 | Heun-40 | SDE-10 | SDE-40 | SDE-160 | |
|---|---|---|---|---|---|
| pair | (raw) | (raw) | (recalibrated) | robust |
|---|---|---|---|---|
| airplane/automobile | 1.33 [1.20, 1.47] | [ , ] | [ , ] | |
| airplane/bird | 2.69 [1.80, 3.63] | [ , ] | [ , ] | |
| airplane/cat | 1.63 [1.47, 1.99] | [ , ] | [ , ] | |
| airplane/deer | 2.43 [1.47, 4.44] | [ , ] | [ , ] | |
| airplane/dog | 1.80 [1.63, 2.20] | [ , ] | [ , ] | |
| airplane/frog | 2.69 [2.20, 2.97] | [ , ] | [ , ] | yes |
| pair | data | model | ratio | 95% interval | data | model |
|---|---|---|---|---|---|---|
| airplane/automobile | 1.39 | 1.15 | 0.82 | [0.68, 1.07] | ||
| airplane/bird | 2.15 | 0.91 | 0.47 | [0.24, 0.78] | ||
| airplane/cat | 1.79 | 2.56 | 1.36 | [1.13, 1.68] | ||
| airplane/deer | 2.88 | 2.15 | 0.71 | [0.44, 1.28] | ||
| airplane/dog | 1.90 | 2.28 | 1.20 | [0.97, 1.47] | ||
| airplane/frog | 2.72 | 2.15 | 0.79 | [0.58, 1.03] |