第 6 章 · 02 WGAN 与多资产生成 本节摘要:本节讲 Wasserstein GAN(WGAN)及其在金融的应用——从单资产到多资产生成。第 01 节指出原始 GAN 训练不稳、模式崩溃,根因在于它优化的 JS 散度在分布不重叠时会失效。WGAN 改用 Wasserstein 距离(又叫推土机距离 Earth-Mover's Distance)衡量真实与生成分布的差距,即使分布不重叠也能提供有意义的梯度,训练显著稳定。为进一步保证稳定性,引入梯度惩罚(WGAN-GP),约束判别器梯度满足 Lipschitz 连续条件。
本节摘要:本节讲 Wasserstein GAN(WGAN)及其在金融的应用——从单资产到多资产生成。第 01 节指出原始 GAN 训练不稳、模式崩溃,根因在于它优化的 JS 散度在分布不重叠时会失效。WGAN 改用 Wasserstein 距离(又叫推土机距离 Earth-Mover's Distance)衡量真实与生成分布的差距,即使分布不重叠也能提供有意义的梯度,训练显著稳定。为进一步保证稳定性,引入梯度惩罚(WGAN-GP),约束判别器梯度满足 Lipschitz 连续条件。华泰 AI 系列第 35 篇把 WGAN 引入金融单资产生成,第 38 篇进一步扩展到多资产联合生成——同时生成多只股票或多类资产的序列,保留它们之间的相关结构,这对组合层面的应用至关重要。本节讲清 Wasserstein 距离的直觉、梯度惩罚机制、WGAN 的训练稳定性,以及多资产生成的挑战。
内容来源:仓库研报 华泰 AI 系列第 35 篇(WGAN)、第 38 篇(WGAN 多资产),知识结构化整理。
⚠️ 学习提示:WGAN 相对原始 GAN 确实更稳,但在金融里「训练稳定」不等于「生成有用」。生成数据仍需严格评估其统计保真度与下游任务效果,别把「能训出来」误当成「生成得好」。
阅读完本节,你应当能够:
第 01 节提到原始 GAN 训练不稳,根本原因在于它的价值函数隐含地用 JS 散度(Jensen-Shannon divergence)衡量真实分布与生成分布的差距。JS 散度有个致命缺陷:当两个分布完全不重叠时,它恒为一个常数(达到上界),梯度为 0。
在图像生成里这个问题还不算致命,因为高维空间里分布多少有重叠。但在金融里,真实序列分布与生成序列分布很容易「完全不重叠」——尤其在训练初期,生成器还很弱,造的数据与真实数据差得远。这时 JS 散度饱和、梯度消失,生成器学不动,训练卡死。
WGAN 的核心改进就是换一种衡量分布差距的方式——Wasserstein 距离,它即使分布在分布不重叠时也能提供有意义的、非零的梯度,指引生成器朝真实分布移动。
Wasserstein 距离(又叫 Earth-Mover's Distance,推土机距离)的直觉是:把一个概率分布「看作一堆土」,把另一个分布「看作一个坑」,Wasserstein 距离就是把这堆土搬到那个坑所需的最小「搬运成本」(土量 × 距离)。
关键优势:
数学上,Wasserstein 距离的定义涉及一个约束优化(在所有满足 Lipschitz 条件的可测函数上取上确界),细节这里不展开。重要的是它的直觉与优化友好性。
WGAN 把判别器改称为 critic(评论家,因为它不再「分类」而是「打分」),它的输出不再是 0-1 概率,而是一个实数,衡量输入数据的「真实程度」。WGAN 的训练目标:
maximize E_x[critic(x)] - E_z[critic(G(z))]
也就是让 critic 对真数据打高分、对假数据打低分,两者的差就是 Wasserstein 距离的估计。生成器则最小化这个差(让 critic 对假数据也打高分)。
但这里有个关键约束:critic 必须满足 Lipschitz 连续条件(梯度的范数不超过某个常数 K)。这个约束是 Wasserstein 距离定义所要求的,不满足的话训练会失控。
如何让 critic 满足 Lipschitz 约束?早期 WGAN 用权重裁剪(weight clipping)——把 critic 的权重强制限制在 [-c, c] 区间。但这个方法粗暴,会导致 critic 表达力下降、优化困难。
WGAN-GP(WGAN with Gradient Penalty)提出更优雅的方案:在损失里加一个梯度惩罚项,显式约束 critic 在插值点上的梯度范数接近 1(Lipschitz 常数的一种实现):
Loss_critic = -(E_x[critic(x)] - E_z[critic(G(z))]) + lambda * E[(||grad critic(x_hat)||_2 - 1)^2]
其中 x_hat 是真数据与假数据之间的随机插值点,lambda 是惩罚系数(常取 10)。这个梯度惩罚让 critic 自动满足 Lipschitz 条件,训练显著稳定,是当前金融 GAN 的主流选择。
| 方法 | 约束 Lipschitz 的方式 | 优缺点 |
|---|---|---|
| 权重裁剪 | 强制权重在 [-c,c] | 简单但粗糙,损害表达力 |
| 梯度惩罚(WGAN-GP) | 损失加梯度范数惩罚 | 稳定、表达力强,当前主流 |
💡 直觉理解:梯度惩罚就像给 critic 装了一个「限速器」——不让它的梯度变化太剧烈(否则它就能轻易区分任何真假,梯度饱和)。保持梯度平缓,Wasserstein 距离的估计才稳定,生成器才能收到持续、有意义的优化信号。
| 维度 | 原始 GAN | WGAN-GP |
|---|---|---|
| 距离度量 | JS 散度 | Wasserstein 距离 |
| 分布不重叠时 | 梯度消失 | 仍有梯度 |
| 训练稳定性 | 易模式崩溃、不收敛 | 显著稳定 |
| critic 约束 | 无(判别器分类) | 梯度惩罚(Lipschitz) |
| 收敛指标 | 损失不反映生成质量 | 损失大致反映分布距离 |
WGAN 的损失值能大致反映「生成分布与真实分布的距离」——损失下降通常意味着生成质量提升,这给训练监控提供了有用的信号(原始 GAN 的损失与质量无关)。
华泰 AI 35 把 WGAN-GP 用于金融序列生成,典型设置:
实证表明,WGAN-GP 在训练稳定性上远优于原始 GAN,生成的序列在统计性质上更接近真实。但「统计接近」与「下游有用」之间仍有差距——生成数据能否真正提升选股模型的样本外表现,需要严格验证。
单资产生成只关注单个资产的时序性质,但金融的核心还有资产间的相关结构——组合投资、风险预算、对冲都依赖相关性。如果生成的多资产序列丢了相关结构,就没法用于组合层面的应用。
华泰 AI 38 把 WGAN 扩展到多资产联合生成:同时生成多只股票或多类资产的序列,要求:
挑战:
华泰 AI 38 通过精心设计的网络结构(如多通道 LSTM、注意力机制)与评估方法,实现了多资产序列的联合生成,为组合层面的数据增强与压力测试打下基础。
💡 应用价值:多资产生成的最大价值在于组合层面——用生成的多资产序列训练组合优化模型、做风险预算回测、模拟极端场景下的组合表现。这些用单资产生成做不到,因为它们依赖资产间的联动。
WGAN-GP 相对原始 GAN 大幅改善了训练稳定性,但仍非万能:
⚠️ 学习提示:WGAN 是金融 GAN 实用化的关键一步,但「训练稳定」只是必要条件,不是充分条件。生成数据用于训练前,必须做两重验证:(1) 统计保真(分布、自相关、厚尾匹配);(2) 下游有用(样本外效果提升)。任何只展示「训练稳定」或「统计像」就声称成功的研究,都要打折。
max E_x[critic(x)] - E_z[critic(G(z))],critic 须满足 Lipschitz 约束。下一节,我们看 RGAN 与序列生成评估——它把 GAN 改造为相对生成对抗网络,并解决「如何评估生成的金融序列质量、如何识别假序列」这个关键问题。