DDPM 的前向加噪可以写成 x_t = √ᾱ_t·x_0 + √(1−ᾱ_t)·ε,ε~N(0,I),而单步形式是 x_t = √(1−β_t)·x_{t−1} + √β_t·ε_t。请说明这个“一步得到任意 t 的 x_t”的闭式解是怎么来的(说清关键性质即可,不必写完整归纳证明),以及它为什么让训练可以对 t 一次随机采样,而不必从 t=1 逐步跑到 t。
面试官在考什么
是否理解 DDPM 前向过程是高斯线性叠加、因此有闭式解,并由此理解训练可以做成随机采 t 的单步监督。
回答框架 · 前两步
- 每一步都是对上一时刻做线性变换再叠加独立高斯噪声,高斯分布的线性组合仍是高斯,因此多步可以合并成一步。
- 均值和方差可以逐层累积:x_t 的均值是 √ᾱ_t·x_0,方差是 1−ᾱ_t,其中 ᾱ_t = ∏_{i=1}^{t}(1−β_i);独立噪声的方差可以直接相加。
还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。
延伸阅读
想看这个方向的整体准备路线? 进入「CV 与多模态」方向页
同一能力域的其他题
- 你负责训练一个 128×128 动漫头像 GAN(DCGAN 类结构,生成器用 ConvTranspose2d(k=4,s=2,p=1) 逐级上采样)。训练到约 2 万步时,D 的 loss 掉到 0.01 左右,G 的 loss 从 3 涨到 8,采样出的图开始出现明显的棋盘格纹理,且不同 z 采样出的头像越来越像。请说明:① 你判断这里同时存在哪几类失效,各自依据是什么;② 给出你的排查顺序,每一步具体做什么操作、预期看到什么现象;③ 棋盘格和多样性下降是不是同一个原因,怎么分别验证。
- 你接手一个 GAN 训练任务:判别器 loss 长期低于 0.02,生成器 loss 从 2.1 一路涨到 8.4。用当前 checkpoint 采 4096 张图,distinct-1 从 0.72 掉到 0.31,肉眼能看到约 60% 的样本是少数几个模式的近重复。配置是 batch=64、D:G 更新比 1:1、损失用 WGAN-GP 的梯度惩罚。请给出你的诊断顺序和前三步具体动作,并说明为什么'先降低生成器学习率'不是正确的第一步。
- 你们已有一条基于 GAN 的 256×256 商品图生成流水线,线上跑了一年:清晰度尚可,但生成多样性差、审核通过率低。现在业务要求支持 1024×1024,并让生成多样性明显改善。你手上只有 8 张 A100、4 周时间、2 名工程师。请给出你的技术决策:先动分辨率还是先动多样性?你会优先改生成器、判别器、损失函数还是数据管线?为什么?并说明你如何验证改动有效,以及灰度上线的验收标准。
- 标准 GAN 中生成器用 saturating loss:L_G = E_{z~p_z}[log(1 − D(G(z)))]。训练中你观察到判别器很快就能把真假样本分得很准(D(G(z)) 接近 0),同时 G 的 loss 居高不下、生成的样本几乎没有变化。请说明此时 G 的梯度为什么会接近 0(写出梯度里与 D(G(z)) 相关的因子),并给出两种具体改法。
- 你在 512×512 数据上训 DDPM,采用线性 beta 调度、T=1000,推理用 250 步采样。整体图看着还行,但毛发、文字这类高频区域发糊。同事说“把 T 加到 2000 就好了”。请回答:① DDPM 前向加噪的闭式表达是什么,ᾱ_t 与信噪比是什么关系;② 为什么单纯增大 T 不一定改善细节;③ 你会改哪两个超参或设计来提升细节,说明预期效果与代价。
- 你的线上服务是 512×512 文生图,当前 DDIM 50 步,单张 A100 约 1.8s。产品要求把延迟压到 300ms 以内(大约 8 步),并接受 FID 相对 50 步基线退化不超过 10%,同时要求不重新训练基座模型,只给你 8 张 A100 40GB、3 天的后处理预算。请给出你的方案选择和取舍:走更高阶的 solver(DPM-Solver++/UniPC 这类)还是蒸馏成少步学生模型,或者两者结合?并说明你用什么验收指标来判定'退化不超过 10%'。