Part I ยท Ch. 2 โ€” Destroying an Apple

Part I ยท Chapter 2 of 8

Destroying an Apple

The forward process: Gaussian noise, a schedule, and the shortcut to any step


Building the path out to static

In Chapter 1 we drew a path from the apple out to static. Now we build it. Not sketch it โ€” build it, with numbers you can check on a phone calculator, because everything else in this book stands on top of this one construction.

Here is the job. We have one photograph of one apple. We want a ladder of images: at the bottom, the apple exactly as it was; at the top, pure random static with no apple left in it at all; and in between, a smooth run of rungs โ€” one picture per rung, and that is all the word means โ€” where the apple dissolves a little more on each one. That ladder is called the forward process โ€” adding noise on purpose. It is the only part of this whole subject that involves no learning, no network, and no cleverness. It is a multiplication and a coin flip, repeated.

Five square panels in a row, left to right, under a long muted arrow labeled 'the forward process โ€” adding noise on purpose'. The first panel shows a clean mint outline of an apple with a stem and leaf on a dark background, labeled t = 0, alpha-bar = 1.000, 'the apple, untouched'. The second is the same apple with a light scatter of amber squares over it, labeled t = 100, alpha-bar = 0.897, 'barely disturbed'. The third has the apple still visible but heavily speckled with amber, labeled t = 300, alpha-bar = 0.396, 'shape and color only'. The fourth is almost entirely amber static with the faintest ghost of an apple outline, labeled t = 600, alpha-bar = 0.026, 'a rumour of an apple'. The fifth is solid amber static with no apple at all, labeled t = 1000, alpha-bar = 0.00004, 'static'.
The ladder, five rungs of it. The mint apple fades and the amber static fills in. The number under each panel is $\bar{\alpha}_t$ โ€” the share of the original apple still present, a number this chapter builds up to and does not expect you to recognize yet โ€” and by the time we reach the top it is four hundredths of a thousandth. Every equation in this chapter exists to compute that number and to put us on any rung we like.

One housekeeping note before we start, because it saves confusion later: everything here happens directly on pixels. We are working directly on pixels for now; Chapter 4 moves this whole machinery into a smaller space, and not one equation here changes.

What "noise" actually is

"Noise" sounds vague. It is not. When we say we add noise to a pixel, we mean something exact: we draw one random number from a particular bell-shaped pile of possibilities and add it to that pixel's value. Do that independently for every pixel โ€” 786,432 of them in a 512 × 512 color photograph โ€” and you have added noise to an image.

The pile we draw from is Gaussian noise, and it has exactly two properties worth memorising. Its mean is 0: the draws are centered on zero, so they are as likely to brighten a pixel as to darken it, and a great many of them average out to nothing. Its standard deviation โ€” its spread โ€” is 1: about 68% of draws land between $-1$ and $+1$, about 95% land between $-2$ and $+2$, and a draw beyond $\pm 3$ is rare.

A mint bell curve centered on zero, plotted against a horizontal axis labeled 'the value of one noise number epsilon' running from minus 4 to plus 4, and a vertical axis labeled 'how often that value comes up'. The region between minus 1 and plus 1 is shaded a stronger mint and labeled '68% of draws land here'; the wider region out to plus and minus 2 is shaded fainter and labeled '95% land within plus or minus 2'. A dashed muted line marks the peak, labeled 'mean 0'. Three amber tick marks stand on the axis at minus 0.62, plus 0.31 and plus 1.50, labeled 'three actual draws'.
The bell curve, and three numbers pulled out of it. The mean is where the pile is centered; the spread is how wide it is. The third amber draw, $+1.50$, is the one we will push through the whole chapter's arithmetic. Nothing about this curve is chosen for beauty โ€” it is chosen because two of these piles added together make a third one, which is the fact the entire chapter turns on.

We write one such blob of noise as $\boldsymbol{\epsilon}$ โ€” the Greek letter epsilon, which throughout this book means "the noise", one random number per pixel, the same shape as the image itself. And we write "drawn from" with a tilde:

$$\boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})$$

In words: epsilon is drawn from the standard bell curve, mean zero, spread one. The $\mathbf{0}$ says every pixel's noise is centered on zero; the $\mathbf{I}$ says each pixel gets its own independent draw, with spread 1, and no pixel's draw is tied to its neighbor's.

One more piece of vocabulary, and it is the piece that will save us from the most common error in this whole subject. The variance is the spread multiplied by itself. For our standard bell curve the spread is 1 and so the variance is $1 \times 1 = 1$ โ€” the two happen to coincide, which is convenient and also slightly treacherous, so hold on to the distinction.

One step: shrink, then add

Here is the recipe for a single rung of the ladder, in words first. Take the image as it currently stands. Shrink it slightly toward zero โ€” multiply every pixel by a number a little below 1. Then add a little noise. That is the whole step.

Why square roots turn up

Before we write the step down, there is one move that almost every explanation of this subject skips, and skipping it is why the equations that follow look arbitrary. We are about to multiply the picture by one number and the noise by another, and both of those numbers are going to be square roots. Here is where they come from.

Take any random quantity at all and double it. Its spread doubles too, which is what you would guess. But the variance is the spread multiplied by itself, so if the spread has doubled, the variance has gone up by a factor of $2 \times 2 = 4$. Halve the quantity instead and the variance falls to a quarter. The general rule is worth putting on its own line:

$$\text{scale a random quantity by } c \quad\Longrightarrow\quad \text{its variance is scaled by } c^2$$

In words: multiply a random quantity by some number and its variance changes by that number multiplied by itself โ€” not by the number itself. Scale by 3 and the variance is 9 times what it was. Scale by $0.5$ and the variance is a quarter.

Variance is the quantity we want to keep control of, because it is the form of spread that does something simple when independent random pieces are combined โ€” the chapter makes that precise later, and it is the reason we do our bookkeeping in squares rather than in spreads. So let us work the problem backwards, which is how these coefficients were actually chosen. Suppose we decide that on this rung the noise should account for a fraction $\beta_t$ of the picture's variance. The number $c$ we multiply the noise by has to satisfy $c^2 = \beta_t$, and there is exactly one way to arrange that: $c = \sqrt{\beta_t}$. The picture itself has to keep the rest, the fraction $1 - \beta_t$, so by the identical argument its multiplier is $\sqrt{1 - \beta_t}$.

That is the whole story of the square roots. They are not a convention and they are not decoration: they are what you get when you decide how the variance should be divided up and then ask what to multiply by. Now we can write the step down, with $t$ counting which rung we are on โ€” the timestep โ€” and $\beta_t$ standing for the share of the variance this particular rung's noise takes:

$$\mathbf{x}_t = \sqrt{1 - \beta_t}\,\mathbf{x}_{t-1} + \sqrt{\beta_t}\,\boldsymbol{\epsilon}_t, \qquad \boldsymbol{\epsilon}_t \sim \mathcal{N}(\mathbf{0}, \mathbf{I})$$

In words: the image at rung $t$ is the image from rung $t-1$, multiplied by the square root of $1 - \beta_t$, plus a fresh blob of standard bell-curve noise multiplied by the square root of $\beta_t$. The subscript on $\boldsymbol{\epsilon}_t$ is there to insist that this is a new draw at every rung, never a re-used one.

That expression $1 - \beta_t$ shows up often enough to deserve its own name, so we give it one:

$$\alpha_t = 1 - \beta_t \qquad\Longrightarrow\qquad \mathbf{x}_t = \sqrt{\alpha_t}\,\mathbf{x}_{t-1} + \sqrt{1-\alpha_t}\,\boldsymbol{\epsilon}_t$$

In words: alpha-t is the share of the signal we keep at this rung, and beta-t is the share of noise we add; they always total 1. So the step reads: keep $\sqrt{\alpha_t}$ of what you had, add $\sqrt{1-\alpha_t}$ of something new.

A left-to-right box diagram titled 'one step of the forward process'. A mint box labeled x with subscript t minus 1, captioned 'the apple as it stood a step ago', feeds a mint arrow into a second mint box labeled 'times the square root of alpha-t', captioned above as 'shrink the signal' and below as 'with beta = 0.1: the square root of 0.9 is 0.9487'. A mint arrow leads from that box into a white circle containing a plus sign. From below, an amber arrow enters the same plus circle from an amber box labeled 'square root of one minus alpha-t, times epsilon', captioned 'the square root of 0.1 is 0.3162, times one fresh draw from the bell curve'. A mint arrow leaves the plus circle into a mint box labeled x with subscript t, captioned 'one step noisier'. At the far right a small panel reads 0.9487 squared plus 0.3162 squared equals 1, captioned 'spread held at 1, forever'.
The whole step, in one picture. Signal lane in mint, noise lane in amber, and one addition. The panel on the right is the variance split we just worked out, checked in numbers, and it is worth more than it looks.

Why the shrink is there at all

The shrink looks like an odd extra. Why not just add noise and leave the image alone? Because then the numbers would grow without bound. Add a spread-1 blob a thousand times over and the pixel values wander off into the hundreds, and every downstream piece of machinery has to cope with quantities that get bigger the longer we run. The shrink stops that dead. Watch it happen with $\beta_t = 0.1$, so $\alpha_t = 0.9$. Why a tenth, rather than a half or a hundredth? It is round enough that you can check the arithmetic in your head, and heavy enough that the apple falls apart over four rungs instead of a thousand. Real models are far gentler than this down at the bottom of the ladder, and we will put their actual numbers on the page shortly.

Worked example: the spread never moves

The signal coefficient is $\sqrt{\alpha_t} = \sqrt{0.9} = 0.9487$.

The noise coefficient is $\sqrt{1-\alpha_t} = \sqrt{0.1} = 0.3162$.

Square them: $0.9487^2 = 0.9000$ and $0.3162^2 = 0.1000$.

Add the squares: $0.9000 + 0.1000 = 1.0000$.

That was not luck. In symbols it is an identity, true for every rung of every schedule:

$$\left(\sqrt{\alpha_t}\right)^2 + \left(\sqrt{1-\alpha_t}\right)^2 = \alpha_t + (1 - \alpha_t) = 1$$

In words: the two coefficients, squared and added, always give exactly 1. That is the check on the split we made a moment ago: scaling by $c$ scales variance by $c^2$, so squaring the two coefficients tells us what share of the variance each lane owns, and the two shares account for all of it with nothing left over. It is the statement that the picture's overall spread is held at 1 for as long as we care to keep going โ€” at rung 1, at rung 500, at rung 1000. (One honest condition attached: this holds if we start from pixel values already scaled to sit around zero with a spread of roughly 1, which is what every implementation does to an image before anything else touches it.) Nothing blows up, nothing collapses. This property has a name in the literature, "variance preserving", and now you know exactly what it buys.

One more structural fact, stated plainly because it matters later: each rung looks only at the rung immediately below it. To build $\mathbf{x}_{7}$ we need $\mathbf{x}_{6}$ and nothing else โ€” not $\mathbf{x}_{5}$, not the original photograph. A chain with that property is a Markov chain, and ours runs $\mathbf{x}_0 \to \mathbf{x}_1 \to \mathbf{x}_2 \to \dots \to \mathbf{x}_T$, where $T$ is how many rungs the ladder has in total.

The schedule: how hard to hit it, and when

We have one free choice left: the list of $\beta_t$ values, one per rung. That list is the noise schedule, and it is decided once, in advance, and then never touched again.

The choice everyone makes is: small at the start, larger at the end. The reasoning is worth spelling out, because it is genuinely about the apple. At the bottom of the ladder we hold a clean, information-rich photograph, and a heavy dose of noise there would destroy fine structure โ€” the speckle on the skin, the edge where the fruit meets the shadow โ€” in a single move, leaving nothing gradual to learn from. Near the top there is almost nothing left to protect, so gentle rungs there would waste effort nudging static into slightly different static. Small early, brutal late.

Time to make it concrete. Here is a four-rung toy schedule, small enough to check with a calculator, and we will use these exact numbers for the rest of the chapter. A note on rounding, made once: we round to four significant figures in the middle of a derivation.

Worked example: a four-rung schedule, every column computed

$t$$\beta_t$$\alpha_t = 1-\beta_t$ $\bar{\alpha}_t$$\sqrt{\bar{\alpha}_t}$$\sqrt{1-\bar{\alpha}_t}$
10.10.90.90.94870.3162
20.20.80.720.84850.5292
30.30.70.5040.70990.7043
40.50.50.2520.50200.8649

The fourth column is the running product: $0.9$, then $0.9 \times 0.8 = 0.72$, then $0.72 \times 0.7 = 0.504$, then $0.504 \times 0.5 = 0.252$. The fifth is its square root: $\sqrt{0.72} = 0.8485$, and so on. The sixth is the square root of what is left over: $1 - 0.72 = 0.28$ and $\sqrt{0.28} = 0.5292$.

Two things about those $\beta_t$ values before we go on. They rise โ€” 0.1, then 0.2, then 0.3, then 0.5 โ€” which is the small-early, brutal-late shape we argued for a paragraph ago. And every one of them is enormous compared with a real model's, where the first rung adds about a ten-thousandth. That is deliberate, because these four rungs have to do the work of a thousand, so each one has to hit far harder than any real rung ever would.

That fourth column is the star of the chapter, and the next section earns it. For now, read it as the attenuator chain reads: after four rungs, just over a quarter of the apple's signal is still on the line.

Two stacked panels sharing a horizontal axis labeled 't, the timestep along the schedule', running from 0 to 1000. The top panel plots beta-t in amber as a straight line rising from about 0.0001 at t equals 0 to 0.02 at t equals 1000, annotated 'each schedule step adds a little more than the last'. The bottom panel plots alpha-bar-t in mint as a curve falling from 1.0 at the left, through marked points labeled 0.897 at t equals 100, 0.396 at t equals 300 and 0.026 at t equals 600, and flattening against zero after that, annotated 'past t about 600 there is almost nothing of the apple left'.
Two views of the same schedule. The amber line is what each rung adds; the mint curve is what survives after all the rungs so far. Notice they are not mirror images โ€” the mint curve is a running product, so it falls off a cliff in the middle while the amber line is still climbing politely.

Real models use a longer ladder than four. A typical setup runs $T = 1000$ rungs with $\beta_1 \approx 10^{-4}$ rising in a straight line to $\beta_T \approx 0.02$, which is exactly the schedule plotted above. Push that all the way to the top and the surviving share is $\bar{\alpha}_T \approx 4 \times 10^{-5}$: four hundred-thousandths of the apple, which is to say, static. Treat $T = 1000$ as illustrative โ€” it is a configuration choice, not a law, and different models pick differently. And treat it as counting one thing only: the rungs on this ladder. It is not a count of how many passes anything makes later on. One more thing about that letter: if you have come from How LLMs Actually Work, capital $T$ there is the temperature dial you turn when sampling the next word โ€” same letter, unrelated meaning. Here $T$ counts rungs and nothing else.

The shortcut: jumping to any rung in one move

Now the payoff. Suppose we want $\mathbf{x}_{700}$ โ€” the apple at rung 700 of a thousand-rung ladder. The recipe as written says: build rung 1, then rung 2, then rung 3, all the way up. Seven hundred multiplications and seven hundred noise draws, each one waiting on the one before it. That would make everything downstream painfully slow.

It turns out we never have to do that. Let us take two rungs and squash them into one. Start with the two rungs written out:

$$\mathbf{x}_1 = \sqrt{\alpha_1}\,\mathbf{x}_0 + \sqrt{1-\alpha_1}\,\boldsymbol{\epsilon}_1, \qquad \mathbf{x}_2 = \sqrt{\alpha_2}\,\mathbf{x}_1 + \sqrt{1-\alpha_2}\,\boldsymbol{\epsilon}_2$$

In words: rung 1 is built from the clean apple, and rung 2 is built from rung 1 โ€” each by the same shrink-then-add recipe, with its own fresh noise draw.

Substitute the first line into the second, replacing $\mathbf{x}_1$ with what it is made of:

$$\mathbf{x}_2 = \sqrt{\alpha_2}\left(\sqrt{\alpha_1}\,\mathbf{x}_0 + \sqrt{1-\alpha_1}\,\boldsymbol{\epsilon}_1\right) + \sqrt{1-\alpha_2}\,\boldsymbol{\epsilon}_2$$

In words: rung 2 is the shrink applied to the whole of rung 1, plus rung 2's own noise.

Multiply the bracket out. Two square roots multiplied together become the square root of the product โ€” $\sqrt{\alpha_2}\sqrt{\alpha_1} = \sqrt{\alpha_1\alpha_2}$, and $\sqrt{\alpha_2}\sqrt{1-\alpha_1} = \sqrt{\alpha_2(1-\alpha_1)}$:

$$\mathbf{x}_2 = \sqrt{\alpha_1\alpha_2}\,\mathbf{x}_0 + \underbrace{\sqrt{\alpha_2(1-\alpha_1)}\,\boldsymbol{\epsilon}_1 + \sqrt{1-\alpha_2}\,\boldsymbol{\epsilon}_2}_{\text{two independent noise blobs}}$$

In words: the clean apple now carries a single coefficient, $\sqrt{\alpha_1\alpha_2}$ โ€” the two shrinks multiplied together. What is left over is two separate noise blobs, each with its own scale factor. If we can collapse those two into one, we are done.

The one fact you have to be told

We can collapse them, and here is the rule that lets us. Add two independent Gaussian blobs and you get a third Gaussian blob โ€” the bell curve is closed under addition, which is the reason it is used here and not some prettier distribution. The scale of that third blob is where people go wrong, so read this next line twice.

So: our two blobs have scales $a = \sqrt{\alpha_2(1-\alpha_1)}$ and $b = \sqrt{1-\alpha_2}$, which means $a^2 = \alpha_2(1-\alpha_1)$ and $b^2 = 1-\alpha_2$. Add the variances and expand:

$$a^2 + b^2 = \alpha_2(1-\alpha_1) + (1-\alpha_2) = \alpha_2 - \alpha_1\alpha_2 + 1 - \alpha_2 = 1 - \alpha_1\alpha_2$$

In words: multiply out the first bracket to get alpha-2 minus alpha-1-times-alpha-2; the plus-alpha-2 and the minus-alpha-2 cancel; what survives is 1 minus the product of the two alphas. Every trace of the individual rungs has vanished โ€” only the product remains.

Worked example: the same line in numbers

From our schedule, $\alpha_1 = 0.9$ and $\alpha_2 = 0.8$.

First blob's variance: $\alpha_2(1-\alpha_1) = 0.8 \times 0.1 = 0.08$.

Second blob's variance: $1 - \alpha_2 = 1 - 0.8 = 0.2$.

Sum: $0.08 + 0.2 = 0.28$.

Check against the formula: $1 - \alpha_1\alpha_2 = 1 - (0.9 \times 0.8) = 1 - 0.72 = 0.28$. The two agree.

Put it back together. The two noise blobs become one blob, $\boldsymbol{\epsilon}$, scaled by $\sqrt{1 - \alpha_1\alpha_2}$:

$$\mathbf{x}_2 = \sqrt{\alpha_1\alpha_2}\,\mathbf{x}_0 + \sqrt{1-\alpha_1\alpha_2}\,\boldsymbol{\epsilon}$$

In words: rung 2 is the clean apple faded by the square root of the product of the two alphas, plus one single blob of standard noise scaled by the square root of whatever is left. Two rungs, one line, one noise draw. And the coefficients still square-sum to 1: $\alpha_1\alpha_2 + (1 - \alpha_1\alpha_2) = 1$, so the spread is still held at 1, exactly as it was for a single rung.

From two rungs to all of them

Nothing about that argument cared that we started at rung 0 and stopped at rung 2. Suppose we have already collapsed everything up to rung $t-1$, so that $\mathbf{x}_{t-1} = \sqrt{\bar{\alpha}_{t-1}}\,\mathbf{x}_0 + \sqrt{1-\bar{\alpha}_{t-1}}\,\boldsymbol{\epsilon}$ for some running product $\bar{\alpha}_{t-1}$. Apply one more rung and repeat the same two moves โ€” multiply out, then add the variances:

$$\alpha_t\left(1-\bar{\alpha}_{t-1}\right) + \left(1-\alpha_t\right) = \alpha_t - \alpha_t\bar{\alpha}_{t-1} + 1 - \alpha_t = 1 - \alpha_t\bar{\alpha}_{t-1}$$

In words: identical cancellation, one level up. The leftover noise variance is 1 minus the new running product, and the new running product is the old one times this rung's alpha.

So we name the running product. It is the number that has been sitting in the fourth column of our table all along:

$$\bar{\alpha}_t = \prod_{s=1}^{t}\alpha_s = \alpha_1 \times \alpha_2 \times \dots \times \alpha_t$$

In words: alpha-bar-t โ€” read "alpha bar t" โ€” is every alpha up to rung $t$ multiplied together. The capital-pi symbol means "multiply all of these", the way the stretched S means "add all of these". It is the attenuator chain, in one symbol.

And with that, the destination:

$$\mathbf{x}_t = \sqrt{\bar{\alpha}_t}\,\mathbf{x}_0 + \sqrt{1-\bar{\alpha}_t}\,\boldsymbol{\epsilon}, \qquad \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})$$

In words: any rung of the ladder is one clean apple, faded, plus one blob of noise, scaled. Not seven hundred blobs โ€” one. Pick a rung, look up two numbers, draw one blob, multiply, add, done. This is not an approximation or a convenient stand-in; given the recipe and the bell curve, it is exactly what chaining the rungs produces.

Let me be precise about one subtlety, since we are being careful. Running the chain by hand with particular draws and using the closed form with one draw do not give you the same picture pixel for pixel โ€” they give you pictures drawn from the same pile of possibilities. That is all anyone ever needs, and it is why the shortcut is a genuine replacement rather than a cheat.

Two rows. The top row, labeled 'the long way: 700 hops, each one waiting on the last', shows a muted box labeled x-zero, then a run of six small arrows and circles, then a long dashed line labeled 'the other 690-odd hops, not drawn', then two more circles and arrows, ending at a muted box labeled x-700; a caption underneath reads '700 fresh noise draws, 700 multiplications, in order'. The bottom row, labeled 'the short way: the closed form', shows a mint box labeled x-zero joined to a mint box labeled x-700 by one long thick mint arrow, with the equation x-700 equals root alpha-bar-700 times x-zero plus root one minus alpha-bar-700 times epsilon printed above it, and the caption 'the shortcut: one multiplication, one noise draw, no waiting' below.
The same journey, two ways. The top row is the definition; the bottom row is what we actually run. Every later chapter helps itself to the bottom row without a second thought.

Worked example: one pixel, all the way to rung 2

Take a single pixel of our apple with value $x_0 = 0.8$, aim for $t = 2$, and use the draw $\epsilon = 1.5$ โ€” the third amber tick on the bell curve above.

From the table, $\bar{\alpha}_2 = 0.72$, so $1 - \bar{\alpha}_2 = 0.28$.

The signal coefficient: $\sqrt{0.72} = 0.84853$ (five digits here, so the rounding does not bite).

The signal term: $0.84853 \times 0.8 = 0.678824$, which we write as $0.6788$.

The noise coefficient: $\sqrt{0.28} = 0.52915$.

The noise term: $0.52915 \times 1.5 = 0.793725$, which we write as $0.7937$.

Add them: $0.6788 + 0.7937 = 1.4725$.

So the pixel that started at $0.8$ now reads $x_2 = 1.4725$ โ€” and yes, that is above the 0-to-1 range a clean picture lives in. Noisy rungs are allowed out of range; only rung zero is a viewable picture, which is one more way of saying the ladder's upper rungs are not images any more. Look at what happened: the noise term is now larger than the signal term. Two rungs into a four-rung ladder, this pixel is already more noise than apple.

See it move

Watch (14:40): what to notice โ€” track the mint $\sqrt{\bar{\alpha}_t}$ coefficient as it slides from 1 down toward 0 while the amber $\sqrt{1-\bar{\alpha}_t}$ climbs to meet it. The moment they cross is the moment the apple stops being an apple.

Where you'll meet this

The noise schedule is not an abstraction hiding in a paper. It is a short list of numbers that travels with the model file. Open the configuration that ships beside a downloaded checkpoint and you will find fields with names like beta_start, beta_end, and a count of training timesteps โ€” typically 1000. Those three values are the amber line from our figure. Two models trained under different schedules are not interchangeable in the way you might expect, because the meaning of "rung 400" differs between them.

You will also meet $\bar{\alpha}_t$ wearing a disguise. In an image-to-image workflow, the control usually labeled denoise โ€” a number between 0 and 1 โ€” decides how far up this ladder your input picture is pushed before anything else happens. Set it low and your picture is carried to a rung where $\bar{\alpha}_t$ is still close to 1, so most of your composition survives. Set it to 1 and your picture goes to the very top, where $\bar{\alpha}_t$ is four hundred-thousandths, and nothing of what you supplied remains. People describe that slider as "how much the model changes my image". It is more exact than that: it is a choice of rung on the ladder we just built.

And there is the reason the closed form matters beyond elegance. Manufacturing a noisy apple at a random rung is something that has to happen enormous numbers of times, quickly, for the whole enterprise to be affordable. One multiplication and one noise draw is affordable. Seven hundred sequential ones would not be.

What you now know

  • Gaussian noise is a concrete thing: one number per pixel, drawn from the bell curve with mean 0 and spread 1, written $\boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})$.
  • One rung of the forward process shrinks the image by $\sqrt{\alpha_t}$ and adds noise scaled by $\sqrt{1-\alpha_t}$; because $\alpha_t + (1-\alpha_t) = 1$, the picture's spread is held at 1 forever, and the pixel values never run away.
  • The noise schedule $\beta_t$ is fixed in advance and runs small to large โ€” a typical one climbs from about $10^{-4}$ to about $0.02$ over $T = 1000$ rungs โ€” because a clean apple needs protecting and static does not.
  • When two noise steps combine, it is their variances that add: $\alpha_2(1-\alpha_1) + (1-\alpha_2) = 1 - \alpha_1\alpha_2$, which for our toy schedule is $0.08 + 0.2 = 0.28$. Adding the spreads instead would have given $0.5330$ โ€” nearly double, and wrong.
  • Chaining that collapse all the way up gives $\bar{\alpha}_t = \prod_{s=1}^{t}\alpha_s$ and the closed form $\mathbf{x}_t = \sqrt{\bar{\alpha}_t}\,\mathbf{x}_0 + \sqrt{1-\bar{\alpha}_t}\,\boldsymbol{\epsilon}$, which is exact, not approximate.
  • On the four-rung toy schedule $\beta = (0.1, 0.2, 0.3, 0.5)$, the surviving shares are $\bar{\alpha} = (0.9,\, 0.72,\, 0.504,\, 0.252)$, and a pixel of $0.8$ carried to rung 2 with the draw $\epsilon = 1.5$ lands at $0.6788 + 0.7937 = 1.4725$.

Where we're headed. You can now take any apple and put it on any rung of a thousand-rung ladder with one line of arithmetic, and you know exactly how much apple is left when you get there. What you cannot do is come down. Every move we have made is deliberately destructive: the shrink throws signal away and the noise draw is a fresh random number that nothing recorded, so there is no undo button hiding in these equations, and reading the closed form backwards would require knowing the very blob we threw in. The way down is called the reverse process, and it cannot be derived โ€” it has to be learned, by a network trained to look at a noisy apple and say what the noise was. That is Chapter 3: we can now reach any noise level instantly, but we still have no way back.