怎样把局部答案接成一次生成?
上一页说明,一次局部预测不等于一张最终图片。完整生成还需要一个循环:当前状态与时刻进入预测器,预测器给出更新所需的信息,采样规则据此计算下一状态,再把新状态送回同一个预测器。参数通常不在这次生成中继续训练;改变的是输入状态和时刻。
以噪声预测为例,网络输出“这里有多少像扰动的成分”之后,仍需要结合当前状态、噪声日程和目标时刻,才能算出下一张状态图。若改为预测干净图或速度,也需要相应转换与更新。把网络输出直接保存成图片,可能只是保存了一张预测噪声图,而没有执行采样。
更新规则还决定跨多远以及是否加入新扰动。随机过程可以在初始噪声之外,继续注入逐步随机项;确定性过程则可在给定起点后沿固定规则推进。二者都可能反复调用相同参数的网络。“没有每步新噪声”不等于没有随机生成,因为不同的起始样本仍可产生不同结果。不过,直接从某个DDPM更新公式删掉随机项,已经改变了过程;它不会自动成为具有同样阶段分布的确定性路线。
学生问:“第一步已经知道往哪改,后面把这个方向一直用下去不就行了?” 不够。预测是针对当时那个状态作出的;更新以后,有些轮廓更清楚,另一些歧义可能被消除,适合下一步的方向也会变化。像走一条弯路,只在出发时问一次方向并不能保证后面都沿对的方向走。
在另一些表述中,预测对象与 score 联系起来。这里 score 是当前噪声等级下,对数概率密度随状态变化的局部方向;它不是给整张图片打的“审美分数”,更不是这张图为真的概率。把这个局部量接入随机或确定的动态规则,才成为生成路径的一部分。
训练通常随机抽取各阶段的问题,让网络练习局部能力;采样则必须把这些能力串成完整过程。所以训练某道题的误差较小,并未直接测出一整条生成路径的质量。下一页从这个回路数成本:有几张状态图、走了几步、调用了几次网络,是不是同一个数?
画面怎样推进
第1步
当前状态的预测与计算下一状态的更新规则是两项职责。
打开这一停点第2步
更新后的状态与时刻送回同一个参数固定的预测器,再作下一次判断。
打开这一停点第3步
是否继续加入随机扰动属于采样规则;起始随机性与逐步随机项需要分开。
打开这一停点学习材料
与当前画面直接相关
网络预测完噪声,下一状态由谁计算?
沿用xₜ=1.3、信号振幅0.8、噪声振幅0.6与预测ε̂=−0.3,先算得干净估计x̂₀=1.85。若下一阶段信号振幅为0.9、噪声振幅为√0.19,确定性DDIM形式给出xₛ=0.9×1.85+√0.19×(−0.3)≈1.5342。这是状态更新,不是把噪声预测本身当作图像。
下一次再用1.5342与新时间调用相同网络;通常模型权重不变,变化的是样本状态。采样器还规定时间点和是否注入新随机项。直接从随机更新中删掉噪声,会改变算法,不能自动得到保持相同分布的确定性路线。
接着读:采样器与预测器的责任及LAB09使用的确定性更新。
连续阅读
CLS 05 · 扩散:训练、采样与少步生成
按连续正文理解这条方法的训练信号、使用过程与算例;数学与实践在相关问题旁展开。
先看:第5章,从对象和问题开始
阅读与实践
LAB 09 · 学得去噪器与完整采样
固定初始噪声,仅改采样步数;把网络近似误差与数值步进误差分开。
先看:先看保存结果与读图解释
在 Deepnote 阅读与运行LAB 05 · 扩散的条件均值与流积分
先读本册保存结果,再按实现顺序核对一个算例;最后只改一个变量。
先看:先看保存结果与读图解释
在 Deepnote 阅读与运行相关材料
LAB 05|条件均值、噪声预测与流积分
观察每次更新后为什么要重新计算速度,检查模型预测量和积分方向各自的职责。
先看:第3节“Flow:回归的目标与采样的方向”
来源与进一步阅读
Diffusion Models
对照训练与采样算法,标出参数更新与状态更新发生在不同阶段。
先看:第59–65页
