# 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。