生成模型

深度生成模型全景:VAE、扩散模型与对抗攻防

Posted by CloudingYu on April 24, 2026

一、生成模型概述

1.1 表征学习的核心目标

生成模型的根本目标是从原始数据分布 $P(X)$ 中学习一个压缩的表征(Representation)。好的表征需要同时满足两个要求:

  1. 压缩(Compression):将高维数据 $X$ 映射到低维的隐空间 $Z$。
  2. 生成(Generation):从压缩表征 $Z$ 能够重建/生成原始数据 $X$。

1.2 自编码器(Autoencoder)

自编码器是最基本的生成模型框架:

  • 编码器(Encoder):$X \rightarrow Z$,将原始数据映射到隐空间。
  • 瓶颈层(Bottleneck):隐空间 $Z$,也称为潜空间(Latent Space)。
  • 解码器(Decoder):$Z \rightarrow \hat{X}$,从隐空间重建数据。

编码器通过降维迫使网络学习数据中最本质的特征;解码器验证这些特征是否足以恢复原始信息。

二、变分自编码器(VAE)

2.1 直接建模的困难

直接建模 $P(X Z)$ 的概率密度是困难的,因为真实后验分布 $P(Z X)$ 复杂且不可解析(intractable)。

2.2 变分推断的思想

变分(Variational)是统计学中的常用手段:当面对一个复杂/未知的概率分布时,用另一个可解析的参数化分布 $Q(Z X)$ 去近似它。
核心思想:用一个简单的分布族(通常是高斯分布)去逼近真实的后验分布 $P(Z X)$。

2.3 ELBO 推导

对数似然可以分解为:

\[\log P(X) = \text{ELBO} + D_{KL}(Q(Z|X) \| P(Z|X))\]

其中 ELBO(Evidence Lower Bound,证据下界)包含两项:

\[\text{ELBO} = \underbrace{\mathbb{E}_{Q}[\log P(X|Z)]}_{\text{重构项}} - \underbrace{D_{KL}(Q(Z|X) \| P(Z))}_{\text{先验匹配项}}\]

由于 $D_{KL} \geq 0$,ELBO 是 $\log P(X)$ 的下界。

2.4 两项损失的直觉

重构损失(Reconstruction Loss)

\[\mathcal{L}_{\text{recon}} = -\mathbb{E}_{Q}[\log P(X|Z)] \approx \|X - \hat{X}\|^2\]

衡量解码器从 $Z$ 重建 $X$ 的能力。实践中用 MSE 实现。

KL 散度 / 先验匹配项

\[\mathcal{L}_{KL} = D_{KL}(Q(Z|X) \| P(Z))\]
衡量学到的编码分布 $Q(Z X)$ 与期望先验 $P(Z)$(通常取标准正态 $\mathcal{N}(0, I)$)之间的距离。

2.5 为什么需要紧致性约束

如果没有 KL 散度项的约束,模型会”作弊”——只在离散的训练样本点附近学到表征,训练样本之间的隐空间区域生成的都是垃圾。

紧致的隐空间保证:

  • 隐空间中每一个点都能生成高质量的样本。
  • 表征形成连续的流形(manifold),编码了高层语义信息。
  • 插值路径上的点也是有意义的——从一张猫的图像到一张狗的图像之间,中间状态平滑过渡。

2.6 KL 散度的性质

  • 始终非负:$D_{KL}(Q | P) \geq 0$。
  • 信息论含义:用 $Q$ 的编码方案去编码 $P$ 所需的额外信息量。
  • 当 $Q = P$ 时取到零。

2.7 训练目标与优化

直接最大化 $\log P(X)$ 不可解,改为最大化 ELBO:

\[\max_{\theta, \phi} \text{ELBO} = \mathbb{E}_{Q_\phi}[\log P_\theta(X|Z)] - D_{KL}(Q_\phi(Z|X) \| P(Z))\]

当 ELBO 增大时,$D_{KL}(Q | P_{\text{posterior}})$ 必然减小(两者之和为常数 $\log P(X)$),从而 $Q$ 逼近真实后验。

三、重参数化技巧(Reparameterization Trick)

3.1 问题:采样不可导

VAE 的编码器输出均值 $\mu$ 和方差 $\sigma^2$,需要从 $\mathcal{N}(\mu, \sigma^2)$ 中采样 $Z$。但采样是离散操作,无法反向传播梯度。

3.2 解决方案

将采样重参数化为确定性变换:

\[Z = \mu + \sigma \odot \epsilon, \quad \epsilon \sim \mathcal{N}(0, I)\]

随机性被转移到外部噪声 $\epsilon$ 上,$\mu$ 和 $\sigma$ 成为可微的确定性路径,梯度可以正常回传到编码器。

3.3 为什么不能只用均值

如果每次只取 $\mu$ 而不采样:

  • 隐空间退化为离散点集。
  • 失去了正则化效果和连续性保证。
  • 高斯采样天然能”填充”隐空间的邻域区域。

四、扩散模型(Diffusion Models)

4.1 单步生成的局限

VAE 试图一步从 $Z$ 生成 $X$,对于高分辨率图像来说,一步映射的学习难度极大。

4.2 多步渐进生成

将生成过程拆分为多个小步,每一步只做轻微的变换:

  • 前向过程(Forward):逐步向图像添加高斯噪声
\[X_0 \rightarrow X_1 \rightarrow \cdots \rightarrow X_T \approx \mathcal{N}(0, I)\]

每一步添加少量噪声,信号与噪声的比例可控。

  • 逆向过程(Reverse):逐步去噪
\[X_T \rightarrow X_{T-1} \rightarrow \cdots \rightarrow X_0\]

每一步学习”如何去掉一小部分噪声”,这是一个简单的子问题。

4.3 优势

每一步的学习负担和难度空前下降——这就是分而治之(divide and conquer)的思想。

  • 每步只需解决一个简单的 VAE-like 子问题。
  • 图像质量和保真度大幅提高。
  • 每步的随机采样提供了多样性:同一个 prompt 可以生成多张不同的图像。
  • 可以在每步引入条件信息进行控制。

五、流匹配(Flow Matching)

5.1 基本思想

流匹配是扩散模型的进一步改良:

  • 不再逐步加/去噪声,而是学习一个向量场(vector field)。
  • 网络学习从噪声到目标图像应该朝哪个方向变化。
  • 目标:在向量空间中快速收敛到真实图像。

5.2 与扩散模型的对比

特性 扩散模型 流匹配
生成速度 较慢(多步采样) 较快(确定性路径)
多样性 高(每步随机采样) 较低(单一确定路径)
图像质量
适用场景 通用图像生成 精度要求高的场景(如医学影像)

总结来看,如果你需要一张 prompt 生成 4-8 张不同的图片,用扩散模型;如果追求精确再现,用流匹配。

六、生成对抗网络(GAN)

6.1 动机

VAE 生成的图像有时缺乏真实感。目标:让生成的图像与真实图像不可区分

6.2 对抗博弈思想

GAN 的核心是一个博弈论框架

  • 生成器 G(Generator):像”造假币者”,从噪声 $Z$ 生成假图像。
  • 判别器 D(Discriminator):像”鉴定专家”,区分真假图像。
  • 两者通过对抗训练互相提升。

比喻:假币做得越来越真,鉴定师眼光越来越毒,最终假币真到连鉴定师都分不出来。

6.3 训练策略

\[\min_G \max_D \; \mathbb{E}_{x \sim p_{\text{data}}}[\log D(x)] + \mathbb{E}_{z \sim p_z}[\log(1 - D(G(z)))]\]
  • 交替训练 G 和 D。
  • D 需要比 G 多训练几步以保持稳定。
  • 最终达到纳什均衡(Nash Equilibrium):$D(x) = 0.5$(无法区分真假)。

6.4 VAE + GAN 结合

可以使用三个损失函数联合训练:

  1. 重构损失(Reconstruction Loss):$|X - \hat{X}|^2$
  2. KL 散度:保证隐空间紧致。
  3. 对抗损失:让生成图像骗过判别器。

七、知识蒸馏(Knowledge Distillation)

7.1 动机

大模型(如 152 层 ResNet)性能好但部署成本高。目标:将大模型的”知识”压缩到小模型中。

7.2 方法

  • 教师模型(Teacher):152 层。
  • 学生模型(Student):15 层(压缩 10 倍)。
  • 层对应:学生第 $N$ 层学习教师第 $N \times 10$ 层的中间表征。
  • 损失函数:学生各层的输出逼近教师对应层的输出。

7.3 应用:Google 翻译离线模式

  • 手机端部署轻量化模型。
  • 执行流程:OCR 识别文字 → 翻译 → 将译文渲染回原图位置。
  • 完全离线运行,无需联网。

八、多模态学习(Multimodal Learning)

8.1 核心思想

将不同模态(音频、视频、文本)映射到共享表征空间

8.2 唇语识别案例

架构设计:

  • 音频编码器 + 视觉编码器 → 共享表征空间
  • 音频解码器 + 视频解码器 → 跨模态重建

训练使用 4 个损失函数:

  1. 音频 → 音频重建
  2. 视频 → 视频重建
  3. 音频 → 视频跨模态
  4. 视频 → 音频跨模态

唇读准确率达到 60-70%

8.3 延伸应用

通过分析玻璃振动的音频信号进行远程窃听——声音引起窗户玻璃微振动,高精度麦克风/激光可以捕捉并还原语音。

九、深度学习训练技巧

9.1 成功的三大要素

要素 重要性 说明
架构选择 ~20% 网络结构设计
损失函数设计 ~60%+ 最关键因素
训练技巧 ~20% 锦上添花

单一损失函数往往不够,需要精心设计组合损失。架构和技巧都无法弥补糟糕的损失函数。

9.2 优化算法

  • SGD(随机梯度下降):经典但可能收敛慢。
  • Adam:自适应学习率 + 动量,实践中最常用。
  • 一阶近似 vs 二阶近似的权衡。

9.3 数据预处理

输入归一化(减均值、去方差)

将每个特征维度标准化为零均值、单位方差:

\[\hat{x}_i = \frac{x_i - \mu_i}{\sigma_i}\]

几何直觉:将拉长的椭圆形损失等高线变成同心圆,使得梯度下降在所有方向上收敛速度一致。

标签平滑(Label Smoothing)

硬标签 $[0, 1]$ 替换为软标签 $[0.1, 0.9]$:

  • 硬标签过于绝对,训练不稳定。
  • 软标签考虑了类间关系,提升泛化能力。

9.4 数据增强(Data Augmentation)

对图像数据尤为重要——通过翻转、裁剪、旋转、色彩抖动等变换从一张图产生多张训练样本。

“数据是生命”——大规模高质量数据 > 精巧架构。标注成本极高(高质量数据可能上万元一条)。

9.5 参数初始化

  • 有预训练模型时直接加载。
  • 无预训练时使用 Xavier 初始化Kaiming(凯明)初始化

9.6 归一化方法

  • Batch Normalization(BN):对 mini-batch 内统计归一化。
  • Layer Normalization(LN):对单样本各层归一化,适用于 RNN/Transformer。

9.7 正则化

权重衰减(Weight Decay / L2 正则化)

在损失函数中加入权重范数惩罚:

\[\mathcal{L}_{\text{total}} = \mathcal{L}_{\text{task}} + \lambda \|W\|^2\]

控制权重大小,防止过拟合。

Dropout

训练时以概率 $p$ 随机屏蔽神经元:

  • 集成学习视角:每次训练相当于使用一个不同的子网络。
  • 推理时:激活所有神经元(等效于对所有子网络取平均)。
  • 本质是偏差-方差权衡(bias-variance tradeoff)。

9.8 谱范数控制(Spectral Normalization)

谱范数(Spectral Norm)= 权重矩阵的最大奇异值 = 向量通过该矩阵的最大拉伸倍数。

多层网络中,各层谱范数相乘:

  • 谱范数 > 1:梯度爆炸。
  • 谱范数 < 1:梯度消失。

提示:梯度消失比爆炸更可恢复——宁可消失,不可爆炸。

权重裁剪(Weight Clipping):每个 batch 后将权重向零收缩,保证谱范数不超过阈值。确保小的输入扰动不会被放大为巨大的输出变化。

9.9 超参数搜索

  • 网格搜索:组合多个超参数的离散取值,测试所有组合。
  • 效果通常只带来 1-2% 的边际提升,但计算开销大。

十、对抗攻击与AI安全

10.1 模型的幻觉与创造力

幻觉(Hallucination)越大,模型的创造力就越强——这是一个正比关系。

生成模型可以设计台灯等创意产品,展现出一定的设计创造力。

10.2 对抗攻击(Adversarial Attack)

经典实验:在熊猫图片上加一个人眼不可见的微小噪声,模型以 99.3% 的置信度将其误判为”大猩猩”(gibbon)。

\[X_{\text{adv}} = X + \epsilon \cdot \text{sign}(\nabla_X \mathcal{L})\]
  • 人眼看不出区别,但模型高置信度犯错。
  • 图像、文本领域均存在此现象。

10.3 文本对抗攻击

原始句子:”I really like this movie” → 模型判定 99% 正面。

通过逐词替换同义词(really→truly, movie→show),最终 “We truly like the show” 被模型以 95% 置信度判为负面评价

10.4 自动驾驶中的物理对抗

  • 在 STOP 标志上用三个激光笔照射,识别模型立即将其误判为”可通行”标志。
  • 在车牌特定位置贴小贴纸,可使车牌识别系统失效。

“先拿下交警的车牌识别订单,再卖给车主对抗贴纸——这是个好生意。”

10.5 安全启示

  • 对抗攻击是一个尚未彻底解决的问题。
  • 谱范数控制是防御的一个方向:限制网络对小扰动的敏感度。
  • 在安全关键场景(自动驾驶、医疗诊断)中必须考虑鲁棒性。

十一、语音识别的演进

11.1 技术路线变迁

时代 方法 特点
传统 HMM + GMM 手工特征 + 统计模型
深度学习初期 DNN + CTC 端到端开始
中期 LSTM / RNN 时序建模能力强
当前 Transformer 并行化、长距离依赖

十二、深度学习与通用智能的展望

当前神经网络与大脑的处理方式本质上不同。深度学习技术能否引向真正的终极智能形态,是一个开放性的问题。