# SDE 的形式
到这里,随机微积分的零件齐了,15 的 $\mathrm{d}w$、16 的 SDE 壳子 $\mathrm{d}x=f\,\mathrm{d}t+g\,\mathrm{d}w$、17 的伊藤。这一篇只做一件事,把你最熟的 DDPM 单步加噪,一步步变形,变成 SDE 那个壳子的样子。**变完你会看到,论文里那条吓人的前向 SDE,就是你早会的 DDPM 换了身衣服。**
> [!abstract] 先说清这篇在干嘛
> 你最熟的 DDPM 前向一步,是离散的(一步一步,$t-1$ 到 $t$):
> $x_t=\sqrt{1-\beta_t}\,x_{t-1}+\sqrt{\beta_t}\,\epsilon$
> 论文写的是连续的 SDE:
> $\mathrm{d}x=f\,\mathrm{d}t+g\,\mathrm{d}w$
> 这两个是同一件事,一个离散写法、一个连续写法。这篇就是把上面那条离散的,变形成下面这条连续的,顺便看清 $f$、$g$ 到底是什么。不学新东西,全靠前面会的。
> [!abstract] 一、把 DDPM 一步整理成「变了多少」
> 整篇要把离散的 DDPM 一步变成连续 SDE $\mathrm{d}x=f\,\mathrm{d}t+g\,\mathrm{d}w$。这一卡是第一步,把 DDPM 一步捋成「一步变了多少 = 确定一块 + 随机一块」,跟 SDE 壳子对齐;这一卡还是离散的,变成连续在下一卡。
>
> 从 DDPM 一步出发:
> $x_t=\sqrt{1-\beta_t}\,x_{t-1}+\sqrt{\beta_t}\,\epsilon$
> 目标是整理成「$x_t-x_{t-1}$ 等于多少」,好对上 SDE 壳子、认出 $f$。SDE 的确定块是「$f$ 乘 $\mathrm{d}t$」,这个 $\mathrm{d}t$ 对应离散这边的 $\beta_t$(下一卡会把 $\beta_t$ 写成 $\beta(t)\,\mathrm{d}t$),所以这里要让确定块长成「系数 × $\beta_t$」的样子,那个系数就是 $f$。
>
> 第一项 $\sqrt{1-\beta_t}\,x_{t-1}$ 里,$\beta_t$ 关在根号底下,凑不成「系数 × $\beta_t$」。要把 $\beta_t$ 从根号里解放出来,就得把 $\sqrt{1-\beta_t}$ 这个系数换成不带根号的样子。这一步用一阶近似(05),它只动这个系数、不碰 $x_{t-1}$ 和后半段噪声项,式子结构原样保住。
>
> 把 $\sqrt{1-\beta}$ 在 $\beta=0$ 套一阶近似公式(05):
> $f(\beta)\approx f(0)+f'(0)\,\beta$
> $f(0)$,$\beta=0$ 代进 $\sqrt{1-\beta}$:
> $f(0)=\sqrt{1-0}=1$
> $f'(\beta)$,$\sqrt{1-\beta}$ 对 $\beta$ 求导(开方求导见 01、链式见 02,内层 $1-\beta$ 求导得 $-1$):
> $f'(\beta)=-\frac{1}{2\sqrt{1-\beta}}$
> 代 $\beta=0$:
> $f'(0)=-\tfrac12$
> 填进公式,基点值 $1$、斜率 $-\tfrac12$:
> $\sqrt{1-\beta_t}\approx 1-\tfrac12\beta_t$
> 根号没了,$\beta_t$ 解放出来了。
>
> 这个约等号丢掉的是 $\beta^2$ 这个二阶项,它来自前半段拆根号(确定那块、没有噪声),$\beta\to0$ 时丢得干净,极限下约等号成精确等号。后半段含噪声的 $\sqrt{\beta_t}\,\epsilon$ 这一卡没碰、原样留着,伊藤里那个不能丢的二阶项是它将来的事,跟这里的丢不冲突。
>
> 代回 DDPM 一步:
> $x_t\approx\big(1-\tfrac12\beta_t\big)x_{t-1}+\sqrt{\beta_t}\,\epsilon$
> 括号乘开:
> $x_t\approx x_{t-1}-\tfrac12\beta_t\,x_{t-1}+\sqrt{\beta_t}\,\epsilon$
> $x_{t-1}$ 挪到左边,得「一步变了多少」,确定块成了「$-\tfrac12\beta_t$ 乘 $x_{t-1}$」,$\beta_t$ 单独成项,能对上 $f\,\mathrm{d}t$:
> $x_t-x_{t-1}\approx-\tfrac12\beta_t\,x_{t-1}+\sqrt{\beta_t}\,\epsilon$
> [!abstract] 二、把离散一步翻成连续一小步
> 现在把上面那条,一块一块翻成连续写法,对到 $\mathrm{d}x=f\,\mathrm{d}t+g\,\mathrm{d}w$。
>
> 左边 $x_t-x_{t-1}$,是一步的变化量,连续写法就是 $\mathrm{d}x$。
>
> 右边第一块 $-\tfrac12\beta_t\,x_{t-1}$。这里 $\beta_t$ 是「一步」的噪声量,连续化时它对应「每单位时间的噪声率 $\beta(t)$」乘「一小步时间 $\mathrm{d}t$」,即 $\beta_t\to\beta(t)\,\mathrm{d}t$。$x_{t-1}$ 就是当前的 $x$。所以这块变成:
> $-\tfrac12\beta(t)\,x\,\mathrm{d}t$
>
> 右边第二块 $\sqrt{\beta_t}\,\epsilon$,是这一步掺的随机噪声。一步攒的随机噪声,连续写法就是 $\mathrm{d}w$(15)。系数 $\sqrt{\beta_t}$ 里 $\beta_t\to\beta(t)\,\mathrm{d}t$,但 $\mathrm{d}w$ 已经自带 $\sqrt{\mathrm{d}t}$ 那一份(15),所以这块的系数是 $\sqrt{\beta(t)}$,配上 $\mathrm{d}w$:
> $\sqrt{\beta(t)}\,\mathrm{d}w$
>
> 三块拼回去:
> $\mathrm{d}x=-\tfrac12\beta(t)\,x\,\mathrm{d}t+\sqrt{\beta(t)}\,\mathrm{d}w$
> [!abstract] 三、对上 SDE 壳子,认出 $f$ 和 $g$
> 把刚得到的
> $\mathrm{d}x=-\tfrac12\beta(t)\,x\,\mathrm{d}t+\sqrt{\beta(t)}\,\mathrm{d}w$
> 跟 SDE 壳子
> $\mathrm{d}x=f\,\mathrm{d}t+g\,\mathrm{d}w$
> 上下一比,直接读出两个系数:
> $f=-\tfrac12\beta(t)\,x,\qquad g=\sqrt{\beta(t)}$
> $f$(确定挪那块的系数)是 $-\tfrac12\beta(t)\,x$,负号、跟当前 $x$ 成比例,意思是把信号往 $0$ 拉。
> $g$(随机抖那块的系数)是 $\sqrt{\beta(t)}$,按噪声率往里掺噪。
> **这条就是论文里的前向 SDE,叫 VP SDE(方差保持型)。它不是新东西,是你的 DDPM 一步变形、连续化来的。**
> [!abstract] 四、跟前面对上,闭环
> 这条 SDE 把前面几块收口了。
> 对它取均值,$\mathrm{d}w$ 中心是 $0$、随机那块平均下来没了,剩 $\dfrac{\mathrm{d}m}{\mathrm{d}t}=-\tfrac12\beta(t)\,m$,正是 13 那条均值 ODE,解出 $\sqrt{\bar\alpha}(t)\,x_0$。
> 对它算方差,会得到 14 那条 $1-\bar\alpha(t)$。
> **所以 SDE 是完整的源头,你之前用 ODE 推的均值、用积分因子推的方差,都是从这一条 SDE 取均值、取方差掉下来的两个侧面(16 讲过这个关系,这里坐实了)。**
> [!question]- 练习
> 一,VP SDE $\mathrm{d}x=-\tfrac12\beta(t)\,x\,\mathrm{d}t+\sqrt{\beta(t)}\,\mathrm{d}w$ 的 $f$、$g$ 各是什么。
> 二,对它取均值,随机那块为什么没了,剩哪条方程。
> 三,这条 SDE 是新规定的,还是从 DDPM 变形来的。
> [!note]- 练习答案
> 一,$f=-\tfrac12\beta(t)\,x$,$g=\sqrt{\beta(t)}$。
> 二,$\mathrm{d}w$ 中心 $0$,取均值后随机那块 $g\,\mathrm{d}w$ 平均成 $0$,剩 $\dfrac{\mathrm{d}m}{\mathrm{d}t}=-\tfrac12\beta(t)\,m$。
> 三,从 DDPM 一步变形、连续化来的,不是另外规定的。
> [!note]- 和主线(扩散)的关系
> 这条前向 VP SDE 是 Song 2021 的起点。论文在它之上做两件事,一,有一条反向 SDE,从纯噪声倒着走回数据,里面冒出 score $\nabla\log p_t(x)$,二,有一条概率流 ODE,是这条 SDE 去掉随机后的确定版,DDIM 那类确定采样就是它。这两条都建在这条前向 SDE 上。下一块(第五块)讲那个反向过程的主角,score。