Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第 4 讲总结 · 深度生成建模

本页把导览与 4.1–4.8 压成一张可复习的骨架。用法:先只看「核心问题」列自问,答不全再读「关键结论」列,最后用「典型陷阱」列校核。

节一览

节核心问题关键结论典型陷阱
4.1 生成建模要做什么生成模型的定义、分类学与评价困境是什么?生成 = 密度(或相对分数)+ 采样(定义 4.1.1);谱系分三支——显式似然守住刻度、隐式守住比较、得分—能量守住方向(定义 4.1.2);采样与似然是两项独立能力(命题 4.1.1);连续密度上对数似然可无界(例 4.1.1);FID 口径依赖样本量、特征提取器与预处理,跨设置不可比把「似然高」当成「样本好」——两者在多模态数据上系统性错位,且「密度值高」本身不构成证据(密度可积但不必有界)
4.2 自编码器:压缩,不是生成能重建,为什么不能当生成模型?线性 AE 的最优子空间与 PCA 一致(命题 4.2.1)但解不唯一,潜空间坐标系没被目标函数钉住;瓶颈约束保证信息必然有损(定理 4.2.1);先验采样的点落在训练从未覆盖的区域(命题 4.2.2);去噪任务在对数密度的梯度方向上工作(方法 4.2.1)拿「重建 MSE 很低」当生成能力强弱的证据;把去噪 AE 当成 VAE(随机性加在数据侧还是潜码侧是不同的两件事)
4.3 变分自编码器怎样让潜空间「可采样」?三件套缺一不可:先验 p(z)=N(0,I)p(z)=\mathcal N(0,I) 定采样起点、ELBO 定目标、重参数化让采样可导(定义 4.3.1);下界缺口恰为 KL(qϕ∥pθ(z∣x))\mathrm{KL}(q_\phi|p_\theta(z\mid\boldsymbol x))(定理 4.3.1);重参数化把随机性搬出求导路径(方法 4.3.1、命题 4.3.1);KL 有逐维闭式(命题 4.3.2);KL 逼近 0 即后验坍塌生成时用后验而不是先验取 zz(那是在做重建);把重建损失直接写 MSE 而不问解码器分布;以为「重参数化让采样变确定」
4.4 生成对抗网络无似然的生成靠什么信号?最优判别器 D⋆=pdata/(pdata+pg)D^\star=p_{\text{data}}/(p_{\text{data}}+p_g) 把博弈化成最小化 2 JSD−log⁡42,\mathrm{JSD}-\log4(定理 4.4.1);支撑不重叠时 JS 恒为 log⁡2\log2、对 GG 的梯度严格为零(命题 4.4.1、例 4.4.1);WGAN 改用 W1W_1(定理 4.4.2),Lipschitz 约束的三种实现各有代价以为 GAN 训不好都是代码 bug;把模式坍塌当调参问题;把「非饱和损失」与「换距离」混为一谈
4.5 扩散模型怎样用「回归」替代「博弈」,换来稳定与质量?前向闭式 xt=αˉtx0+1−αˉtεx_t=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\varepsilon(定理 4.5.1)让训练成本与 TT 无关;真实后验也可闭式求逆(命题 4.5.1);把 VLB 的权重置 1 得到简化损失 Lsimple\mathcal L_{\text{simple}},代价是它不再是似然下界(定理 4.5.2);DDIM 用非马尔可夫桥梁把「步」重新参数化,故能跳步(方法 4.5.2);CFG 用「条件 − 无条件」的差外推训练与采样的噪声调度 / 归一化范围不一致(症状最剧烈);把 Lsimple\mathcal L_{\text{simple}} 当似然下界去报 bits/dim;把引导尺度当常数而不是超参
4.6 潜空间扩散与整流流像素空间扩散贵在哪里?直线搬运为什么更省步数?LDM 两阶段:感知压缩 + 潜空间扩散(定义 4.6.1),注意力算力比约 3f4/c3f^4/c——f=8,c=4f=8,c=4 时是 3072 倍(命题 4.6.1);DiT 用 Transformer + adaLN-Zero 替换 U-Net(定义 4.6.2);一致性模型学「任意时刻 → 原图」的一步映射(定义 4.6.3);整流流回归与 tt 无关的速度场并用重流化拉直轨迹(定义 4.6.4);对抗蒸馏让 GAN 以「质量裁判」身份回归以为「少步」等于「一步」;忽略编码器重建误差是整条管线的上限;在双模数据上过度重流化——路径合并会抹掉多样性(例 4.6.2)
4.7 离散与自回归生成连续潜空间之外,离散 token 路线怎么工作?VQ-VAE 的三项损失各更新一方:重建(经 STE 到编码器)、代码本损失(只更新码字)、commitment(只更新编码器);量化是分段常数,故必须用直通估计量(定义 4.7.2);纯重建损失的最优解是条件均值,因此离散编码器天生偏糊(命题 4.7.1);FSQ 用逐维网格绕开代码本学习;VAR 把光栅扫描换成 next-scale prediction;掩码去噪提供并行解码与双向上下文把代码本利用率低当成「容量不够」;以为 FSQ 只是 VQ 的实现优化;以为自回归只能光栅扫描;把 VQ-VAE 本身当生成模型
4.8 应用谱系与取舍面对真实任务,怎么选、怎么改、怎么标?六种模态的主干可落成一张约束表(方法 4.8.1);四种条件注入分别作用于空间结构层、权重风格层与采样过程层(定义 4.8.1),共同前提是新增分支从恒等(零初始化)开始;溯源分三层且每层保证强度不同(定义 4.8.2);五维决策表把「约束 → 方法 → 失败判据」写在一起(方法 4.8.2)拿单一 FID 数字做全量对比;以为「没有水印就等于真实」;小数据下全参数微调;忽略数据授权与溯源要求

一条主线:因为生成建模要的是分布本身而不是一个决策面(4.1),所以「能重建」这种只覆盖数据点上像的能力立刻暴露缺口(4.2);补缺口的第一种办法是给潜空间指定先验并强迫后验贴近它,于是需要 ELBO、重参数化与 KL 闭式三件套(4.3);第二种办法干脆不写似然、用博弈换锐利,代价是支撑不重叠时 JS 散度是常数、梯度为零(4.4);第三种办法把「一次生成」拆成多步去一点噪声,用已知的加噪当监督、用闭式解让成本与步数解耦(4.5);扩散唯一的短板是采样步数,而 4.6 用更小的空间、更强的骨干、更直的路去还这笔账,代价把上限交给了感知压缩编码器;4.7 换掉坐标系本身,用离散 token 把生成变成分类,于是天生能表达多模态;最后 4.8 把七个零件装回真实系统——选型、改造、溯源,每一环都必须先写清约束再谈方法。

三句话带走

  1. 生成 = 密度(或相对分数)+ 采样,而这两件事并不互相蕴含。 显式似然守住刻度、隐式守住比较、得分—能量守住方向;扩散是三者杂交。由此推出本讲最实用的两条判断:采样与似然要分别度量(命题 4.1.1),连续密度上的对数似然可以无界所以「似然高」证明不了「样本好」(例 4.1.1)。
  2. 四类骨架各有一招,而每一招都押在一个代价上。 AE 只有重建没有分布;VAE 用 ELBO == 重建 −- KL 把潜空间变成可采样的连续空间(靠重参数化才使采样可导),代价是偏糊与后验坍塌风险;GAN 用对抗博弈换锐利,代价是脆弱与模式坍塌;扩散把生成拆成多步去噪回归,稳、质量高、可控,代价是采样慢。没有一根轴可以同时最优——这正是 4.8 决策表存在的前提。
  3. 选型看四个轴,第 4.7 节再补上第五条。 似然(VAE / 扩散 / 流有,GAN 没有)· 质量与多样性(GAN / 扩散锐利,VAE 偏糊)· 稳定性(VAE / 扩散 / 流稳,GAN 脆)· 采样代价(VAE / GAN 一次前向,扩散 TT 步,离散 AR 串行);补的第五条是——离散表示把生成变成分类,因此天生能表达多模态;连续回归天生产生平均化(4.7)。

值得记住的六个定量结论

结论数值 / 形式出处
对角高斯先验的 KL 闭式12∑j(μj2+σj2−1−log⁡σj2)\frac12\sum_j(\mu_j^2+\sigma_j^2-1-\log\sigma_j^2),在 σj2=1,μj=0\sigma_j^2=1,\mu_j=0 处为 0命题 4.3.2、例 4.3.1
支撑不重叠时的 JS 散度JSD=log⁡2\mathrm{JSD}=\log2 为常数 → 对 GG 的梯度严格为零定理 4.4.1、例 4.4.1
前向加噪信噪比xt=αˉtx0+1−αˉtεx_t=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\varepsilon,两权重平方和为 1定理 4.5.1、例 4.5.1
潜空间压缩的注意力收益像素侧 / 潜空间侧 ≈3f4/c\approx 3f^4/c:f=8,c=4f=8,c=4 时 3072 倍命题 4.6.1
离散 token 的比特率Nlog⁡2K=256×9=2304N\log_2K=256\times9=2304 bit =288=288 字节/图(K=512K=512、16×1616\times16 潜码)例 4.7.1
FSQ 的显式代码本大小K=∏iLi=58=390,625K=\prod_iL_i=5^8=390{,}625(d=8d=8、每维 5 档),无需代码本损失与最近邻搜索定义 4.7.3

症状 → 环节 → 去处

症状出错环节回去读
潜空间采样出来是糊团 / 无意义图潜空间无先验(做了 AE 不是 VAE)4.2.3、命题 4.2.2
训练日志里 KL 稳定在接近 0后验坍塌(解码器忽略潜码)4.3.6、方法 4.3.2
生成批内样本几乎一样,DD 损失稳在 0.69 附近模式坍塌(博弈结构问题)4.4.3、方法 4.4.3
扩散采样输出全灰噪声训练与采样的调度 / 归一化范围不一致4.5 陷阱框第 2 条、方法 4.5.1
引导尺度调大后构图僵化、颜色过饱和条件方向连同其误差一起被放大4.5.5、定义 4.5.3
少步(4 步以内)细节系统性崩坏蒸馏上限 / 路径曲率 / x^0\hat x_0 单次估计误差4.6.3、方法 4.6.4
代码本利用率长期低于 10%编码器尺度和码字更新速度失配4.7.2、4.7.4
控制图换了、输出却不变条件被忽略(控制分支强度为零或被绕过)例 4.8.1 验收 3、定义 4.8.1
FID 数字比论文好但观感更差指标口径不一致 / 未做近邻去记忆检查4.1.4、方法 4.1.2

与后续的连接

  • 第 5 讲 · 深度强化学习:本讲的生成模型在那一讲以策略的身份再次出现。动作分布天然是多模态的(同一状态下有几种合理做法),而回归式的策略会把它们平均成一个错误的中间动作——因此扩散策略 / 流匹配策略成为表达多模态动作的自然选择(4.8 的决策表里有一行专门讲这个场景)。注意两者是互补组件而非替代关系:条件生成解决「如何表达动作分布」,而「如何改进策略」仍由 RL 或模仿学习的目标负责。
  • 第 6 讲 · 从大模型到智能体:本讲 4.1.4 的成对比较(Elo / Bradley–Terry)与那一讲的大模型 Arena 式评测是同一套方法论;4.7.6 的掩码去噪 / 离散扩散,则是同一套机制在文本上的应用对照。
  • 第 9 讲 · 大规模并行训练:本讲 4.8.2 的图像 LoRA(W=W0+BAW=W_0+BA、BB 零初始化)与那一讲的 LoRA / QLoRA 共用同一个低秩增量思想,只是作用对象从注意力权重换成扩散主干的部分权重。
  • 公式与推导的收口:附录 C · 推导汇编 给矩阵形式与常见散度的统一记法;考前查公式用 公式与结论卡;把本讲与前面几讲的成对概念(似然 vs 判别、回归 vs 分类、连续 vs 离散表示)混起来时用 易混对照卡。
  • 动手:Lab 1 · 深度学习入门与音乐生成 第二部分的字符级 RNN 续写是自回归生成的入门版,对应 4.7 的「逐 token 生成」;把它的采样温度旋钮与 4.5.5 的引导尺度对照着看,会发现两者都在调「贴合训练分布 vs 保持多样性」的权重(这是本教程的类比,不是术语等价)。Lab 3 · 微调一个大语言模型 处理离散 token 上的生成,与本讲的离散路线同源。
  • 期末项目:项目与选题 里生成方向的可选题目包括——在小型数据集上复现 VAE 与 DDIM 并对比 FID、把扩散策略用到自己的控制任务、给一个生成模型加可控条件。选题时先写清「质量 / 速度 / 多样性 / 可控性 / 训练成本」五个指标,再按 4.8.4 的决策表逐行自查。
  • 自检路径:习题集(A/B/C/D 四组)→ 闭卷回忆卡(当天 / 隔天 / 第 3 天 / 第 7 天)→ 综合自测卷(闭卷计时,100 分制);学习目标自检表 用来逐条对账 K4.x / S4.x / A4.x。