一、生成模型概述
1.1 表征学习的核心目标
生成模型的根本目标是从原始数据分布 $P(X)$ 中学习一个压缩的表征(Representation)。好的表征需要同时满足两个要求:
- 压缩(Compression):将高维数据 $X$ 映射到低维的隐空间 $Z$。
- 生成(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):逐步向图像添加高斯噪声
每一步添加少量噪声,信号与噪声的比例可控。
- 逆向过程(Reverse):逐步去噪
每一步学习”如何去掉一小部分噪声”,这是一个简单的子问题。
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 结合
可以使用三个损失函数联合训练:
- 重构损失(Reconstruction Loss):$|X - \hat{X}|^2$
- KL 散度:保证隐空间紧致。
- 对抗损失:让生成图像骗过判别器。
七、知识蒸馏(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 个损失函数:
- 音频 → 音频重建
- 视频 → 视频重建
- 音频 → 视频跨模态
- 视频 → 音频跨模态
唇读准确率达到 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 | 并行化、长距离依赖 |
十二、深度学习与通用智能的展望
当前神经网络与大脑的处理方式本质上不同。深度学习技术能否引向真正的终极智能形态,是一个开放性的问题。