VDB(Variational Discriminator Bottleneck):给判别器戴上「信息紧箍咒」
🎯 为什么重要:对抗训练的「D 太强」死穴
GAN、GAIL(模仿学习)、AIRL(逆向 RL)都是「判别器 D 教 生成器 G」的架构。这套架构有个老大难:D 太强 → 梯度消失。
常见 hack 是给 D 输入加噪声(instance noise),但噪声大小极难调——太大糊弄不掉真差距,太小又没用。
VDB 的核心洞察是:与其手工调噪声,不如让网络自己学「该忽略什么」。用一个学出来的 encoder 把输入压到有信息瓶颈的 latent,动态地调整噪声——既保证真分布在 latent 空间有重叠(梯度非零),又让 encoder 专门去拟合「真假之间最有判别力的差异」。
💡 核心思想:把信息瓶颈从监督学习搬到对抗判别器
VDB 借鉴 Alemi et al. (2016) 的 Variational Information Bottleneck (VIB)——本来是给分类器防过拟合用的。VDB 的巧妙在于:把它套到对抗学习的判别器上,让判别器「不能太聪明」,从而保持梯度。
三个关键设计选择:
- $I_c < 1$ bit:二分类最少需要 1 bit 信息才能完美区分。把 $I_c$ 压到 1 以下(实验中 $I_c = 0.5$),数学上就保证 D 无法完美分类,梯度非零。
- 对偶梯度下降自适应 β(公式 9):用 $\beta \leftarrow \max(0, \beta + \alpha_\beta(\text{KL} - I_c))$ 自动调温度——KL 太大就加大 β 限制,KL 太小就松绑。论文 Fig.6 中显示:固定 β(不管多大或多小)都不如自适应 β。
- 采样的 z 同时提供「instance noise」效果:每次 forward 都从 $E(z|x)$ 采样一次,天然带来随机性。但与「输入加固定噪声」不同——这个噪声是由 encoder 学出来、专门对齐到判别性方向的。
🛠️ 同一个套路,三个应用:VAIL / VAIRL / VGAN
VDB 是个「即插即用」的判别器正则化方法。论文把它套到三种对抗学习上,每种都用同一个信息瓶颈约束:
| 变体 | 套到哪 | 判别器在分什么 | 典型用途 |
|---|---|---|---|
| VAIL (§4.2) | GAIL(Ho & Ermon 2016) | 目标策略状态 $\pi^*(s)$ vs 智能体策略状态 $\pi(s)$ | 从 mocap 或视频学动作技能(后空翻、跑、舞) |
| VAIRL (§4.3) | AIRL(Fu et al. 2017) | 同样分状态,但 D 的形式 $D=\frac{e^f}{e^f + \pi(a|s)}$ 可恢复奖励函数 | 学到能迁移到新环境的奖励 |
| VGAN (§4) | 标准 GAN | 真图像 vs 生成图像 | CIFAR-10 / CelebA / CelebAHQ 图像生成 |
训练细节(PDF 溯源)
| 维度 | 设置 |
|---|---|
| 人物模型 | 34 自由度仿真人形(仿 Peng et al. 2018);每个技能从单条mocap 演示学(约 100 样本) |
| 编码维度 | z 是 128 维;$I_c = 0.5$(所有技能);对偶步长 $\alpha_\beta = 10^{-5}$ |
| 策略学习 | PPO(Schulman et al. 2017) |
| 视频模仿 | 64×64 RGB 帧;奖励 $r_t = -\log(1 - D(\mu_E(s)))$,用 encoder 均值近似 |
| 迁移任务 | C-maze / S-maze(Fu et al. 2017),把奖励用到左右翻转的镜像迷宫 |
| 对照基线 | GAIL(同架构无 VDB)、GAIL + instance noise、GAIL + 梯度惩罚(GP)、Merel et al. 2017、手工奖励(Peng 2018)、行为克隆 BC |
论文 Table 1 对比了「GAIL-noise」(输入加噪)、「GAIL-noise z」(隐层加噪)和 VAIL。结果:简单加噪效果远不如 VDB。原因是网络可以学一个表示让固定噪声变得无效——网络把噪声「绕过去」了。VDB 的 KL 约束直接限制信息量,网络无法绕过——只能挑最有判别力的 0.5 bit 信息保留。
📊 关键结果(PDF Table 1 / Fig.7 / Fig.8)
VAIL:人形动作模仿(平均关节旋转误差,弧度,越低越好)
| 方法 | Backflip | Cartwheel | Dance | Run | Spinkick |
|---|---|---|---|---|---|
| BC(行为克隆,10k 样本) | 3.01 | 2.88 | 2.93 | 2.63 | 2.88 |
| Merel et al. 2017 | 1.33 | 1.47 | 2.61 | 0.52 | 1.82 |
| GAIL | 0.74 | 0.84 | 1.31 | 0.17 | 1.07 |
| GAIL + noise | 0.42 | 0.92 | 0.96 | 0.21 | 0.95 |
| GAIL + GP | 0.62 | 0.69 | 0.80 | 0.12 | 0.64 |
| VAIL(ours) | 0.36 | 0.40 | 0.40 | 0.13 | 0.34 |
| VAIL + GP(ours) | 0.46 | 0.31 | 0.15 | 0.10 | 0.31 |
| 手工奖励(Peng 2018,上限参考) | 0.26 | 0.21 | 0.20 | 0.14 | 0.19 |
视频模仿:只有 VAIL 学会了
从 64×64 RGB 视频直接学跑步——像素距离损失和 GAIL 都学不会,只有 VAIL 成功。Fig.5 的 saliency map 显示:VAIL 的判别器关注空间连贯的人物区域,而 GAIL 的关注点散乱;VAIL 梯度幅度也显著更大。
VAIRL:奖励迁移到镜像迷宫(5 次平均回报 ± std)
| 方法 | C-maze(翻转) | S-maze(翻转) |
|---|---|---|
| GAIL | -24.6 ± 7.2 | 1.0 ± 1.3 |
| VAIL | -65.6 ± 18.9 | 20.8 ± 39.7 |
| AIRL | -15.3 ± 7.8 | -0.2 ± 0.1 |
| AIRL + GP | -9.14 ± 0.4 | -0.14 ± 0.3 |
| VAIRL(β=0,禁用 KL) | -25.5 ± 7.2 | 62.3 ± 33.2 |
| VAIRL(ours) | -10.0 ± 2.2 | 74.0 ± 38.7 |
| VAIRL + GP(ours) | -9.18 ± 0.4 | 156.5 ± 5.6 |
| TRPO expert(上限) | -5.1 | 153.2 |
VGAN:CIFAR-10 图像生成(FID,越低越好)
| 方法 | FID ↓ |
|---|---|
| 原始 GAN | 63.6 |
| Instance Noise | 30.7 |
| SN(谱归一化) | 23.9 |
| GP(梯度惩罚) | 22.6 |
| WGAN-GP | 19.9 |
| VGAN(ours) | 24.8 |
| VGAN-SN(ours) | 71.8 |
| VGAN-GP(ours) | 18.1 |
VGAN+GP 拿到 CIFAR-10 上的 SOTA(18.1)。注意 VDB 和 GP 互补:VDB 防梯度消失,GP 防梯度爆炸。但 VGAN-SN 反而变差(71.8),说明不同正则化之间并非任意可叠加。
🌐 在领域中的位置
VDB 是 2018-2019 年「对抗训练稳定化」一长串工作中的优雅一站。它的精髓——「限制判别器信息量,让它永远给有梯度的反馈」——对后续 AMP(Adversarial Motion Priors)等游戏/动画领域的对抗技能学习有直接影响。今天 diffusion policy 等非对抗范式崛起后,对抗方法不再那么热门,但 VDB 的「信息瓶颈防过强」思想仍出现在很多自监督和表示学习工作中。
❓ 常见误区
VDB 训练了两个网络吗?
训练三个:encoder $E(z|x)$、判别器 $D(z)$、生成器/策略 $G$(或 $\pi$)。encoder 和 D 一起构成「带瓶颈的判别器」;它们一起对 G 提供梯度。
为什么 $I_c = 0.5$?是怎么选的?
论文选 $I_c < 1$ 是因为二分类最小信息量是 1 bit——低于这个值,D 数学上无法完美分类,分布必然有重叠。具体 0.5 是经验值,所有技能共用。$I_c$ 越小,D 越弱、梯度越大但反馈越糊;$I_c$ 越大,D 越强、可能梯度消失。
它和 instance noise 到底差在哪?
instance noise 是「输入端加固定方差噪声」。网络会学一个表示把噪声绕过去——Table 1 的 GAIL-noise / GAIL-noise z 都明显不如 VAIL。VDB 直接限制信息量(KL 上界),网络无路可绕。论文 §1 把 VDB 描述为「自适应的 instance noise」——噪声大小由 encoder 学,并施加在专门拟合判别方向的压缩表示上。
β 为什么要用对偶梯度下降,不能固定吗?
试过。Fig.6 middle 比较了不同固定 β 和自适应 β——固定 β 不管多大或多小都不如自适应。固定小 β → 退化为 GAIL;固定大 β → 早期快但收敛差。原因是训练过程中真/假分布的距离在变,需要的「噪声强度」也在变,必须动态调。
局限?
(1) 仍是对抗训练,没摆脱不稳定性,只是缓解——今天 diffusion 等非对抗范式更稳;(2) 对偶梯度下降引入额外超参($\alpha_\beta$、$I_c$);(3) VGAN-SN 退化说明 VDB 和其他正则化并非总兼容;(4) 视频模仿只在跑步一个技能上验证,泛化性未充分检验。