Deep Learning for Computer Vision——Generative Models 2

第一篇:生成模型总览与GAN基础

1.1 生成模型的核心思想

最大似然估计(Maximum Likelihood)是所有生成模型的核心思想

  • 核心目标:最大化观测数据的似然。

  • 两种路径:

    • 显式密度(如VAE):能计算 p(x),优化下界(ELBO)。

    • 隐式密度(如GAN、扩散模型) :不计算 p(x)p(x) 的实际值,但可以从模型学习到的底层分布中采样(Sample)

  • 生成模型的核心难题:我们无法提前将先验分布 z 与数据 x 配对。所有生成模型都在寻找一种学习 z→x 关联的方法,即使我们在训练时不知道这种配对。

1.2 GAN的核心直觉

  • 设定 :真实数据 ​。我们无法知道宇宙真实的 ​,只能构建一个近似的分布

  • 引入潜变量 :从已知先验 p(z)(通常是标准正态分布 N(0,I)中采样 z。通过生成器 G(z) 将 z 映射到数据空间,生成假数据。生成器诱导的分布记为

  • 对抗博弈 :引入判别器 D(x),判断输入是真实数据还是生成数据。

    • G的目标 :生成逼真样本,欺骗 D。

    • D的目标区分真实与伪造。

  • 理想结果 完全逼近 ,D无法判别(输出概率0.5)。

第二篇:GAN训练细节与数学原理

2.1 极小极大博弈 (Minimax Game)

目标函数(Value Function)

  • D的视角(最大化V):对真实数据 D(x)→1,对假数据 D(G(z))→0。

  • G的视角(最小化V):希望 D(G(z))→1,即让判别器认为假数据是真的。

2.2 理论最优解与梯度消失问题

  • 最优判别器 (证明略):对于任何 ,最优

  • 全局最优 :当 ​ 时,

  • 💡 为什么不能直接使用该损失函数?

    • 在训练初期,G生成的图像极差,D能轻松区分真假。此时 D(G(z)) 接近 0。

    • 观察曲线:当 D(G(z))→0 时, 的梯度趋近于 0,G无法获得有效梯度进行更新。

  • ✅ 解决方案:修改G的损失函数

    • 不再最小化 log⁡(1−D(G(z))),而是最小化 −log⁡(D(G(z)))

    • 两者在数学上等价(符号相反),但修改后的函数在 D(G(z))→0 时梯度极大,保证了训练初期的梯度流。

2.3 交替训练 (Alternating Gradient Updates)

代码逻辑(PyTorch 风格):

python 复制代码
while True:
    # 1. 更新判别器D
    # 真实数据 D(x) 最大化 log D(x)
    # 假数据 D(G(z)) 最大化 log(1 - D(G(z)))
    # 在代码中通常是: loss_D = -torch.mean(torch.log(D(x)) + torch.log(1 - D(G(z))))
    D = D + alpha_D * dV / dD

    # 2. 更新生成器G
    # 最小化 -log(D(G(z)))
    G = G - alpha_G * dV / dG
  • 注意 :GAN没有总的整体损失曲线可供观察,训练过程不稳定,有时完全无法收敛。

第三篇:GAN架构与特性

3.1 经典架构

  • DC-GAN (Deep Convolutional GAN):第一个在非玩具数据集上成功应用的GAN。G和D均为CNN,使用转置卷积进行上采样,去除池化层,使用BatchNorm。

  • StyleGAN (2019) :更加复杂的架构,核心是AdaIN (Adaptive Instance Normalization)

    • 公式:

    • Mapping Network:将潜变量 z 转换为风格向量 w,注入到网络的各个层(调整粗细粒度的风格),提升生成质量。

3.2 隐空间插值 (Latent Space Interpolation)

  • GAN的潜空间是平滑的(Smooth)。

  • 给定两个潜向量 z0,z1​,通过线性插值 ​ 得到过渡向量,并输入生成器

  • 生成的图像(如狮子脸)会平滑过渡,这证明了GAN并非简单记忆数据,而是学到了连续的数据流形。

3.3 GAN总结与缺陷

  • 优点:公式简单,图像质量极高。

  • 缺点

    1. 没有损失曲线,无法判断何时停止训练。

    2. 训练极不稳定,容易遭遇模式崩溃或梯度爆炸。

    3. 难以扩展到大规模模型和数据集。

    4. 模式崩溃(Mode Collapse):G可能只生成少数逼真样本(比如只有10张图),只要这些样本能骗过D即可。

    5. 无法反向映射:无法从图像 x 反推潜变量 z(而VAE可以)。

第四篇:扩散模型基础与 Rectified Flow

4.1 扩散模型直觉 (Diffusion Intuition)

  • 不像GAN那样直接映射,而是通过逐步加噪-去噪的过程。

  • 前向过程 :从真实数据 x0 开始,逐步添加高斯噪声,直到 t=1 时变为纯噪声

  • 反向过程 :训练一个神经网络 去除一点噪声

  • 推理(生成) :从纯噪声 ​ 开始,反复应用去噪网络,一步步生成干净图像 x0​。

4.2 Rectified Flow(整流流,目前最主流的高效扩散形式)

  • 定义 :在数据分布 ​ 和噪声分布 ​ 之间建立直接的线性路径。

  • 训练过程

    1. 采样 ​, ​(高斯噪声),

    2. 构造含噪样本:。(当 t=0 是干净数据,t=1 是纯噪声)

    3. 目标速度:v=z−x(指向从数据到噪声的方向)。

    4. 网络预测速度:

    5. 损失函数:

  • 采样过程

    1. 从噪声分布采样 ​。

    2. 从 t=1 迭代到 t=0(通常50步): (沿着预测的 v 反方向移动)。

    3. 最终得到干净的 x0​。

4.3 条件 Rectified Flow (Conditional Rectified Flow)

  • 在训练时加入条件信息 y(如文本)。

  • 网络变为 ,目标是学习给定 y 的条件下,从噪声到图像的转换。

第五篇:条件生成与 Classifier-Free Guidance (CFG)

5.1 无分类器引导 (CFG)

核心问题 :如何控制模型生成内容与条件 yy 的贴合程度?

💡 训练阶段 :随机将条件 y 替换为 ∅(空条件 ,通常为一个可学习的嵌入),概率为 10% ~ 20%。这就让同一个模型既能生成有条件的,也能生成无条件的。

🚀 采样阶段

计算两个预测方向:

  • 无条件速度:

  • 有条件速度:

  • CFG 组合公式

  • 理解:w 是引导强度(通常取 7.5 左右)。增大 w 使得生成方向远离无条件分布,更加强烈地指向条件分布。虽然能提升图像质量,但代价是降低多样性。

  • 缺点:计算量增加一倍(每次采样需要推理两次)。

5.2 噪声调度 (Noise Schedules)

  • 在训练时,t∼Uniform0,1 意味着所有噪声等级权重相等。

  • 但在扩散中,中等的噪声(t=0.5t 附近)最难预测(高模糊度),而纯净的极值(t=0,1)很容易预测(就是各自的均值)。

  • 改进 :使用 Logit-Normal Sampling 采样 t,给中间难度(t 在 0.4~0.6 之间)更高的训练权重。

  • 高分辨率数据由于像素相关性更强,通常需要 偏向更高噪声 的调度。

第六篇:潜在扩散模型 (LDM) 与 DiT

6.1 LDM (Latent Diffusion Models)

由于直接在像素空间(如1024x1024x3)进行扩散成本极高,LDM 提出在潜空间进行扩散

  1. 第一阶段(训练Encoder/Decoder):使用 VAE 或 VQ-GAN 将图像压缩到潜空间(例如下采样 8 倍,通道从3增加到16),潜空间大小为 128x128x16。

  2. 第二阶段(训练扩散模型) :冻结 Encoder/Decoder,只训练扩散模型去噪潜变量(DiT、UNet等)。

  3. 推理阶段:从标准高斯分布采样潜变量 -> 扩散模型去噪 -> 解码器重建高清图像。

  • 现代 LDM 管线 :往往是 VAE + GAN + Diffusion 的结合体,兼顾了图像细节与生成质量。

6.2 Diffusion Transformer (DiT)

传统扩散模型用 U-Net。DiT 直接将 Transformer 作为扩散模型的骨架。

  • 条件注入机制

    1. In-context Conditioning(拼接):将时间戳 t 和标签 y 的嵌入直接拼接到输入序列中。

    2. Cross-Attention(交叉注意力):将文本嵌入作为K, V,图像特征作为Q,进行交叉注意力。

    3. AdaLN(自适应层归一化,最常用):预测缩放因子 γ 和偏移量 β,对 Transformer 的中间层进行调制:AdaLN(x)=γ(t,y)⊙LN(x)+β(t,y)。

6.3 文生图与文生视频 (Text-to-Image / Text-to-Video)

  • 文生图 (FLUX):文本提示(如"埃菲尔铁塔前穿西装的猴子") -> 文本编码器(CLIP/T5) -> 生成潜变量 -> DiT 迭代去噪 -> 解码器生成 1024x1024 图像。

  • 文生视频 (Meta MovieGen) :原理相同,但时空潜变量(如 32 x 128 x 72 x 16)复杂度暴增,需要处理时间和空间的双重维度(例如使用 1x2x2 patchify,将时空块视为token)。

  • 视频扩散时间线(2024-2025):从 OpenAI Sora、Runway Gen3、快手可灵、Google Veo 2/3 到阿里 Wan,模型参数量从 4.6亿激增至 300亿,且趋向开源。

第七篇:扩散理论进阶与广义框架

7.1 广义扩散 (Generalized Diffusion)

统一的数学框架:

  • 采样

  • 构建含噪样本: (a决定保留多少信号,b决定注入多少噪声)。

  • 设置预测目标:

  • 预测网络:

  • 损失函数:

三种主流预测目标及其参数设定

  1. x-prediction :预测干净图像。设定 ,即 c(t)=1,d(t)=0。

  2. ε-prediction :预测加入的噪声(传统DDPM)。设定 ,即 c(t)=0,d(t)=1。

  3. v-prediction :预测速度向量(Rectified Flow的基础)。设定 ,即 c(t)=b(t),d(t)=−a(t)。(v-pred 在训练中更稳定,尤其在高噪声条件下)。

VP (Variance Preserving) vs VE (Variance Exploding)

  • VP 扩散。信号和噪声的方差之和保持为1,不随t变化,保证了潜变量的方差为1。

  • VE 扩散:a(t)=1,b(t)=σ(t)。信号保持不变,加入的噪声方差持续膨胀。最终t=1时必须让σ(1)足够大,以淹没信号。

7.2 扩散模型是隐变量模型

扩散模型的前向过程 (加噪)和反向过程 (去噪)可以看作是 VAE 在时序上的层级扩展。

  • 前向过程是固定的(不学习参数)。

  • 反向过程是学习的。

  • 目标同样是优化变分下界(ELBO)。

  • 区别:扩散模型有 T 个隐变量(通常 T=1000),而 VAE 只有 1 个隐变量。

7.3 扩散模型学习分数函数 (Score Function)

  • 对于任意分布 p(x),其分数函数 定义为:

  • 物理直觉:想象 p(x) 是一座山峰,分数函数 s(x) 是一个向量场,永远指向概率密度增加最快的方向(即"爬山"方向)。

  • 扩散网络学习的就是预测这个分数函数。在采样时,我们沿着分数方向迭代"爬山",就能一步步从低概率区(噪声)走向高概率区(真实图像)。

  • 随机微分方程 (SDE) :扩散的加噪和去噪过程可以用 SDE 连续描述:

7.4 扩散蒸馏 (Diffusion Distillation)

  • 痛点:采样需要跑 30-50 步(每一步跑一次庞大的 DiT),推理非常慢。

  • 解决方案:知识蒸馏。

  • 原理:训练一个"学生模型",用 1 步或 2 步去拟合"教师模型"多步去噪的结果(比如"渐进蒸馏 Progressive Distillation")。蒸馏后的模型采样极快,代价是稍微牺牲一点生成质量。可以在蒸馏过程中"烘焙"进 CFG,节省计算量。

🎁 终极复习建议

  • GAN :理解极小极大博弈梯度消失 及改进损失(−log⁡D(G(z))、模式崩溃

  • 扩散 :理解Rectified Flow 训练,预测 v=z−x)和采样过程、CFG​)、LDM (在潜空间操作,效率高)、DiT(Transformer替代U-Net)。

  • 理论 :掌握 x-pred / ε-pred / v-pred 三者的参数切换关系;理解分数函数(指向数据高密度区的向量场)。

相关推荐
洞见新研社1 小时前
豆包手机发售,AI代理进入“终端”竞赛
人工智能·ai
Rabitebla1 小时前
【Linux系统编程】指令(三):创建、删除、复制、移动、看内容
linux·数据结构·c++·算法
成为深度学习高手1 小时前
XLinear:用一个轻量 MLP,带外生变量做长期时间序列预测
python·深度学习·时序数据库
QC777LX1 小时前
中文专业在AI行业的新岗位:从Prompt到人文训练
人工智能
知几蜗牛1 小时前
2.8万亿参数上云之后,Kimi K3的门槛变低了吗
人工智能
sarasuki1 小时前
工具设计的坏味道:什么样的定义会让模型乱调
人工智能·agent·设计
jingli91 小时前
微信自动回复怎么设置?重复问题怎么自动回答——私域FAQ自动应答搭建全流程(关键词匹配+知识库+语义AI,2026实操版)
人工智能·自动化·用户运营
Ai_easygo2 小时前
AI下半场_09_CSDN版_Agent安全攻防
人工智能
速易达网络2 小时前
宇树机器人和Microduck仿真区别
人工智能