来源:Ho、Jain、Abbeel,2020,arXiv 2006.11239,NeurIPS 2020。公式号与论文一致。符号约定与常用公式卡见本单元 00_导读。 这一节讲:反向每一步要对齐的「标准答案」$q(x_{t-1}\mid x_t,x_0)$,已知 $x_0$ 时从 $x_t$ 退一步的分布。贝叶斯拆成三个已知高斯,指数相加相减、配方法读出中心与方差(公式 6/7)。 --- ## §5 前向后验:每步的标准答案 **这一步**:§4 把网络的主战场定为逐步对齐 $q(x_{t-1} \mid x_t,x_0)$,这一节把这个「标准答案」本身算出来。它回答的问题是:已知原图 $x_0$、手里拿着 $x_t$,往回退一步该落在什么分布上。训练时 $x_0$ 就在手边、答案可算;采样时 $x_0$ 没有,网络的全部任务就是在不看 $x_0$ 的情况下逼近它。 **结论**:贝叶斯把它拆成三个已知高斯,相乘相除即指数相加相减,配方法合并成一个新高斯,读出方差 $\tilde\beta_t$ 与中心 $\tilde\mu_t$,即公式 6/7。 > [!abstract] 公式 6 / 7 · 前向后验 > $q(x_{t-1} \mid x_t,x_0) = \mathcal{N}(x_{t-1};\,\tilde\mu_t(x_t,x_0),\,\tilde\beta_t I)$ > $\tilde\mu_t(x_t,x_0) := \frac{\sqrt{\bar\alpha_{t-1}}\,\beta_t}{1-\bar\alpha_t}\,x_0 + \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})}{1-\bar\alpha_t}\,x_t,\qquad \tilde\beta_t := \frac{1-\bar\alpha_{t-1}}{1-\bar\alpha_t}\beta_t$ > 为具体高斯,因均值含 $x_0$;$x_0$ 训练时已知、采样时未知。 > [!note]- 推导一:贝叶斯拆成三个已知高斯 > **锚点**:§4 工具框的贝叶斯式、§1 公式 2 的 $q(x_t\mid x_{t-1})$、§2 公式 4 的 $q(x_{t-1}\mid x_0)$ 与 $q(x_t\mid x_0)$。 > > 对 $q(x_{t-1}\mid x_t,x_0)$ 用贝叶斯(旁观条件取 $x_0$),再用马尔可夫性把 $q(x_t\mid x_{t-1},x_0)$ 简成 $q(x_t\mid x_{t-1})$: > $q(x_{t-1}\mid x_t,x_0)=\frac{q(x_t\mid x_{t-1})\,q(x_{t-1}\mid x_0)}{q(x_t\mid x_0)}$ > 右边三个都是已知高斯(前两个查公式 2、公式 4,分母也查公式 4): > $q(x_t\mid x_{t-1})=\mathcal{N}(\sqrt{\alpha_t}\,x_{t-1},\,\beta_t I),\quad q(x_{t-1}\mid x_0)=\mathcal{N}(\sqrt{\bar\alpha_{t-1}}\,x_0,\,(1-\bar\alpha_{t-1})I)$ > $q(x_t\mid x_0)=\mathcal{N}(\sqrt{\bar\alpha_t}\,x_0,\,(1-\bar\alpha_t)I)$ > 视作关于 $x_{t-1}$ 的分布。分母 $q(x_t\mid x_0)$ 不含 $x_{t-1}$,对 $x_{t-1}$ 为常数,归入 $C$。 > [!note]- 推导二:相乘相除 → 指数相加相减 → 配方法读出中心和方差 > **锚点**:推导一的三高斯分式,及 00_导读「符号约定」里高斯的指数形 $\mathcal{N}(x;\mu,\sigma^2 I)\propto\exp(-\frac{1}{2\sigma^2}\|x-\mu\|^2)$。 > > **① 指数相加相减。** 每个高斯为 $e$ 的指数项,故分子两高斯相乘 = 指数相加、除以分母 = 指数相减。三个指数两加一减合为一个新指数,仍为「$x_{t-1}$ 减中心再平方」形式。分母指数只含 $x_t,x_0$、不含 $x_{t-1}$,归入 $C$。取一维(各维独立、处理相同),分子两块指数相加: > $-\frac{1}{2}\Big[\frac{(x_t-\sqrt{\alpha_t}\,x_{t-1})^2}{\beta_t}+\frac{(x_{t-1}-\sqrt{\bar\alpha_{t-1}}\,x_0)^2}{1-\bar\alpha_{t-1}}\Big]+C$ > > **② 平方乘开、按 $x_{t-1}$ 收幂。** 展开两个平方: > $(x_t-\sqrt{\alpha_t}x_{t-1})^2=\alpha_t x_{t-1}^2-2\sqrt{\alpha_t}\,x_t\,x_{t-1}+x_t^2$ > $(x_{t-1}-\sqrt{\bar\alpha_{t-1}}x_0)^2=x_{t-1}^2-2\sqrt{\bar\alpha_{t-1}}\,x_0\,x_{t-1}+\bar\alpha_{t-1}x_0^2$ > 除以各自分母后,按 $x_{t-1}$ 幂次分三组: > - $x_{t-1}^2$ 项系数:$\displaystyle A=\frac{\alpha_t}{\beta_t}+\frac{1}{1-\bar\alpha_{t-1}}$ > - $x_{t-1}$ 项:写成 $-2B\,x_{t-1}$,提出 $-2$ 后 $\displaystyle B=\frac{\sqrt{\alpha_t}}{\beta_t}x_t+\frac{\sqrt{\bar\alpha_{t-1}}}{1-\bar\alpha_{t-1}}x_0$ > - 常数项($x_t^2,\ x_0^2$):归入 $C$ > > 指数整理为(提出 $-\frac12$): > $-\frac{1}{2}\big[A\,x_{t-1}^2-2B\,x_{t-1}\big]+C$ > > **③ 配方法。** 目标整理为标准高斯指数 $-\frac{1}{2\tilde\beta_t}(x_{t-1}-\tilde\mu_t)^2$。用配方恒等式(来历见下面支线): > $A\,y^2-2B\,y=A\Big(y-\frac{B}{A}\Big)^2-\frac{B^2}{A}\qquad(\text{令 }y=x_{t-1})$ > 代回,$-\frac{B^2}{A}$ 不含 $x_{t-1}$、归入 $C$: > $-\frac{1}{2}A\Big(x_{t-1}-\frac{B}{A}\Big)^2+C$ > > **④ 对号入座读参数。** 与标准形 $-\frac{1}{2\tilde\beta_t}(x_{t-1}-\tilde\mu_t)^2$ 逐位比对: > - 中心对中心:$\displaystyle \tilde\mu_t=\frac{B}{A}$ > - 系数对系数:$\displaystyle \frac{1}{2\tilde\beta_t}=\frac{A}{2}\ \Rightarrow\ \tilde\beta_t=\frac{1}{A}$($A$ 非方差;方差为其倒数,不平方) > [!note]- 支线:配方恒等式 $A y^2-2By=A(y-\tfrac{B}{A})^2-\tfrac{B^2}{A}$ 的来历 > 第③步那行恒等式的来历,不影响主推导。 > > 先看 $A=1$:$y^2-2By=(y-B)^2-B^2$。由 $(y-B)^2=y^2-2By+B^2$ 移项得。配方时一次项系数取一半($2B$ 取一半得 $B$),以抵消平方展开产生的 $-2By$。 > > **几何解释**:$y^2$ 为边长 $y$ 的正方形,$-2By$ 切去两条宽 $B$、长 $y$ 的条;两条在角上 $B\times B$ 处重叠、被切两次,故多减一个 $B^2$。其余部分恰为 $(y-B)^2$,因此 $y^2-2By=(y-B)^2-B^2$,移项即补回 $+B^2$。无一次项的 $y^2-C$ 不需配方(无重叠、中心不变)。 > > 含系数 $A$ 时先提出 $A$:$A(y^2-\tfrac{2B}{A}y)$,对括号配方 $y^2-\tfrac{2B}{A}y=(y-\tfrac{B}{A})^2-(\tfrac{B}{A})^2$,乘回 $A$ 得 $A(y-\tfrac{B}{A})^2-\tfrac{B^2}{A}$。 > [!note]- 推导三:化简 $A$,算出 $\tilde\beta_t$ 与 $\tilde\mu_t$ > **锚点**:推导二读出的 $\tilde\beta_t=\frac{1}{A}$、$\tilde\mu_t=\frac{B}{A}$,及那里的 $A,B$。 > > **算 $\tilde\beta_t$。** 把 $A$ 通分: > $A=\frac{\alpha_t}{\beta_t}+\frac{1}{1-\bar\alpha_{t-1}}=\frac{\alpha_t(1-\bar\alpha_{t-1})+\beta_t}{\beta_t(1-\bar\alpha_{t-1})}$ > 分子化简(用 $\alpha_t+\beta_t=1$、$\bar\alpha_t=\alpha_t\bar\alpha_{t-1}$): > $\alpha_t(1-\bar\alpha_{t-1})+\beta_t=\alpha_t-\alpha_t\bar\alpha_{t-1}+\beta_t=(\alpha_t+\beta_t)-\alpha_t\bar\alpha_{t-1}=1-\bar\alpha_t$ > 取倒数: > $\tilde\beta_t=\frac{1}{A}=\frac{\beta_t(1-\bar\alpha_{t-1})}{1-\bar\alpha_t}=\frac{1-\bar\alpha_{t-1}}{1-\bar\alpha_t}\beta_t$ > > **算 $\tilde\mu_t$。** $\tilde\mu_t=\frac{B}{A}=B\cdot\tilde\beta_t$,逐项乘开($\tilde\beta_t=\frac{\beta_t(1-\bar\alpha_{t-1})}{1-\bar\alpha_t}$): > $\tilde\mu_t=\Big(\frac{\sqrt{\alpha_t}}{\beta_t}x_t+\frac{\sqrt{\bar\alpha_{t-1}}}{1-\bar\alpha_{t-1}}x_0\Big)\cdot\frac{\beta_t(1-\bar\alpha_{t-1})}{1-\bar\alpha_t}$ > 第一项 $\beta_t$ 上下约去:$\frac{\sqrt{\alpha_t}}{\beta_t}x_t\cdot\frac{\beta_t(1-\bar\alpha_{t-1})}{1-\bar\alpha_t}=\frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})}{1-\bar\alpha_t}x_t$。 > 第二项 $(1-\bar\alpha_{t-1})$ 上下约去:$\frac{\sqrt{\bar\alpha_{t-1}}}{1-\bar\alpha_{t-1}}x_0\cdot\frac{\beta_t(1-\bar\alpha_{t-1})}{1-\bar\alpha_t}=\frac{\sqrt{\bar\alpha_{t-1}}\,\beta_t}{1-\bar\alpha_t}x_0$。合并: > $\tilde\mu_t=\frac{\sqrt{\bar\alpha_{t-1}}\,\beta_t}{1-\bar\alpha_t}x_0+\frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})}{1-\bar\alpha_t}x_t$ > 代回高斯即公式 6。 --- ## 本节一条线 对 $q(x_{t-1}\mid x_t,x_0)$ 用贝叶斯拆成三个已知高斯(公式 2、公式 4 两处),相乘相除即指数相加相减,按 $x_{t-1}$ 收幂、配方法,对号读出 $\tilde\mu_t=B/A$、$\tilde\beta_t=1/A$(公式 6/7)。它训练时可算($x_0$ 已知)、采样时不可算($x_0$ 未知),这正是后面网络要顶替的位置。