第03讲

金融中的深度学习算法

“神经网络是通用函数逼近器,但它们的价值取决于我们如何利用这种灵活性。”


该版为机翻版本,未经人工校对,建议配合原版使用。

金融机器学习 · 第03讲

大纲

内部来说,这 8 个部分可以分为: 基础知识 (第 1-2 部分), 架构 (第 3-4 和 7 部分), 表示与生成模型 (第 6 部分), 以及训练与应用 (第 8 部分)。
金融机器学习 · 第03讲

第 1 部分 · 为什么要在金融中使用深度学习?

动机

  • 浅层学习 工具 (L02) 在 表格、低到中等维度 的问题上表现良好,但存在有限的非线性。
  • 然而,现代金融往往涉及:
    • 高维特征(数百或数千个信号、工具、时间范围)。
    • 变量之间复杂的非线性交互
    • 顺序依赖(时间序列、订单流、宏观序列)。
    • 网络结构(交易对手网络、所有权网络)。
  • 深度学习提供了一个 架构工具包,可以学习灵活的函数和 内部表示,以适应这些结构。
  • 本讲的目标:了解 核心架构(MLP、CNN、RNN/LSTM/GRU、Transformer 前的注意力机制、自编码器、生成对抗网络、图神经网络),它们的 数学公式直觉,以及 它们何时可能帮助金融
金融机器学习 · 第03讲

深度学习作为表示学习

  • 深度学习背后的一个关键思想是 表示学习
  • 深度网络从原始或轻微处理的输入中学习 多层表示,而不是手动设计特征(例如,预先指定的因素、比率、技术指标)。
  • 每个隐含层将其输入转换为更抽象的表示:

  • 对于金融而言,这意味着:
    • 网络可以发现 特征的非线性组合,这些组合对收益、违约或风险指标具有预测性。
    • 中间层可以被解释为 数据驱动的因素 或市场状态。
  • 在本讲中,MLP、CNN、RNN、生成模型和GNN都视为 表示学习者,每种都有其自身的归纳偏差。
金融机器学习 · 第03讲

浅层与深层:金融导向的视角

  • 浅层模型将关系近似为 ,其中相对简单的 (线性、低阶非线性、分段分割、核)。
  • 深层模型将 构建为 多个层的组合

  • 金融中的好处包括:
    • 表示学习:自动从原始输入中提取潜在因子或特征(例如,非线性风险因子)。

    • 可扩展性:许多参数,但使用随机优化和正则化进行训练。

    • 归纳偏差

      MLP CNN RNN GNN
      对一般表格数据灵活。 本地模式与平移不变性(对术结构信号如期限结构或限价单本有用)。 收益、波动性或流动性的顺序依赖。 图的关系(对手、供应链、所有权)。
  • 深度学习并不是魔法解决方案;它是 另一套工具,具有权衡。
金融机器学习 · 第03讲

深度模型何时可能有用?

  • 可能受益的问题:
    • 高度非线性的 特征与目标之间的映射(例如,风险因子间复杂的相互作用)。
    • 大规模训练数据集(历史悠久、多个资产的横截面、丰富的微观结构数据)。
    • 长记忆的顺序预测(波动性聚集、订单簿动态)。
    • 网络系统(传染、系统性风险、相互关联的实体)。
  • 浅层模型通常足够的问题:
    • 小样本、少量预测变量、强理论驱动结构。
    • 可解释性和监管透明度 为主的任务。
  • 举例来说,在经验资产定价中,深度网络可以视为 灵活的非参数资产定价模型,估计:

    其中 可能是高维特征和宏观状态。
  • 我们将视架构为 工具包,而不是理论的竞争者。
金融机器学习 · 第03讲

第 2 部分 · 多层感知器 (MLP)

动机

  • MLP 是深度学习的 基础构件
  • 通过增加 隐层非线性激活,它们推广了线性回归和逻辑回归。
  • 适用于:
    • 表格金融数据:公司特征、宏观变量、技术指标。
    • 横截面预测:预期收益、违约概率、回收率。
    • 逼近未知定价函数或效用函数。
  • 从概念上讲,MLP 实现:,其中 是通过权重和偏差参数化的 学习非线性映射
  • 在专门架构(CNN、RNN、GNN)之前,许多金融应用以 MLP 作为 基线深度模型 开始。
金融机器学习 · 第03讲

本讲的神经网络基础

  • 本讲中的所有架构共享一组共同基础:
    • 从感知机到 MLP:堆叠线性单元和非线性激活以建模复杂函数。
    • 激活函数:sigmoid、tanh、ReLU及其变体,控制非线性和梯度流。
    • 损失函数:平方误差用于回归,交叉熵用于分类,以及正则化项。
    • 反向传播:通过计算图的链式法则高效计算梯度。
    • 优化和初始化:随机梯度方法和适合的初始权重,以减轻梯度消失/爆炸。
  • 一旦建立了这些基础,不同架构主要在于 如何连接单元对数据施加什么结构 上有所不同。
金融机器学习 · 第03讲

神经网络的简短历史

金融机器学习 · 第03讲
  • 1940 年代–1950 年代:早期的神经元模型(McCulloch–Pitts)和海布学习提供了神经元和突触的第一个抽象。
  • 1958 年:罗森布拉特的感知器显示简单网络可以学习线性决策边界,提升了对人工智能的乐观。
  • 1969 年:明斯基和佩珀特演示了单层感知器无法解决如 XOR 的线性不可分问题。这促成了第一次“人工智能寒冬”。
  • 1980 年代:多层网络的反向传播算法被普及,显示深度网络可以通过梯度下降进行训练。
  • 1990 年代–2000 年代:SVM 和其他“浅层”方法由于更好的理论和优化而主导实际应用。
  • 2010 年代:深度学习复苏,得益于 GPU、大数据集和改进的架构(CNN、RNN、残差网络),现已在包括金融在内的许多领域成为主流。
金融机器学习 · 第03讲

感知器及其局限性

  • 感知器计算

对应于输入空间中的 线性决策边界

  • 从几何学上讲,它通过超平面的位置来分类点。如果两个类是线性可分的,感知器可以找到这样的超平面。
  • 然而,许多相关问题是 不可线性分割 的。经典例子是两个二进制输入的 XOR 函数:
    • XOR 为 1 如果恰好有一个输入为 1,如果没有则为 0。
    • 在二维空间中,正负点无法通过任何直线分开。
  • 这个局限性说明了为什么 单层网络不足,并激励着添加具有非线性激活的隐层。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

用小型 MLP 解决 XOR 问题

  • 一个两层 MLP 可以通过引入 隐层单元 来实现 XOR,形成中间非线性特征。
  • 一种构造:
    • 隐层单元 1 学习类似于两个输入的 OR 模式。
    • 隐层单元 2 学习类似于 AND 模式。
    • 输出神经元则结合这些隐激活,生成 XOR。
  • 从概念上讲,隐层执行 非线性变换,使问题在隐层空间中变得线性可分。
  • 这个例子说明了 深度 的威力:
    • 浅层线性模型无法解决 XOR。
    • 一个具有一个隐层的小型网络可以表示更复杂的决策区域,即使参数较少。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

神经元、层、网络

  • 单个神经元:

    其中 是输入, 是权重, 是偏差, 是激活函数。
  • 常见的激活函数:
    • Sigmoid:
    • Tanh:
    • ReLU:
  • 全连接层:

  • MLP 具有 层:
    • 输入
    • 隐层
    • 输出层(例如,回归):

金融机器学习 · 第03讲
金融机器学习 · 第03讲

Application · Empirical Asset Pricing via ML (Gu, Kelly & Xiu, 2020, RFS)

  • 问题
    • 基本问题:如何通过非常大的公司特征集预测下一个时间段的股票收益,并评估这些预测的经济价值。
flowchart LR %% 节点定义 Input[("表格特征
Xit
")] Model[["MLP / 其他 ML"]] Pred["E[Ri,t+1 | Xit]
(预期收益)"] App["投资组合排序
& 绩效"] %% 流程连接:使用粗箭头强调数据流,细箭头强调逻辑流 Input ==> Model Model ==> Pred Pred --> App %% 样式设置:区分不同阶段 %% 蓝色:数据输入 style Input fill:#e3f2fd,stroke:#1565c0,stroke-width:2px %% 紫色:模型计算 style Model fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,rx:5 %% 绿色:预测结果 style Pred fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px %% 橙色:应用策略 style App fill:#fff3e0,stroke:#ef6c00,stroke-dasharray: 5 5
  • 模型 / 算法
    • 比较线性 OLS 和正则化线性模型(Ridge、Lasso、弹性网络)与非线性机器学习,包括 随机森林、梯度提升和深度前馈神经网络 (MLPs)
    • 深度 MLP:多个全连接层与非线性激活,通过随机梯度下降与正则化和早停止进行训练。
金融机器学习 · 第03讲
  • 关键结果
    • 许多机器学习方法——包括深度网络——在出样本表现上显著超越了传统线性因子模型,无论是统计上还是经济上(Sharpe 比率、投资组合阿尔法)。
    • 当使用完整的大特征集而不是少数“手选”的因子时,改善尤为明显。
  • 为何适用
    • 数据是高维表格 ,具有复杂的、未知的非线性相互作用;深度 MLP 是为这种设定而设计的 通用函数逼近器
    • 该论文提供了一个干净的、大样本基准,说明在经验资产定价中,何时深度和其他机器学习方法能获得回报。
金融机器学习 · 第03讲

Sigmoid 和 Tanh:饱和激活函数

  • 两个经典的激活函数是:
    • Sigmoid: ,输出范围在
    • Tanh: ,输出范围在
  • 优点:
    • 平滑且在所有地方可微。
    • 自然将预激活映射到有界范围,这在建模概率或归一化信号时很有用。
  • 然而,对于大的 ,这两个函数都会 饱和
    • 大时,导数 变得非常小。
    • 在反向传播中,通过许多这样的层乘积的梯度往往会 消失,使深度网络难以训练。
  • 因此,现代深度网络很少在隐层中使用 sigmoid/tanh,除非在如 LSTM 门这样的特定架构中。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

ReLU 及其变体

  • 线性整流单元 (ReLU) 定义为

  • 优点:
    • 对于正的 非饱和的,因此梯度不会像 sigmoid/tanh 那样快速消失。
    • 在实践中,相较于许多深度网络,它计算简单且效果良好。
  • 缺点:
    • 时,导数为零,因此神经元可能会变得“死”,如果它们总是接收负输入。
  • 常见变体试图减轻死神经元的问题:
    • Leaky ReLU: ,其中 为小数。
    • 带参数的 ReLU (PReLU):可学习的负斜率。
  • 在深度 MLP 和 CNN 中,ReLU 及其变体通常是隐层的 默认选择,因为其良好的优化特性。
金融机器学习 · 第03讲

超越 ReLU:平滑和自门控激活函数

  • 几种激活函数扩展了 ReLU,以提高平滑性或自适应性:
    • ELU(指数线性单元):对于正的 行为类似于 ReLU,但对负值使用平滑的指数形式。
    • SELU(缩放 ELU):旨在鼓励某些架构中的自归一化特性。
    • GELU(高斯误差线性单元):通过平滑的门控函数 乘以输入,通常用于现代大模型中。
    • Swish / SiLU,其中门控为 的 sigmoid。
  • 这些函数是 平滑的,在某些设置中通常比普通 ReLU 较好地表现。
  • 在金融应用中,在选择 ReLU 类激活函数时,通常 不如数据质量、正则化和模型验证重要,但理解它们的行为有助于诊断训练问题。
金融机器学习 · 第03讲

损失与训练目标

  • 对于 回归(例如,收益预测):

  • 对于 二元分类(例如,违约/未违约):

    其中
  • 通常添加 正则化

  • 训练问题:

    通过(随机)基于梯度的优化(SGD、Adam 等)解决。
  • 从概念上讲,这与惩罚回归(L02)类似,但具有 更丰富的模型类

金融机器学习 · 第03讲

示例模型

MLP 可用于执行对多种数据类型的分类和回归。我们在下面给出了一些示例。

亲自尝试 通过: https://playground.tensorflow.org

金融机器学习 · 第03讲

直觉与通用逼近

  • MLP 有效地执行 学习的特征变换,一层层地:

  • 隐层单元可以看作是 学习的基函数
    • 在具有基扩展的线性回归中,我们手动选择基函数。
    • 在 MLP 中,基函数是从数据中学习的。
  • 通用逼近定理(非正式):
    • 使用非多项式激活(例如,sigmoid、ReLU)的一个隐层神经网络,具有足够的单元,可以对紧致集上的任何连续函数进行逼近,以任意精度。
    • 深层网络可以比浅层的、非常宽的网络以 更少的参数高效地逼近某些函数
  • 对于金融:
    • 将 MLP 视为条件期望或定价核的灵活非参数估计器,其内部结构可能与经济理论一致 (或不一致)。
金融机器学习 · 第03讲

“深度学习革命”

  • 一些成功的 DNN 故事
    • 自动语音识别 (ASR)
    • ImageNet 图像分类基准:在一年内将错误率从 26% 降低至 16%
  • DNN 使用的“爆炸”
    • 便宜的 GPU(图形处理单元)的可用性
    • 大量标记数据集的增长
  • 高质量的开源 DNN 软件库
金融机器学习 · 第03讲

与生物学的联系

  • McCulloch-Pitts 神经元模型(1943):,其中

    • 输入
    • 输入的连接强度
    • 输入的加权(树突)求和
    • 阈值(动作电位
  • 我们可以将多个这样的神经元组合在一起,以构成 人工神经网络,ANNs

金融机器学习 · 第03讲
  • ANNs 与生物大脑在许多方面不同,包括以下几点:
  • 大多数 ANNs 使用反向传播来修改它们的连接强度,而真实大脑不使用反向传播
    • 没有办法沿着轴突向后发送信息
    • 它们使用局部更新规则来调整突触的强度
  • 大多数 ANNs 严格是前馈的,但真实大脑有许多反馈连接
    • 人们认为这种反馈充当了先验
  • 大多数 ANNs 使用简单的神经元,涉及将加权和通过非线性映射,而真实的生物神经元具有复杂的树突结构,具有复杂的时空动态。
  • 大多数 ANNs 在规模和连接数量上都小于生物大脑
  • 大多数 ANNs 被设计为建模单一功能,而生物大脑是实现不同功能或行为的复杂系统
金融机器学习 · 第03讲
金融机器学习 · 第03讲

训练过程(反向传播):高级步骤

  1. 初始化
    • 初始化权重 (例如,Xavier/He 初始化)
  2. 前向传递
    • 对于每层
      • 计算预激活
      • 计算激活
    • 获取预测 和损失
  3. 反向传递(反向传播)
    • 计算输出处的损失梯度
    • 对于层
    • 计算梯度
  4. 参数更新
    • 使用优化器(例如,SGD、Adam)更新所有参数。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

反向传播的计算图视角

  • 神经网络可以视为 有向无环图(计算图)
    • 节点代表中间变量(例如,预激活 、激活 )。
    • 边代表加法、乘法或应用激活函数等基本操作。
  • 前向传递 中,我们:
    • 从输入遍历图到输出。
    • 计算并存储每个节点的中间值。
  • 反向传递 中,我们:
    • 按逆拓扑顺序遍历图。
    • 使用链式法则计算损失相对于每个节点的梯度。
    • 对于具有多个输出边的节点,梯度是所有下游路径的 贡献总和
  • 现代深度学习框架(PyTorch、TensorFlow)通过 自动微分 实现这一点,自动构建和遍历计算图。
金融机器学习 · 第03讲

优缺点、风险和金融用例

优缺点

方面 优点 缺点 / 风险
灵活性 通用逼近器,丰富的非线性 小样本容易过拟合
数据格式 对表格、横截面数据表现良好 没有内置的序列/图的归纳偏见
优化 基于 SGD 的训练可扩展到大数据集 非凸的,局部最小值、鞍点
可解释性 可以通过架构嵌入经济约束 比线性/树模型难以解释
  • 典型的金融应用:
    • 横截面资产定价:根据许多特征和宏观信号预测预期收益。
    • 信用风险:非线性违约概率模型。
    • 风险管理:将许多风险因子映射到投资组合损失分布中。
  • 在实践中,MLP 通常是尝试更专业化架构之前的 基线深度模型
金融机器学习 · 第03讲

总结

  • MLP 是适用于结构化表格数据的 经典深度学习架构
  • 通过堆叠多个仿射变换和非线性激活来推广线性模型。
  • 训练目标 结合数据拟合损失(平方误差、交叉熵)与正则化,通过随机梯度方法优化。
  • 直观地,隐层实现了 学习的基扩展 和表示学习。
  • 在金融中,MLP 对于 高维、非线性预测问题 有效,尤其在我们有相对较大的数据集时。
  • 限制包括潜在的 过拟合可解释性下降,以及缺乏序列或网络的归纳偏见,这推动了 CNN、RNN 和 GNN 的发展。
flowchart LR A[公司特征] & B[宏观] --> C(MLP) C --> D[预测的预期收益] D --> E[投资组合排序] %% 简单的样式增强 style C fill:#e1f5fe,stroke:#0277bd style E fill:#fff3e0,stroke:#ef6c00
金融机器学习 · 第03讲

Application · Autoencoder Asset Pricing Models (Gu, Kelly & Xiu, 2021, JoE)

  • 问题
    • 构建一个 资产定价因子模型,无需假设线性因子或线性负荷:学习潜在市场状态及其对大规模收益的(可能是非线性的)影响。
flowchart LR %% 定义节点样式 classDef data fill:#e3f2fd,stroke:#1565c0,stroke-width:2px; classDef net fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,rx:5,ry:5; classDef latent fill:#fff3e0,stroke:#ef6c00,stroke-width:2px,stroke-dasharray: 5 5; %% 节点定义 Input["输入向量 Rt"]:::data Encoder[["编码器(压缩)"]]:::net %% 潜变量节点设计 Z_t["潜在向量zt(非线性因子)"]:::latent Decoder[["解码器(重建)"]]:::net Output["重建 Rt"]:::data %% 流程连接 Input ==> Encoder Encoder ==> Z_t Z_t ==> Decoder Decoder ==> Output
  • 模型 / 算法
    • 在收益面板上使用深度 自编码器
      • 编码器 : 将高维资产收益 映射到低维潜在因子
      • 解码器 : 从 重建 ,允许 非线性、特定资产的加载函数
    • 通过最小化重构误差与正则化进行训练;与 PCA 和线性因子模型进行比较。
金融机器学习 · 第03讲
  • 关键结果
    • 自编码器因子可以解释大量收益协方差和定价错误,并能捕获线性 PCA 基于因子所无法捕获的结构。
    • 学习的潜在因子可以事后与经济解释模式相关联,但不受标准线性形式的约束。
  • 为何适用
    • 这个任务本质上是 收益的非线性维度降低 → 自编码器的经典用例。
    • 自编码器将传统线性因子模型视为特例,并为 VAEs 和其他生成潜在变量模型提供一种自然的桥梁。
金融机器学习 · 第03讲

Application · Deep Learning in Asset Pricing (Chen, Pelger & Zhu, 2023, MS)

  • 问题
    • 开发一个 统一框架,在其中深度学习模型从许多特征中建模随机贴现因子(SDF)/预期收益,并研究何时/为何深度架构优于经典模型。
flowchart LR %% 节点定义 Input["公司特征
+
宏观因素"] DeepNet[["深度神经网络
(估计)"]] Output["SDF (Mt+1)
/
预期收益"] Condition["定价误差
/
矩条件"] %% 流程连接 Input ==> DeepNet DeepNet ==> Output Output --> Condition %% 样式美化 %% 蓝色:输入数据 style Input fill:#e3f2fd,stroke:#1565c0,stroke-width:2px %% 紫色:黑箱/深度网络 style DeepNet fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,rx:5 %% 绿色:核心输出 (SDF) style Output fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px %% 红色/橙色:误差与检验 style Condition fill:#ffebee,stroke:#c62828,stroke-width: 2px,stroke-dasharray: 5 5;
  • 模型 / 算法
    • 使用广泛的特征集进行训练,从金融数据中生成回归估计 SDF,并从经典的随机审查中计算出相应的矩条件(无风险贴现)。
    • 物流回归和其他线性模型很自然地适用于此,但深度学习提供了更大的灵活性,能捕捉到复杂和非线性条件的变化。
金融机器学习 · 第03讲
  • 关键结果
    • DNN(深度神经网络)显著优于经典的线性估计方法,尤其在面对宽幅特征集时(较大的 )。
    • 定价误差并且 SDF 模型可以通过更复杂的特征构建进行有效捕捉。
  • 为何适用
    • 由于深度学习是以灵活的方式自动提取和表示特征,因此可在处理不仅是线性因子模型情况下具有增强的非线性性上提供机会。
金融机器学习 · 第03讲

第 3 部分 · 卷积神经网络 (CNN)

动机

  • 许多金融输入是 有序网格形状 的:收益曲线跨到期、限价单簿跨价格水平、短期特征的时间序列。
  • 完全连接的 MLP 忽略了这种结构,将所有输入维度视为可交换。
  • CNN 引入了一种架构的 归纳偏见
    • 局部连通性:每个单元仅查看局部邻域。
    • 权重共享:相同的过滤器在不同位置应用。
    • 结果,CNN 专门学习 局部模式和翻译不变特征
  • 对于金融而言,这使得 CNN 自然适合于:
    • 检测期限结构或波动率表面的局部形状。
    • 从高频信号或堆叠的微观结构特征中提取模式。
  • 我们将主要关注适用于时间序列的 一维卷积,如金融数据。
金融机器学习 · 第03讲

一维卷积公式

  • 考虑一个一维输入序列 (例如,时间序列中的收益或特征)。
  • 一维卷积使用过滤器 和偏置 (针对有效位置 )计算:

  • 使用 多个过滤器,我们获得特征图:

  • CNN 层:
    • 卷积(或实现中的交叉相关)。
    • 非线性 (例如,ReLU)。
    • 可选的池化(在小窗口中最大/平均)以聚合和下采样。
  • 与 MLP 的关键区别:相同的过滤器 共享 的,在所有位置 上。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

一维卷积作为过滤

  • 一维卷积层可以解释为对时间序列或有序序列应用数字滤波器
  • 示例滤波器:
    • 移动平均滤波器 平滑局部波动,强调 低频趋势
    • 差分滤波器 或二阶差分 突出 变化和曲率,起到离散导数的作用。
  • 在 CNN 中,过滤器权重是 从数据中学习 的,而不是手工设计:
    • 一些过滤器可能类似于趋势检测器。
    • 其他可能检测突变、波动性爆发或价差中的局部模式。
  • 这种“学习过滤”的观点在思考金融时间序列时很有用:
    • 卷积层可以自动学习提取 趋势、季节性和异常模式,这些模式对收益或风险有预测性。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

步幅、填充和卷积类型

  • 步幅 控制我们每一步移动过滤器的距离:
    • 步幅为 1:在每个位置评估。
    • 步幅 :通过跳过位置来下采样序列,减少输出长度。
  • 填充 控制我们如何处理边界:
    • “有效”卷积:无填充;输出比输入短。
    • “相同”卷积:填充输入,使输出与输入大致相同长度。
    • “完全”卷积:进行更广泛的填充,使滤波器在极端位置也可以完全重叠。
  • 在金融应用中:
    • 使用 相同填充和步幅为 1 ,保留时间对齐,方便用于预测任务。
    • 较大的步幅可用于 粗取时间分辨率,但可能丢失精细的信息。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

直觉与架构

  • 直觉:
    • 滤波器充当 模式检测器,扫描序列。
    • 较低层次检测局部模式(例如,短期波动、局部期限结构形状)。
    • 较高层次结合这些模式形成更抽象的模式。
flowchart LR %% ---- 节点定义 ---- Input["Input
多通道时间序列"] Conv1["Conv1
一维卷积
(C1通道)"] Conv2["Conv2
一维卷积
(C2通道)"] Flat["Flatten
(时间 × 通道 → 向量)"] FC["全连接层
(Fully Connected)"] Output["Output
预测 / 得分"] %% ---- 数据流 ---- Input --> Conv1 --> Conv2 --> Flat --> FC --> Output %% ---- 样式定义 ---- %% 输入 / 输出:蓝色 classDef io fill:#e3f2fd,stroke:#1565c0,stroke-width:2px; %% 卷积层:紫色 classDef conv fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px; %% 展平层:浅绿色 classDef flat fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px; %% 全连接层:橙色 classDef fc fill:#fff3e0,stroke:#ef6c00,stroke-width:2px; %% ---- 应用样式 ---- class Input,Output io; class Conv1,Conv2 conv; class Flat flat; class FC fc;
  • 一个简单的1D CNN架构用于金融时间序列:
    1. 输入:特征序列
    2. 一个或多个小核的卷积层(例如,宽度 3–5)。
    3. 非线性和可能的池化。
    4. 展平并输入 MLP 进行最终预测(回归/分类)。
  • 与 MLP 比较:
    • 对于相同输入长度,参数更少(由于共享)。
    • 内建假设:邻近位置比远离的更相关

金融机器学习 · 第03讲

优缺点与金融用例

优缺点

方面 优点 缺点 / 风险
归纳性 捕捉局部模式,平移不变性 如果没有局部结构则不太适用
效率 比稠密层更少的参数 架构选择可能是临时的
数据类型 在序列和网格上表现良好 可能需要许多过滤器/层
可解释性 过滤器有时可解释为“图案” 仍然不如线性模型透明
  • 面向金融的应用:
    • 期限结构(收益率、隐含波动率)被视为跨到期的一维信号。
    • 高频数据:在短时间范围内的价格/量/失衡。
    • 限价单簿:二维结构(价格水平 × 时间),可以用一维或二维卷积进行处理。
  • CNN 通常作为 前端特征提取器,在其上方搭配 MLP。
金融机器学习 · 第03讲

从特征图到特征图

  • CNN 在 特征图的张量 上操作:
    • 输入到 1D CNN 层可以视为形状为 的张量,其中 为序列长度, 为通道数(每个时间的特征)。
    • 卷积层包含形状为 的过滤器,其中 为卷积核宽度。
  • 如果我们有 个不同的过滤器,输出是形状为 的张量:
    • 每个过滤器生成一个特征图。
    • 取决于卷积核宽度、步幅和填充。
  • 堆叠卷积层:
    • 较早的层检测简单的局部模式。
    • 更深的层将它们组合成更抽象的表示。
  • 这种“特征图到特征图”的视角与金融中的因子模型平行,但这里的因子是 非线性且学习得来的,而不是事前指定的线性组合。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

池化层

  • 池化层通过 最大平均 操作聚合局部邻域的特征:
    • 最大池化:在窗口内取最大值。
    • 平均池化:在窗口内取平均值。
  • 目的:
    • 引入对输入中小位移或噪声的 不变性
    • 降低空间或时间分辨率,从而减少深层中的参数和计算量。
  • 在金融时间序列中:
    • 池化可以在短期内聚合信息,聚焦于 最强的局部信号 或平均行为。
    • 然而,过度池化可能会移除有用的细粒度模式。
  • 池化通常与卷积结合,并随后连接全连接层以进行最终预测。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

历史 CNN 架构(概要)

  • 几个影响深远的 CNN 架构塑造了现代深度学习:
    • LeNet-5:用于数字识别的早期 CNN,展示了卷积和池化的力量。
    • AlexNet:训练在 GPU 上的更深层网络,推广了 ReLU 和大规模图像分类。
    • Inception (GoogLeNet):使用不同大小的并行过滤器,通过 卷积减少参数数量。
    • ResNet:引入 残差连接 来训练非常深的网络。
  • 本课程不专注于图像基准,但:
    • 这些架构激励了许多设计模式(例如,深堆叠、残差块),现在也应用于 时间序列和表格数据
    • 残差思想特别相关于改善深度金融模型中的优化(见第 8 部分)。
金融机器学习 · 第03讲
flowchart LR %% 整体流向:左到右 (时间轴) %% 1. LeNet (1998) subgraph LeNet_Era [1998: LeNet] direction TB L1( ) --> L2( ) end %% 2. AlexNet (2012) subgraph Alex_Era [2012: AlexNet] direction TB A1( ) --> A2( ) --> A3( ) --> A4( ) end %% 3. Inception (2014) subgraph Inception_Era [2014: Inception] direction TB I1( ) --> I2( ) & I3( ) --> I4( ) end %% 4. ResNet (2015) subgraph ResNet_Era [2015: ResNet] direction TB R1( ) --> R2( ) --> R3( ) %% 跳跃连接 R1 -.-> R3 end %% 连接各个时代 LeNet_Era ==> Alex_Era ==> Inception_Era ==> ResNet_Era %% ======================= %% 样式定义 (修复版) %% ======================= classDef box width:20px,height:10px,rx:2,ry:2,fill:#90a4ae,stroke:none; classDef deep width:20px,height:10px,rx:2,ry:2,fill:#5c6bc0,stroke:none; classDef width width:10px,height:10px,rx:5,ry:5,fill:#ab47bc,stroke:none; classDef res width:20px,height:10px,rx:2,ry:2,fill:#ef5350,stroke:none; %% 应用样式 (确保每行独立,无行尾注释) class L1,L2 box; class A1,A2,A3,A4 deep; class I1,I2,I3,I4 width; class R1,R2,R3 res; %% 红色虚线样式 linkStyle 11 stroke:#ef5350,stroke-width:2px,stroke-dasharray: 3 3; %% 子图样式 style LeNet_Era fill:none,stroke:none,color:#666 style Alex_Era fill:none,stroke:none,color:#666 style Inception_Era fill:none,stroke:none,color:#666 style ResNet_Era fill:none,stroke:none,color:#666
金融机器学习 · 第03讲

总结

  • CNN 引入了 局部感受野参数共享,使它们对具有空间或时间结构的数据更有效。
  • 一维卷积对于 时间序列类金融输入 是自然的,其中临近的时间点或到期日有强关联。
  • 典型架构堆叠多个卷积层,然后使用全连接层进行最终预测。
  • CNN 可以看作是 学习的过滤器,检测金融信号中的重复模式。
  • 限制出现在问题没有明确的局部模式时,或长程依赖占主导地位的情况下,这激励了 RNN 和注意机制的使用。
  • 更广泛地说,CNN 说明了 网络结构如何影响学习的方向:通过卷积结构,模型偏向于学习局部、翻译不变的特征。
金融机器学习 · 第03讲
  • 问题
    • 通过让模型发现预测收益的价格模式,而不是预先指定动量或反转规则,重新审视 基于趋势的可预测性
    • 使用股票级 价格图 作为输入,测试机器学习的模式是否优于标准趋势信号。
flowchart LR %% =========================== %% 节点定义 %% =========================== %% 1. 原始数据 RawData["价格系列
+ 成交量
(1D 数据)"] %% 2. 图像化 (核心步骤) %% 使用 {{ }} 形状代表“准备/转换”过程 ImgGen{{"时间序列
转直接图像"}} %% 图像数据的抽象表示 ImgData[("二维图像
(例如 GAF/RP)")] %% 3. 模型 %% 使用 [[ ]] 代表黑箱/计算密集型模型 CNN[["二维 CNN
(空间模式)"]] %% 4. 预测信号 %% 使用 (( )) 代表单个数值输出 Prob(("P(上涨)
概率")) %% 5. 金融应用 Sorts["分位数排序
(多头/空头)"] Perf["表现
(夏普比率 / 阿尔法)"] %% =========================== %% 流程连接 %% 数据流:粗箭头 RawData ==> ImgGen ImgGen ==> ImgData ImgData ==> CNN CNN ==> Prob %% 策略流:细箭头 Prob --> Sorts Sorts --> Perf %% =========================== %% 样式美化 %% 原始数据:蓝色 style RawData fill:#e3f2fd,stroke:#1565c0,stroke-width:2px %% 图像转换部分:青色/视觉感 style ImgGen fill:#e0f7fa,stroke:#006064,stroke-dasharray: 5 5 style ImgData fill:#b2ebf2,stroke:#006064,stroke-width:2px %% 深度学习:紫色 style CNN fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,rx:5 %% 信号:黄色/高亮 style Prob fill:#fff9c4,stroke:#fbc02d,stroke-width:2px %% 回测应用:绿色 style Sorts fill:#e8f5e9,stroke:#2e7d32 style Perf fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
  • 模型 / 算法
    • 将最近的日常 OHLC 价格、成交量和移动平均(5、20、60 天)的数据转换为 黑白图像(OHLC 杆 + MA 线 + 成交量柱),并进行标准化的垂直缩放。
    • 训练 二维 CNN 分类未来 5/20/60 天的收益是否为正,使用交叉熵损失和标准 CNN 组件(卷积–激活–池化、批归一化、丢弃)。
金融机器学习 · 第03讲
  • 关键结果
    • 按照 CNN “上涨”概率将股票分成分位数的策略,取得了非常高的超出样本的夏普比率(例如,等权重的每周多头–空头约为 ≈7,价值加权约为 1.5),远高于动量或短期反转基准备。
    • CNN 预测与现有技术指标和公司的特征只存在微弱的相关性;控制这些因素后,以 CNN 为基础的信号仍然保持强预测性。
    • 模式在不同时间和国际市场上转移良好:美国训练的 CNN 直接应用于海外,仍能产生强夏普比率,通常优于本地训练模型。
  • 为何在这里适用
    • 价格图本质上是 类似图像的,具有局部几何形状、波动范围和联合价格–成交量结构;CNN 适用于这种 二维局部/平移不变 的特征。
    • 本文展示了基于图像的 CNN 提供了一种严格、可扩展的技术分析实现,识别超出了简单动量/反转的模式。
金融机器学习 · 第03讲

Case Study · Charting by Machines (Murray, Xia & Xiao, 2024, JFE)

  • 问题
    • 测试弱形式市场效率,看看 仅仅 12 个月的价格路径信息(粗略的“图表”)是否在 U.S. 股票收益的横截面中含有经济上有意义的可预测性(1927–2022)。
flowchart LR %% --- 节点定义 --- %% 1. 输入层 Input["输入序列
(长度 = 12)"] %% 2. CNN 部分 (特征提取) subgraph Spatial_Block [空间特征提取] direction TB Conv["一维卷积层
(滑动滤波器)"] Pool["(可选)
池化"] end %% 3. 中间特征序列 (桥梁) %% 形状变化示意:长度变短,维度变深 FeatSeq[("特征序列
(抽象的时间序列)")] %% 4. LSTM 部分 (时序建模) LSTM[["LSTM 层
(序列处理)"]] %% 5. 输出 Output(("输出
预测")) %% --- 连接 --- Input ==> Conv Conv --> Pool Pool ==> FeatSeq FeatSeq ==> LSTM LSTM --> Output %% --- 样式美化 --- %% 输入:蓝色 style Input fill:#e3f2fd,stroke:#1565c0,stroke-width:2px %% CNN 块:紫色系,代表计算/提取 style Conv fill:#f3e5f5,stroke:#8e24aa style Pool fill:#f3e5f5,stroke:#8e24aa,stroke-dasharray: 5 5 style Spatial_Block fill:#fafafa,stroke:#bdbdbd,stroke-dasharray: 5 5 %% 特征序列:橙色,代表中间状态的数据 style FeatSeq fill:#fff3e0,stroke:#ef6c00,stroke-width:2px %% LSTM:绿色,代表记忆/时序 style LSTM fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,rx:5 %% 输出:红色/高亮 style Output fill:#ffebee,stroke:#c62828,stroke-width:2px
  • 模型 / 算法
    • 输入:12个月的累积超额收益(形成一年价格路径)。
    • 架构:CNN + LSTM (CNNLSTM) – CNN 在 12 个月路径上学习局部形状过滤器;LSTM 捕捉这些形状随时间如何相互作用。
    • 目标:下一个月超额收益的标准化排名;损失:均方误差,使用均等的股票和时间权重,关注横截面预测。
金融机器学习 · 第03讲
  • 关键结果
    • 按照 CNNLSTM 预测 对股票进行分位数排序,获得 D10–D1 等权重多头–空头约为 ≈1.08% 每月(t≈5.5,夏普≈0.78),对 1963–2022 的数据;在最大的 500 只股票中的差距约为 ≈0.72% 每月(t≈4.4)。
    • 相对 CAPM、FF、Carhart、FF5 和 Q 因子,阿尔法仍然很大;超过一半的变化和预测能力来自 跨月的非线性相互作用,不是通过任何线性或简单非线性函数能够解释的。
    • 预测关系在时间上非常稳定;甚至仅仅使用1963年前的数据训练的模型在2015-2022年表现依然强劲。
  • 为何在这里适用
    • 12 点路径是一个一维序列,具有 局部形状 + 顺序依赖性,因此自然适合 CNN 滤波器加上递归聚合。
    • 该研究显示,机器学习的图表模式包含了超出动量、反转和已知技术指标的信息,为资产定价设置中技术分析的严格测试提供了支持。
金融机器学习 · 第03讲

第 4 部分 · 循环神经网络 (RNN, LSTM, GRU)

动机

  • 许多金融问题本质上是 顺序性 的:
    • 资产收益、波动性、流动性和订单流随着时间的推移而演变。
    • 宏观变量、信用指标和风险度量遵循动态路径。
  • 标准的 MLP 和 CNN 在任意序列长度间不保持显式状态。
  • RNN 引入了 递归结构
    • 隐藏状态 和新输入 中递归更新。
    • 这使得网络能够 在时间上积累信息 并根据历史条件进行预测。
  • 换句话说,该架构编码了 顺序和时间依赖性的重要性
  • LSTM 和 GRU 通过门控机制进一步完善这一理念,更好地捕捉金融时间序列中的中期和长期依赖性。
金融机器学习 · 第03讲

从前馈到时间延迟再到递归

  • 前馈网络 (FFNNs) 接受固定大小的输入向量并产生输出,不具备显式的时间概念。
  • 对于序列数据,简单的扩展是将 滞后时间值 输入到 FFNN 中:
    • 时间延迟神经网络 (TDNNs) 或 NARX 风格模型使用 作为输入。
    • 这在概念上类似于自回归模型,但具有非线性变换。
  • 限制:
    • 滞后数 必须 手动选择,且模型不能轻松适应不同的序列长度。
    • 长范围依赖需要非常大的 ,导致高维输入。
  • 循环神经网络 (RNNs) 通过维护一个 隐藏状态,随着时间推移而变化,提供了一种捕捉历史的更灵活方法。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

RNN 基本公式

  • 原始 RNN(多对一设置):

  • 其中:
    • 是时刻 的输入。
    • 是隐藏状态。
    • 通常是 tanh 或 ReLU。
    • 取决于任务(回归的身份,分类的逻辑/softmax)。
  • 网络在训练时是 随时间展开 的,反向传播通过时间 (BPTT) 计算所有参数的梯度。
  • 损失函数通常是时间或序列的平均值:

金融机器学习 · 第03讲

展开 RNN 和通过时间反向传播

  • 在训练过程中,我们通常 展开 一个 RNN 跨越时间步:
    • 循环单元在 处复制,在时间上共享参数。
    • 这产生一个深度网络,深度等于序列长度。
  • 通过时间反向传播 (BPTT):
    • 我们通过在展开的网络上应用反向传播计算梯度。
    • 在时刻 的梯度依赖于 所有未来时间步 的错误,通过循环连接。
  • 计算影响:
    • 内存使用随着序列长度增加而增长,因为我们必须存储中间状态。
    • 通常使用截断 BPTT,梯度仅在固定数量的步骤中传播。
  • 从概念上讲,RNN 的训练面临与非常深的前馈网络类似的挑战,但沿着 时间维度
金融机器学习 · 第03讲
金融机器学习 · 第03讲

RNN 中的消失与爆炸梯度

  • 在 RNN 中,相对于早期时间步的梯度涉及重复地乘以递归过渡的雅可比矩阵:

  • 如果这些雅可比矩阵的最大奇异值:
    • 小于 1,随着 增长,梯度倾向于 消失
    • 大于 1,梯度可能 爆炸,导致数值不稳定。
  • 后果:
    • 原始 RNN 难以学习 长期依赖性,主要关注最近的信息。
  • 缓解策略:
    • 架构变化(LSTM、GRU)引入更好的梯度流。
    • 梯度裁剪来控制爆炸梯度。
    • 小心初始化和激活选择。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

Application · Forecasting the Equity Premium: Mind the News! (Adämmer & Schüssler, 2020, RoF)

  • 问题
    • 基于新闻的信息 是否能改善对美国股票溢价的月度预测,超越标准的宏观金融预测?
    • 新闻的 时变信息流 相对于传统预测变量的重要性如何?
flowchart LR %% =========================== %% 1. 公共前端:数据与向量化 %% =========================== News["新闻文本
&
市场事件"] Embed{{"嵌入
(BERT / Word2Vec)"}} %% =========================== %% 2. 传统路径 (聚合) %% =========================== Agg["按月聚合
(求和/平均向量)"] ML["标准机器学习模型
(岭回归 / RF / OLS)"] %% =========================== %% 3. 深度序列路径 (高级) %% =========================== subgraph DeepSeq [高频/序列方法] direction TB %% 这一层代表不压缩,直接处理序列 Note[("保留序列
无聚合")] DL_Model[["RNN / LSTM

注意力 (Transformer)"]] end %% =========================== %% 4. 最终输出 %% =========================== Target(("股票溢价
预测")) %% =========================== %% 连接逻辑 %% =========================== %% 主流程 News ==> Embed %% 路径 A:传统方法 (实线) Embed --> Agg Agg --> ML ML --> Target %% 路径 B:深度方法 (虚线) %% 从嵌入直接跳过聚合 Embed -.-> Note Note -.-> DL_Model DL_Model -.-> Target %% =========================== %% 样式美化 %% =========================== %% 文本数据:黄色 style News fill:#fff9c4,stroke:#fbc02d,stroke-width:2px %% 嵌入:青色 style Embed fill:#e0f7fa,stroke:#006064 %% 传统路径节点 style Agg fill:#e1bee7,stroke:#7b1fa2 style ML fill:#e1bee7,stroke:#7b1fa2 %% 深度路径 (虚线框区域) style DeepSeq fill:none,stroke:#f44336,stroke-width:2px,stroke-dasharray: 5 5 style DL_Model fill:#ffcdd2,stroke:#d32f2f,rx:5 style Note fill:#ffebee,stroke:none,color:#d32f2f %% 目标:绿色 style Target fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
金融机器学习 · 第03讲
  • 模型 / 算法

    • 从大型新闻数据库构建丰富的 基于新闻的预测变量(计数、情感、主题指标、意外度量),与月度频率对齐。
    • 将传统预测回归与灵活的机器学习方法(例如,基于树的模型、正则化回归)进行比较,后者同时结合标准预测变量和新闻变量。
  • 关键结果

    • 基于新闻的变量显著 改善超出样本的预测,相对于仅使用宏观和金融预测的模型。
    • 增益在评估窗口和不同机器学习规格中都很稳健,突显了 从新闻提取的高维信息流 的增量价值。
  • 为何激励深度序列模型

    • 新闻以 时间顺序排列的文本和事件序列 的形式到达,可能具有持续性、衰减及与宏观金融状态的相互作用。
    • 当前的实现通常将这一丰富序列压缩为静态的月度特征; RNNs/LSTMs 和基于注意力的模型 是捕捉新闻的时序、顺序和累积如何影响风险溢价的自然工具。
金融机器学习 · 第03讲

LSTM 和 GRU 公式(核心方程)

  • LSTM 单元(核心思想;为简洁省略偏置):

  • GRU 单元(简化):

  • 门控决定 忘记什么、更新什么、输出什么,帮助捕捉长期依赖。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

LSTM 单元直觉

  • 长短期记忆(LSTM)单元引入了一个 单元状态 及多个控制信息流的门:
    • 遗忘门 :决定保留 中有多少内容。
    • 输入门 和候选 :确定从 写入单元的多少新信息。
    • 输出门 :控制有多少更新的单元状态被暴露为隐藏状态
  • 关键思想:
    • 单元状态提供一个 高速公路,信息和梯度可以跨越多个时间步流动,门控调节更新。
    • 这有助于保留长期信息,同时允许网络忘记不相关的历史。
  • 在金融序列中,LSTMs 可以学习“记住”重要的状态或事件,同时“忘记”噪声。
金融机器学习 · 第03讲

GRU 单元直觉

  • 门控循环单元(GRU)通过合并一些门和移除显式单元状态来简化 LSTM:
    • 更新门 :控制保留多少之前的隐藏状态
    • 重置门 :控制计算候选状态时使用的过去信息有多少。
  • 隐藏状态更新为:

所以更新门在旧状态和新候选之间插值。

  • 直觉:
    • GRU 的参数更少,结构比 LSTM 简单,通常在实践中性能相似。
    • 它们提供了一个 学习的平衡,在记住过去和整合新观察之间。
  • 在金融中,当模型大小和训练速度成为关注时,GRU 可能更具吸引力。
金融机器学习 · 第03讲

堆叠和双向 RNN

  • 堆叠 RNN
    • 在彼此之上使用多个递归层。
    • 较低层捕捉更简单的短期模式;较高层捕捉更加抽象和长期的动态。
  • 双向 RNN
    • 同时处理顺序和逆序。
    • 每个时间步的最终表示连接来自过去和未来的信息。
  • 在离线设置中(例如,基于历史窗口的风险评估),双向模型可以利用 整个序列
  • 在在线预测中(例如,交易),只能使用过去的信息,因此通常使用 单向 架构。
  • 更深和双向的 RNN 可以改善性能,但会增加计算成本和过拟合的风险。
金融机器学习 · 第03讲

直觉、优缺点、金融用例

直觉

  • 隐藏状态 作为 过去信息的压缩记忆
  • 原始 RNN 在理论上可以表示复杂的序列函数,但在多个时间步之间的梯度传播困难。
  • LSTM/GRU 添加了梯度可以更容易流动的路径(通过单元状态 或门控更新),减少了消失梯度的情况。

优缺点

方面 优点 缺点 / 风险
序列性 自然适用于时间序列和序列 难以在时间上进行并行化
记忆性 可以捕捉中期/长期依赖 对于非常长程的依赖仍然存在困难
灵活性 许多变体(堆叠的、双向的) 有许多超参数,调优困难
金融机器学习 · 第03讲

金融用例:

  • 基于过去时间序列的 收益、波动性或风险度量 的预测。
  • 建模 订单簿动态 和执行成本概况。
  • 宏观金融变量 的多步预测。
金融机器学习 · 第03讲

总结

  • RNN 是为 序列数据 设计的,隐藏状态随着新输入的到达而随时间演变。
  • 原始 RNN 概念简单,但对于长序列的优化问题较多。
  • LSTM 和 GRU 引入了 门控机制 来帮助保留或遗忘信息,从而改善中到长期依赖的建模。
  • 在金融中,基于 RNN 的架构是任何以 时间动态历史依赖性 为核心的自然选择。
  • 与 CNN 相比,RNN 强调 时间上有序的依赖性,而不是固定网格中的局部模式;再次,网络结构编码了学习什么样的规律最容易。
金融机器学习 · 第03讲

第 5 部分 · 注意机制(Transformer 之前)

动机

  • 即使是 LSTM/GRU 在处理以下情况时也可能面临困难:
    • 序列非常长。
    • 在时刻 相关的信息分散在远离的时间步中。
  • 注意机制使模型能够在做预测时选择性地专注于输入序列(或集合)的某些部分。
  • 我们关注 Transformer 之前的注意
    • 带有注意的编码器–解码器框架(Bahdanau风格,Luong风格)。
    • 对编码器隐藏状态的全局注意。
  • 在金融中,注意的概念在预测结果时是有用的,尤其是在某些时间间隔或事件特别具有信息量时(例如,危机时期、公告、政权转变)。
金融机器学习 · 第03讲

注意基本公式

  • 假设我们有编码器隐藏状态 来总结一个序列(例如,来自 RNN)。
  • 对于解码器状态 ,注意计算:
    1. 分数

      其中 是一个学习的评分函数(例如,点积、小型 MLP)。
    2. 通过 softmax 计算 注意权重

    3. 作为加权和的 上下文向量

  • 然后上下文 结合,以产生时刻 的输出。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

直觉与变体

  • 直觉:
    • 注意机制允许模型在做预测时回顾所有编码器状态并分配相关性权重,而不是将所有过去信息压缩为一个单一向量。
    • Softmax 确保权重为正且总和为 1,这可以视为对位置的概率分布
  • 变体:
    • 加性注意(Bahdanau):
    • 乘法/点积注意(Luong):
    • 全局与局部注意
      • 全局:对所有位置进行关注。
      • 局部:关注某个窗口或子集。
  • Transformer 之前的注意机制通常 位于 RNN 之上,而不是作为独立的序列模型。
金融机器学习 · 第03讲

优缺点与金融应用

优缺点

方面 优点 缺点 / 风险
长程依赖性 更好地处理长程依赖性 增加复杂性和参数
可解释性 权重 可以可视化 不总是完全具有因果性 / 可解释性
灵活性 支持 RNN 编码器/解码器、集合等 仍然依赖于序列长度
  • 面向金融的应用:
    • 当预测风险或收益时,聚焦于 重要的历史窗口(例如,危机期间、最近冲击)。
    • 通过对其表示进行注意,结合多个来源的顺序信息(例如,不同的时间范围、不同的市场)。
    • 尽管现代实践通常使用基于 Transformer 的自注意,但 Transformer 之前的注意机制 已经阐明了模型如何 自适应地加权过去的信息
金融机器学习 · 第03讲

示例:具有注意的序列到序列

  • 在标准的编码器–解码器设置中:
    • 一个 编码器 RNN 读取输入序列并生成隐藏状态
    • 一个固定大小的摘要(例如,最后一个隐藏状态)传递给 解码器 RNN,以生成输出。
  • 这个瓶颈对于长或信息丰富的序列可能是问题。
  • 添加注意:
    • 在每个解码步骤中,解码器计算所有编码器状态的注意权重并形成上下文向量
    • 输出取决于当前解码器状态和
  • 直观上,注意机制允许模型在生成每个输出时 回顾 输入序列的不同部分。
  • 在金融中,可以利用类似的思想根据长历史窗口进行预测,同时关注 相关子时期(例如,危机期间)。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

总结

  • 注意机制增强了序列模型(通常是 RNN)具备 选择性关注 输入不同部分的能力。
  • 技术上,注意计算“查询”状态与一组“键–值”状态之间的相似性分数,并将其转化为权重,用于形成上下文向量。
  • Transformer 之前的注意机制出现在编码器–解码器架构中,并且仍然是设计处理 长且复杂序列 的金融模型的有用概念工具。
  • 在后面的讲座中(关于大数据和大型语言模型),我们将重新审视注意机制在 Transformer 中的应用;这里我们专注于其 核心思想和 Transformer 之前的形式
金融机器学习 · 第03讲

第 6 部分 · 生成模型:VAE 和 GAN

动机

  • 到目前为止,我们关注的是 给定输入预测标签 的模型。
  • 生成模型则旨在 建模数据分布 本身,并生成新的现实样本:
    • 用于风险管理和压力测试的情景生成。
    • 用于回测或稳健性分析的合成数据。
  • 深度生成模型还执行 表示学习
    • 变分自编码器(VAE)学习低维 潜变量 来总结金融状态。
    • 生成对抗网络(GAN)训练一个判别器,该判别器隐式学习特征,以区分典型和非典型市场条件。
  • 因此,这些模型在金融中扮演着 双重角色
    • 它们 生成 与历史数据一致的可行场景。
    • 它们学习 复杂联合动态的丰富内部表示,这些表示可以用于下游任务。

金融机器学习 · 第03讲

VAE 公式(核心思想)

  • 假设有一个潜变量模型:

    其中 通常是标准正态分布, 是一个神经网络解码器。
  • 目标:最大化边际似然 ,但由于对 的积分,通常是不可解的。
  • 引入一个 编码器 (近似后验),并优化 ELBO

  • 使用 重参数化技巧

    这样可以进行基于梯度的优化。
金融机器学习 · 第03讲

VAE 关键要点

  • VAE 假设一个潜变量模型 ,并通过编码器 近似不可解的后验。
  • 训练最大化一个变分下界(ELBO),权衡:
    • 通过 实现重建质量。
    • 通过 实现正则化。
  • 重参数化技巧使得基于梯度的优化成为可能。
  • 编码器计算金融观测的 低维潜表示(例如,收益曲线、市场状态、投资组合),即使不从解码器中采样也可以使用。
  • 因此,VAE 提供了生成情景的 生成模型 和用于 非线性降维 和表示学习的工具。
金融机器学习 · 第03讲

GAN 公式(核心思想)

  • GAN 由以下部分组成:
    • 生成器 将噪声 映射为合成样本
    • 判别器 输出 是真实的概率。
  • 原始的最小最大目标:

  • 直觉:
    • 判别器学习区分真实样本与生成样本。
    • 生成器学习 愚弄 判别器,生成现实样本。
  • 许多变体改善了稳定性(Wasserstein GAN,梯度惩罚),但在这里我们保持基本概念。
金融机器学习 · 第03讲

GAN 关键要点

  • GAN 建立了生成器和判别器之间的双人游戏:

    • 生成器 将噪声映射为合成样本。
    • 判别器 尝试区分真实和生成的样本。
  • 最小最大目标鼓励生成器使真实数据分布一致,判别器成为强大的分类器。

  • 实际训练使用变体(例如,Wasserstein GAN)以提高稳定性,减少模式崩溃。

  • 在金融中,GAN 可以生成现实的回报、波动性或收益曲线的联合情景,用于压力测试和数据增强。

  • 判别器还充当 表示学习器:其内部层学习区分在市场中典型与非典型模式的特征,这些特征有时可以重用于风险监控或异常检测。

金融机器学习 · 第03讲

优缺点与金融应用

优缺点

模型 优点 缺点 / 风险
VAE 概率性、显式潜在结构 重建可能过于“平滑”
GAN 清晰、现实的样本 训练不稳定、模式崩溃
  • 金融应用:
    • 情景生成:模拟在不同状态下合理的回报、波动性或收益曲线的联合路径。
    • 压力测试:生成罕见但连贯的冲击组合用于风险管理。
    • 合成数据:在限定历史数据集的同时大致保持依赖结构。
    • 市场微观结构:模拟订单流或限价单簿快照。
  • 这些模型可以补充传统的随机模型,但必须仔细验证,以避免误导性的风险评估。
金融机器学习 · 第03讲

总结

  • VAE 和 GAN 是核心的深度生成模型,学习近似复杂的数据分布。

  • VAE 使用 概率潜变量 框架,通过编码器和解码器优化 ELBO。

  • GAN 将生成建模框架化为 双人游戏 生成器与判别器之间的博弈。

  • 在金融中,它们主要用于 情景生成、压力测试和数据增强,而不是直接替代结构模型或风险因子框架。

金融机器学习 · 第03讲

Application · Synthetic Data in Finance (Potluru et al., 2024)

  • 问题

    • 调查和评估如何在金融中使用 合成数据:用于模型开发、回测、压力测试和隐私保护数据共享。
    • 确定合成数据在哪里增加价值,其引入了哪些风险,以及如何负责任地设计它们。
  • 模型 / 算法

    • 回顾一系列 生成方法,包括:
      • 经典的参数化和基于 Copula 的模拟方法;
      • 用于回报、限价单簿和其他金融时间序列的 深度生成模型,如 GAN、VAE 和时间序列 GAN 变体。
    • 讨论设计选择(对情景进行条件处理、领域约束、评估指标)对于金融应用至关重要。
金融机器学习 · 第03讲
  • 关键结果 / 洞察

    • 合成数据可以 增强稀缺或敏感的数据集,使模型训练更加稳健,回测更加广泛,尤其是针对 罕见事件和压力状态
    • 它们支持 隐私和合规性,通过允许机构共享现实但非识别性的数据,实现监管合规。
    • 然而,设计不佳的生成器可能会 错误表示尾部风险或依赖结构,导致误导性的风险评估;小心验证和领域知识至关重要。
  • 为何适合深度生成模型

    • 金融数据是高维的、嘈杂的,并表现出非线性依赖(波动聚集、厚尾、横截面相关性)——这是 GAN 和 VAE 自然适用的领域,它们能够在不拘泥于严格参数形式的情况下近似复杂的联合分布。
    • 将深度生成模型与经济约束相结合,为风险管理和交易提供 现实而可控的情景生成器 提供了一个有前景的路径。
金融机器学习 · 第03讲

Application · Generating Synergistic Alpha Collections via RL (Yu et al., 2023)

  • 问题

    • 量化研究人员通常设计成千上万的 公式化阿尔法信号(价格、成交量、基本面等的函数)。
    • 本文提出问题:我们能否利用 强化学习(RL) 自动 生成一组阿尔法公式,使得这些公式单独有用并在组合到投资组合时 协同
  • 模型 / 算法

    • 定义一个大型结构化的 “阿尔法空间”(构建块,如算术运算、滞后、排名、横截面操作)。
    • 使用 深度 RL 来建模一个“阿尔法工程师”代理,顺序构建或选择阿尔法公式;环境通过模拟(或历史)回测表现和多样化特性评估每个提案。
    • 奖励平衡 预测能力、稳健性和相关性结构,推动代理朝向互补的阿尔法集合而不是单一最优信号。
金融机器学习 · 第03讲
flowchart LR %% =========================== %% 1. 阿尔法 结构 %% =========================== AlphaBlocks["阿尔法构建块
(特征/信号)"] RLAgent["RL 代理
(策略网络)"] CandidateAlpha["候选阿尔法公式
(结构化输出)"] BacktestEnv["回测环境
(模拟交易)"] Reward["奖励信号"] PolicyUpdate["策略更新"] %% =========================== %% 连接逻辑 %% =========================== AlphaBlocks --> RLAgent RLAgent --> CandidateAlpha CandidateAlpha --> BacktestEnv BacktestEnv --> Reward Reward --> PolicyUpdate %% =========================== %% 公式树结构 (阿尔法 组成块) %% =========================== subgraph AlphaTree["阿尔法公式树"] direction TB node1["阿尔法组件 1"] node2["阿尔法组件 2"] node3["阿尔法组件 3"] node1 --> node2 node1 --> node3 %% 示例公式,注意层次结构 Formula1[("阿尔法 = f(组件1, 组件2, 组件3)")] node1 --> Formula1 node2 --> Formula1 node3 --> Formula1 end %% =========================== %% 样式美化 %% =========================== %% 阿尔法 结构:蓝色 style AlphaBlocks fill:#bbdefb,stroke:#2196f3,stroke-width:2px %% RL 代理:紫色 style RLAgent fill:#e1bee7,stroke:#8e24aa %% 候选阿尔法公式:橙色 style CandidateAlpha fill:#fff3e0,stroke:#ef6c00 %% 回测环境:绿色 style BacktestEnv fill:#e8f5e9,stroke:#2e7d32 %% 奖励:红色 style Reward fill:#ffebee,stroke:#c62828,stroke-width:2px %% 策略更新:黄色 style PolicyUpdate fill:#fff9c4,stroke:#fbc02d %% 公式树(公式结构) style AlphaTree fill:#f3e5f5,stroke:#7b1fa2,stroke-dasharray: 5 5
金融机器学习 · 第03讲
  • 关键结果

    • RL 生成的阿尔法集合比简单的或手动策划的由相同构建块组成的公式集取得 更高的投资组合夏普比率和更稳定的表现
    • 学到的阿尔法展现出 非明显的组合和变换 基本信号,显示手动试错的方法在搜索空间上是太庞大的。
  • 为何适合深度/RL 问题

    • 阿尔法设计空间是 组合巨大且有结构的;将其框架化为 顺序决策问题 是自然的,每一步都增加一个算子或修改一个公式。
    • 深度 RL 能够学习 生成有结构的对象(阿尔法公式、阿尔法集合),在有噪声的长期奖励下,这是“策略的生成建模”实例,而不仅仅是数据。
金融机器学习 · 第03讲

第 7 部分 · 图神经网络 (GNN)

动机

  • 许多金融系统自然可以表示为
    • 银行间借贷和风险暴露网络。
    • 公司和基金之间的所有权和控制关系。
    • 供应链网络和贸易关系。
  • 传统方法通常将图压缩成手工制作的特征(度数、中心性度量)。
  • GNN 采取不同的方法:图结构本身 指导学习。
    • 节点通过 消息传递 从邻居聚合信息。
    • 经过几层后,节点表示捕获多跳关系信息。
  • 这种归纳偏见使得 GNN 在 谁与谁相连连接强度 对结果(如违约、传染或溢出)重要时适用。
金融机器学习 · 第03讲

消息传递公式

  • 一个典型的 消息传递 GNN 层更新节点特征 如下:
    1. 从邻居的消息聚合

      其中 是边特征。
    2. 节点更新

  • 在图卷积网络(GCN)中,简化形式为:

    其中:
    • 是带自循环的邻接矩阵。
    • 是对应的度矩阵。
    • 堆叠节点特征。
金融机器学习 · 第03讲

直觉、优缺点和金融应用

直觉

  • 每个 GNN 层允许节点与其邻居交换信息
  • 经过 层后,节点 的表示 反映其 L跳邻域 的信息。
  • 这类似于迭代的传染或扩散,但使用学习的聚合和变换函数

优缺点

方面 优点 缺点 / 风险
结构 尊重网络拓扑 需要图数据和质量边缘
灵活性 学习复杂的邻域交互 多层可能导致过度平滑
金融应用 自然适用于系统性风险、传染、溢出 可解释性可能具有挑战性
金融机器学习 · 第03讲

金融应用:

  • 系统性风险:使用银行间网络预测违约概率或损失。

  • 信用风险:综合供应链或所有权网络。

  • 市场结构:建模由客户-供应商关系连接的公司或部门之间的溢出效应。

金融机器学习 · 第03讲

总结

  • GNN 将神经网络推广到图结构数据,通过 消息传递和邻域聚合

  • 它们学习节点、边或整个图的表示,隐式捕捉 网络结构和交互

  • 在金融中,GNN 是建模 相互关联系统(如银行网络、所有权结构和供应链关系)的有前景工具。

  • 与基于表格数据的 MLP 相比,GNN 强调结果在 关系 上的关键依赖,而不仅仅是孤立特征。

  • 再次强调,网络架构塑造了学习的容易性:通过图结构,模型偏向于捕捉 关系模式和传染效应

金融机器学习 · 第03讲

第 8 部分 · 实际问题与总结


  • 深度网络的优化
  • 正则化、过拟合与可解释性
  • 总体总结与展望
金融机器学习 · 第03讲

深度网络的优化

  • 深度网络使用 随机梯度基 方法进行训练:
    • SGD

      其中 是小批量, 是学习率。
    • 动量、RMSProp、Adam:自适应或基于动量的变体。
  • 实际考虑因素:
    • 学习率调度(衰减、热重启等)。
    • 批量大小:稳定性与泛化之间的权衡。
    • 初始化(Xavier/He)和归一化(批归一化、层归一化)可以改善收敛。
  • 在金融中,优化必须平衡:
    • 预测性能。
    • 滚动窗口 中的稳定性。
    • 对分布变化的鲁棒性(政权变更、危机)。
金融机器学习 · 第03讲

深度网络中的消失/爆炸梯度

  • 深度前馈和循环网络共同面临一个挑战:
    • 梯度通过许多层(或时间步)传播,每一层都涉及乘以权重矩阵和应用非线性。
  • 如果有效雅可比矩阵趋向收缩,梯度将 消失;如果趋向扩展,梯度将 爆炸
  • 实际症状:
    • 训练损失停止减少或变得极为不稳定。
    • 早期层或早期时间步几乎没有学习信号。
  • 缓解策略:
    • 使用 非饱和激活函数(如 ReLU 家族)而不是 sigmoid/tanh 作为隐藏层。
    • 小心初始化(如 Xavier、He)和适当的规范化层。
    • 梯度裁剪,特别是对于 RNN。
    • 架构变化,如残差连接,为梯度流提供快捷方式,减轻超深网络中的消失梯度问题。
金融机器学习 · 第03讲

残差连接以简化优化

  • 残差网络(ResNets)引入了层之间的 跳跃连接
    • 网络不是直接学习映射 ,而是学习残差函数 并输出

  • 好处:
    • 如果最优映射接近于身份映射,学习残差 比直接学习 更容易。
    • 梯度可以通过跳跃连接直接流动,减少在非常深层网络中的消失梯度问题。
  • 尽管最初为图像 CNN 开发,残差思想也广泛应用于:
    • 表格数据的深度 MLP。
    • 深度序列模型。
  • 在金融中,残差连接可以帮助训练 更深的架构,以捕捉复杂交互,同时保持优化稳定。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

深度网络中的正则化

  • 深度模型参数众多,易于 过拟合,特别是在有效样本量有限的金融数据集中。
  • 常见的正则化策略:
    • 权重衰减:对权重施加 L2 惩罚,相当于贝叶斯视角中的高斯先验。
    • 早停:监控验证性能,当性能开始恶化时停止训练。
    • 丢弃法:在训练过程中随机将一部分单元置为零,迫使网络学习更稳健的表示。
  • 附加技术:
    • 适用时的数据增强(例如,轻微扰动输入)。
    • 集成方法(平均多个训练模型的预测)。
  • 有效的正则化对于模型在 市场状态 转换中泛化至关重要,而不仅仅是拟合历史噪声。
金融机器学习 · 第03讲

神经网络的贝叶斯视角(简要)

  • 在贝叶斯解释中,网络权重被视为具有先验分布的 随机变量
    • 例如,权重衰减对应于对权重的高斯先验。
  • 我们考虑一个 后验分布 ,而不是单个点估计
  • 预测在参数不确定性上进行积分:

  • 精确的贝叶斯神经网络在计算上具有挑战性,但:
    • 近似方法(例如变分推断、dropout-as-Bayesian)提供不确定性估计。
  • 对于金融而言,贝叶斯视角强调 参数不确定性和预测不确定性,这在风险管理和不确定情况下的决策中非常重要。
金融机器学习 · 第03讲

正则化、过拟合与可解释性

  • 深度模型参数众多,因此 正则化 极为重要:
    • 权重衰减(对权重的 L2 惩罚)。
    • 丢弃法:在训练期间随机置零激活以防止共同适应。
    • 早停:监控验证损失并在过拟合之前停止。
    • 对金融数据的 数据增强(有意义时)。
  • 金融中的过拟合 特别危险,因为:
    • 样本量通常小于互联网应用。
    • 市场和制度随时间变化,导致 非平稳性
  • 可解释性:
    • 特征重要性通过扰动或基于梯度的归因测量。
    • 将深度输出与 简单基准(线性模型、树模型) 进行比较。
    • 对于受监管的领域(信用、消费金融),尽管深度学习灵活,仍然可能更倾向于使用简单模型。
金融机器学习 · 第03讲

在金融中的混合架构

  • 实际上,许多成功的金融深度学习系统都是 混合架构
    • CNN + LSTM
      • CNN 从结构化输入(例如,限价单簿快照、期限结构片段)中提取局部模式。
      • LSTM 对这些提取特征的时间演变进行建模。
      flowchart LR %% LOB 图像到价格影响预测的过程 LOB["限价单簿图像
      (Limit Order Book)"] CNN["CNN 层<br/(特征提取)"] LSTM["LSTM 层
      (时间建模)"] PriceImpact["价格影响预测"] %% 连接逻辑 LOB --> CNN CNN --> LSTM LSTM --> PriceImpact %% 样式美化 style LOB fill:#bbdefb,stroke:#2196f3,stroke-width:2px style CNN fill:#e1bee7,stroke:#8e24aa style LSTM fill:#e8f5e9,stroke:#2e7d32 style PriceImpact fill:#ffebee,stroke:#c62828,stroke-width:2px
    • GNN + MLP/RNN
      • GNN 汇聚关于金融网络(曝光、所有权、供应链)的信息。
      • MLP 或 RNN 将节点嵌入映射到预测中(违约概率、波动性、损失)。
      flowchart LR %% 供应链图到违约/收益预测的过程 SupplyChain["供应链图
      (Graph Structure)"] GNN["图神经网络
      (节点嵌入)"] FirmEmbedding["公司嵌入
      (特征向量)"] MLP_RNN["MLP / RNN 层
      (预测模型)"] DefaultReturn["违约 / 收益预测"] %% 连接逻辑 SupplyChain --> GNN GNN --> FirmEmbedding FirmEmbedding --> MLP_RNN MLP_RNN --> DefaultReturn %% 样式美化 style SupplyChain fill:#fff9c4,stroke:#fbc02d,stroke-width:2px style GNN fill:#ffe0b2,stroke:#ff9800 style FirmEmbedding fill:#e8f5e9,stroke:#2e7d32 style MLP_RNN fill:#f3e5f5,stroke:#8e24aa style DefaultReturn fill:#ffebee,stroke:#c62828,stroke-width:2px

金融机器学习 · 第03讲
  • 这些组合利用了 不同的归纳偏见
    • 卷积适用于局部模式。
    • 循环适用于时间依赖性。
    • 图结构适用于网络效应。
  • 在设计模型时,要考虑 哪种架构适合数据的哪一部分,而不是寻找单一的“最佳”深度模型。
金融机器学习 · 第03讲

何时在金融中使用深度学习(以及何时不使用)

  • 深度学习在以下情况中有用
    • 我们拥有 大型数据集,具有丰富的横截面和/或时间变化。
    • 关系是 高度非线性的,且难以通过简单模型捕获。
    • 主要目标是 预测性能,且可解释性要求中等。
    • 输入具有复杂结构(序列、网络、高频微观结构数据)。
  • 不太适合的情况
    • 样本量小,或有效数据量因制度变更和结构性突破而有限。
    • 监管或业务约束要求 高可解释性和透明性
    • 简单模型(例如线性、树模型)已能获得满意的性能。
  • 在下次讲座中,我们将从 预测建模 转向 决策(强化学习),在该领域,模型的复杂性必须与稳定性、可解释性和控制进行平衡。
金融机器学习 · 第03讲
金融机器学习 · 第03讲

总体总结与展望

  • 我们介绍了一套 深度学习架构工具包 适用于金融:
    • MLP 适用于表格数据的一般高维非线性预测。
    • CNN 适用于结构化数组和局部模式。
    • RNN / LSTM / GRU 适用于序列和时间动态。
    • Transformer 之前的注意机制 适用于选择性关注序列的重要部分。
    • VAE / GAN 用于生成建模和场景模拟。
    • GNN 用于网络化和关系型金融数据。
  • 在不同架构中,我们强调:
    • 核心 公式直觉
    • 典型的 训练程序
    • 高级 优缺点金融应用
  • 在下一讲中,我们将从 监督学习 转向 强化学习,在该领域,代理与动态金融环境(市场、投资组合、交易系统)交互。
金融机器学习 · 第03讲

如果本讲slides用到mermaid charts,slides末尾应有以下内容