神经网络与深度学习:神经网络基础(第9讲)
神经网络与深度学习:深度生成模型(第 9 讲)
本讲核心内容
深度生成模型旨在学习数据的概率分布 ,从而能够生成新的样本。本讲涵盖三大主流框架:
-
自回归模型(Autoregressive Models):显式建模可分解密度
-
变分自编码器(VAE):通过变分推断近似隐变量后验
-
生成对抗网络(GAN):通过对抗训练隐式学习分布
一、生成模型概述
1.1 判别模型 vs 生成模型
判别模型(Discriminative)
-
建模条件概率
-
直接学习决策边界
-
目标:对输入进行分类或回归
-
代表:Logistic Regression, SVM, CNN 分类器
生成模型(Generative)
-
建模联合概率 或
-
学习数据的完整分布
-
目标:能够生成新的逼真样本
-
代表:VAE, GAN, Flow Models
1.2 生成模型分类体系
| 类别 | 方法 | 核心思想 | 代表模型 | | ------------ | ---------- | ------------------------------- | ------------------- | --------------------------- | | 显式-可解析 | 自回归分解 | | PixelRNN, PixelCNN, WaveNet | | 显式-近似 | 变分推断 | 引入隐变量,最大化证据下界 ELBO | VAE, NVIL | | 隐式密度 | 对抗训练 | 生成器与判别器博弈 | GAN, WGAN, DCGAN |
二、变分自编码器(VAE)
2.1 自编码器回顾
传统自编码器(Autoencoder)通过编码器将输入压缩为低维表示 ,再通过解码器重建 。训练目标是最小化重建误差:
传统自编码器的问题
-
隐空间缺乏结构:不同样本的编码可能不连续、不规整
-
无法从隐空间随机采样生成有意义的新样本
-
没有概率解释,不是真正的生成模型
2.2 VAE 的核心思想
VAE 的关键创新:不再将输入编码为确定性的点,而是编码为一个概率分布。编码器输出隐变量的均值 和方差 ,从该分布中采样得到 。
2.3 数学框架
2.3.1 生成模型假设
假设数据由如下过程生成:
-
从先验分布采样隐变量:
-
由隐变量生成观测数据:
数据的边际似然为:
关键困难:该积分在高维空间中不可解析计算(intractable),因为需要对所有可能的 求积分。同样,真实后验 也不可解。
2.3.2 变分推断
引入一个可学习的近似后验分布 (由编码器参数化),来近似真实后验 。
对数据对数似然进行分解:
由于 KL 散度非负,我们得到证据下界(ELBO):
ELBO(Evidence Lower BOund)
-
重建项:鼓励解码器从 z 准确重建 x
-
KL 散度项:迫使近似后验接近先验 ,保证隐空间的规整性
2.3.3 KL 散度解析解
当 且 时,KL 散度有解析解:
其中 是隐变量维度。
2.4 重参数化技巧(Reparameterization Trick)
问题:训练中需要对 ELBO 求梯度,但采样操作 是随机的,梯度无法通过随机采样节点反向传播。
解决方案:将随机性从计算图中分离出来:
不可微路径
梯度被随机采样阻断
重参数化路径
梯度可通过 和 正常流动
2.5 VAE 训练目标
最终的训练损失为负 ELBO:
实际训练中使用蒙特卡洛估计重建项(通常单次采样即可):
| 组件 | 具体形式 | 作用 | | ------------------- | ------------------- | -------------------------------- | ---------------- | | 编码器 | 输出 | 近似后验推断 | | 解码器 | Bernoulli(二值图像)或 Gaussian | 由隐变量重建数据 | | 先验 | | 正则化隐空间 | | 重建损失 | 交叉熵或 MSE | 保证重建质量 | | KL 损失 | 解析公式 | 保证隐空间连续可采样 |
三、生成对抗网络(GAN)
3.1 基本思想
GAN 的核心思想来源于博弈论:训练两个相互对抗的网络。
生成器 G(Generator)
-
输入:随机噪声 (通常为高斯或均匀分布)
-
输出:伪造样本
-
目标:生成尽可能逼真的样本,欺骗判别器
判别器 D(Discriminator)
-
输入:真实样本 x 或生成样本 G(z)
-
输出:样本为真实的概率
-
目标:准确区分真实样本和伪造样本
3.2 目标函数(Minimax Game)
GAN 目标函数
-
判别器 D 试图最大化:正确分类真假样本
-
生成器 G 试图最小化:让 尽可能大
3.3 最优判别器
固定 G,对 关于 D 求最优解:
推导:对于任意 x, 关于 的被积函数为 ,对 D 求导令其为零:
3.4 全局最优与 JS 散度
将 代入 :
关键结论:在最优判别器下,最小化生成器的目标等价于最小化 与 之间的 Jensen-Shannon 散度。当且仅当 时, 达到全局最小值 。
3.5 训练算法
GAN 的训练采用交替优化:
-
从真实数据采样 mini-batch
-
从噪声分布采样
-
更新判别器(梯度上升):
-
重新采样噪声
-
更新生成器(梯度下降):
实践技巧:在训练初期, 很弱,,此时 的梯度饱和(接近于 0)。实践中**最大化 ** 代替最小化 ,能提供更强的梯度信号。
3.6 GAN 的主要问题
| 问题 | 描述 | 表现 |
|---|---|---|
| 模式崩塌 Mode Collapse | 生成器只学会生成少数几种样本,忽略数据分布的多样性 | 生成的图像缺乏多样性 |
| 训练不稳定 | G 和 D 的平衡难以维持,容易出现振荡 | 损失曲线震荡不收敛 |
| 无收敛保证 | minimax 博弈在一般神经网络参数化下不保证收敛到纳什均衡 | 训练难以判断何时终止 |
| 评估困难 | 缺乏明确的量化指标判断生成质量 | 需要 FID、IS 等辅助指标 |
四、GAN 变体
4.1 DCGAN(Deep Convolutional GAN)
DCGAN 将卷积网络引入 GAN 框架,是第一个成功稳定训练 GAN 的卷积架构。
DCGAN 架构指南
-
用步幅卷积(strided convolution)替代池化层
-
G 和 D 中均使用 Batch Normalization
-
去除全连接层(最后一层除外)
-
生成器使用 ReLU 激活(最后一层 Tanh)
-
判别器使用 LeakyReLU 激活
生成器结构:噪声向量 经过多层转置卷积(反卷积)逐步上采样为图像:
4.2 WGAN(Wasserstein GAN)
JS 散度的缺陷
问题:当 和 的支撑集不重叠时(高维空间中几乎总是如此),JS 散度恒等于 ,梯度为 0,导致生成器无法学习。
Wasserstein 距离
Earth Mover’s Distance(推土机距离):衡量将一个分布”搬运”成另一个分布所需的最小工作量:
其中 是所有以 和 为边际分布的联合分布集合。
WGAN 目标函数
利用 Kantorovich-Rubinstein 对偶性:
WGAN 目标
判别器(Critic)不再输出概率,而是输出实数得分。通过权重裁剪(weight clipping) 来强制 Lipschitz 约束。
WGAN 的优势
-
Wasserstein 距离在分布不重叠时仍能提供有意义的梯度
-
训练更稳定,损失曲线与生成质量相关
-
减少模式崩塌
4.3 CGAN(Conditional GAN)
通过引入条件信息 (如类别标签),控制生成内容:
-
生成器:,将噪声 z 和条件 y 拼接后生成
-
判别器:,同时接收样本和条件来判断真假
-
应用:按类别生成特定数字、按文本描述生成图像
4.4 InfoGAN
InfoGAN 通过最大化互信息来学习解耦的隐表示:
将噪声分为两部分:(不可压缩噪声)和 (隐编码)。目标是使 和 之间的互信息最大:
由于互信息不可直接计算,使用变分下界近似:
其中 是辅助网络,用于从生成样本预测隐编码。
InfoGAN 的价值:无需标签即可自动发现数据中有意义的变化因子(如 MNIST 中的数字类型、倾斜角度、笔画粗细等)。
4.5 GAN 变体对比
| 模型 | 核心创新 | 目标函数改进 | 优势 | 局限 |
|---|---|---|---|---|
| DCGAN | 卷积架构设计原则 | 无(原始 GAN 目标) | 训练更稳定,图像质量提升 | 仍有模式崩塌 |
| WGAN | Wasserstein 距离替代 JS 散度 | Critic + weight clipping | 梯度有意义,损失可监控 | weight clipping 限制网络容量 |
| CGAN | 条件信息引导生成 | G(z,y) 和 D(x,y) | 可控生成 | 需要标签数据 |
| InfoGAN | 最大化互信息学习解耦表示 | 增加互信息正则项 | 无监督发现语义因子 | 训练复杂度增加 |
五、VAE vs GAN 对比
| 维度 | VAE | GAN |
|---|---|---|
| 密度建模 | 显式(近似):最大化 ELBO | 隐式:不直接建模密度 |
| 训练方式 | 最大似然(变分推断) | 对抗博弈(minimax) |
| 生成质量 | 倾向模糊(均值回归效应) | 图像锐利、细节丰富 |
| 多样性 | 覆盖性好(mode covering) | 易模式崩塌(mode dropping) |
| 隐空间 | 结构化、连续、可插值 | 不保证连续性 |
| 训练稳定性 | 稳定(标准 SGD 优化) | 不稳定(需精心调参) |
| 评估 | 可计算 ELBO 作为指标 | 缺乏内在评估指标 |
| 数学基础 | 变分推断、贝叶斯框架 | 博弈论、对偶理论 |
| 典型应用 | 表示学习、异常检测、插值 | 高质量图像生成、超分辨率 |
六、GAN 应用
6.1 图像超分辨率(SRGAN)
SRGAN 使用对抗训练将低分辨率图像恢复为高分辨率图像。损失函数包含:
-
内容损失:基于 VGG 特征的感知损失
-
对抗损失:使超分结果在判别器看来像真实高清图
6.2 图像修复(Image Inpainting)
利用 GAN 填补图像中缺失或损坏的区域。生成器学习根据周围上下文信息合理补全内容,判别器确保补全部分与原图风格一致。
6.3 风格迁移(CycleGAN)
CycleGAN 实现无配对的图像到图像翻译(如照片到油画、马到斑马)。核心创新:
-
两对生成器-判别器:,
-
循环一致性损失:
-
无需成对训练数据,只需两组无关联的图像集合
6.4 文本到图像生成(StackGAN)
StackGAN 将文本描述转换为高分辨率图像,采用两阶段生成:
-
Stage-I:根据文本编码生成低分辨率草图()
-
Stage-II:在草图基础上细化生成高分辨率图像()
七、公式总结
| 公式名称 | 表达式 | | ------------------- | --------------------------------------------------------------------------- | ------------ | ----------------- | ------------ | | VAE ELBO | | | 重参数化 | | | KL 散度(高斯) | | | GAN 目标 | | | 最优判别器 | | | WGAN 目标 | | | CycleGAN 循环一致性 | |
(注:内容由 AI 生成,请谨慎参考)
分享到社交平台
将本文分享给你的朋友们
Zhongye