深度学习模型 — 模块概述

本模块是 mlqt(量化机器学习)学习路径的第④模块,专注于使用深度学习技术进行量化时间序列预测。

🎯 学习目标

完成本模块后,你将能够:

  1. 理解深度学习核心原理:神经网络、RNN、LSTM、Attention、Transformer 的数学直觉
  2. 熟练使用 PyTorch:从 Tensor 操作到完整模型训练流水线
  3. 构建深度学习量化模型:LSTM、双向 LSTM、LSTM+Attention 等架构
  4. 处理时序数据:滑动窗口、标准化、Dataset 构建等最佳实践
  5. 优化模型训练:损失函数、优化器、学习率调度、正则化、早停等技巧
  6. 完成端到端项目:从数据生成到模型评估的完整实战案例

📚 前置知识

开始学习本模块前,建议你已经掌握:

知识点说明参考模块
Python 基础列表、字典、函数、类-
NumPy/Pandas数组操作、DataFrame 处理-
机器学习基础过拟合、交叉验证、损失函数模块①
特征工程时序特征构建、标签生成模块②
树模型实战XGBoost/LightGBM 使用经验模块③
微积分基础导数、链式法则(理解反向传播)-

💡 提示:如果你已经熟练使用 XGBoost/LightGBM 做量化,那么你对「特征→模型→预测→评估」的流程已经熟悉,本模块将帮你扩展到深度学习领域。

📁 文件导航

本模块包含以下文件,建议按顺序学习:

文件说明预计时间难度
01-深度学习基础.md神经网络、RNN、LSTM、Attention 原理详解90分钟⭐⭐⭐
02-PyTorch框架入门.mdPyTorch 核心:Tensor、Autograd、nn.Module、DataLoader75分钟⭐⭐
03-LSTM模型构建.md单层/多层/双向 LSTM、LSTM+Attention 实战80分钟⭐⭐⭐
04-时序数据处理.md滑动窗口、标准化、Dataset 构建、数据划分70分钟⭐⭐
05-模型训练优化.md训练循环、损失函数、优化器、调度器、正则化100分钟⭐⭐⭐⭐
06-实战案例.md端到端完整项目:模拟数据→训练→评估→回测120分钟⭐⭐⭐⭐⭐

总计学习时间:约 8-10 小时(含代码练习时间)

🗺️ 推荐学习路径

┌─────────────────────────────────────────────────────────────────┐
│                    深度学习模型模块学习路径                       │
└─────────────────────────────────────────────────────────────────┘

                              ┌──────────────┐
                              │  开始学习 🎯  │
                              └──────┬───────┘
                                     │
                                     ▼
                    ┌─────────────────────────────────────┐
                    │  01-深度学习基础(90min)            │
                    │  • 神经网络原理                      │
                    │  • RNN/LSTM/Attention               │
                    └────────────────┬────────────────────┘
                                     │
                                     ▼
                    ┌─────────────────────────────────────┐
                    │  02-PyTorch框架入门(75min)         │
                    │  • Tensor操作                        │
                    │  • 模型定义                          │
                    │  • 数据加载                          │
                    └────────────────┬────────────────────┘
                                     │
                                     ▼
                    ┌─────────────────────────────────────┐
                    │  03-LSTM模型构建(80min)            │
                    │  • 单层/多层LSTM                     │
                    │  • 双向LSTM                          │
                    │  • LSTM+Attention                   │
                    └────────────────┬────────────────────┘
                                     │
                                     ▼
                    ┌─────────────────────────────────────┐
                    │  04-时序数据处理(70min)            │
                    │  • 滑动窗口                          │
                    │  • 标准化                            │
                    │  • Dataset构建                       │
                    └────────────────┬────────────────────┘
                                     │
                                     ▼
                    ┌─────────────────────────────────────┐
                    │  05-模型训练优化(100min)           │
                    │  • 训练循环                          │
                    │  • 损失函数/优化器                   │
                    │  • 正则化/早停                       │
                    └────────────────┬────────────────────┘
                                     │
                                     ▼
                    ┌─────────────────────────────────────┐
                    │  06-实战案例(120min)               │
                    │  • 端到端完整项目                    │
                    │  • 模拟数据→训练→评估                │
                    │  • 树模型 vs 深度学习对比            │
                    └────────────────┬────────────────────┘
                                     │
                                     ▼
                              ┌──────────────┐
                              │  🎉 完成学习   │
                              └──────────────┘

🔄 树模型 vs 深度学习

在量化领域,树模型(XGBoost/LightGBM)和深度学习各有优势。下表帮助你选择合适的工具:

对比维度树模型 (XGBoost/LightGBM)深度学习 (LSTM/Transformer)
适用数据类型表格数据、截面特征时序数据、序列模式
特征工程需求高(需要手动构建特征)低(自动学习序列特征)
训练速度快(CPU即可)慢(需要GPU加速)
超参数敏感性中等高(需要仔细调参)
可解释性较好(特征重要性)较差(黑盒模型)
数据量需求小样本即可工作需要大量数据
长距离依赖差(需要手动构建滞后特征)强(LSTM/Transformer可记忆)
非线性建模有限(通过树分裂)强(多层非线性变换)
过拟合风险中等高(需要强正则化)

何时选择深度学习?

✅ 选择深度学习当:
   • 数据有明显的时序模式(趋势、周期、长期依赖)
   • 有较长的历史数据(>2年日频或>5年高频)
   • 特征是序列型(K线、订单簿、逐笔成交)
   • 需要预测未来多步(seq2seq)
   • 树模型效果遇到瓶颈

❌ 选择树模型当:
   • 数据主要是截面特征
   • 历史数据较短(<1年)
   • 需要快速迭代和实验
   • 可解释性要求高
   • 计算资源有限(无GPU)

🔑 核心概念预览

在学习本模块前,先了解几个核心概念:

1. 序列建模

深度学习擅长处理序列数据,每个样本不仅是独立的特征向量,而是有先后顺序的序列:

树模型视角:
样本1 = [特征1, 特征2, ..., 特征20] → 预测

深度学习视角:
样本1 = [[特征1_t-19], [特征1_t-18], ..., [特征1_t]]  ← 20个时间步
       [[特征2_t-19], [特征2_t-18], ..., [特征2_t]]
       ...
       [[特征20_t-19], [特征20_t-18], ..., [特征20_t]]
       ↓
   展开时序依赖 → 预测

2. LSTM 的记忆能力

LSTM 通过细胞状态(Cell State)和门控机制(Gates)实现长期记忆:

输入序列:  [t-19] → [t-18] → ... → [t-2] → [t-1] → [t]
                              ↑
                         关键信息在这
                              ↓
细胞状态:  ─────────────────●──────────────────→
                    (选择性记忆/遗忘)

3. 注意力机制

Attention 允许模型在预测时关注历史序列中的重要部分

历史序列:  [1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [10]
注意力权重: 0.01 0.02 0.05 0.1  0.3  0.2  0.15 0.1  0.05 0.02
                                    ↑↑↑
                               模型重点关注这些时间步

📌 学习建议

  1. 动手实践:每个代码示例都要亲自运行,修改参数观察效果
  2. 理解原理:不要只调参,理解模型背后的数学直觉
  3. 对比验证:用相同的树模型作为 baseline,对比深度学习的提升
  4. 循序渐进:先跑通简单模型,再尝试复杂架构
  5. 注意陷阱:特别关注「数据泄漏」、「未来信息」等量化特有的坑

⚠️ 常见陷阱

在学习过程中,要特别注意以下量化特有的问题:

陷阱说明后果解决方法
未来信息泄漏用了未来的数据做特征回测虚高,实盘失效严格按时间划分
标准化泄漏用测试集统计量标准化模型见过测试集分布只用训练集统计量
因果性破坏双向模型用于预测模型看见未来收益谨慎使用双向LSTM
过拟合模型太复杂,数据太少训练好,测试差强正则化、早停
数据窥探用全样本做特征选择评估过于乐观只在训练集上做

🚀 开始学习

准备好了吗?让我们从 01-深度学习基础.md 开始学习!

📖 提示:本模块所有代码使用纯 PyTorch 实现,无需安装 qlib。确保你已经安装:

  • torch >= 2.0
  • numpy
  • pandas
  • matplotlib (用于可视化)
  • scikit-learn (用于评估指标)
  • tqdm (用于进度条)

安装命令:pip install torch numpy pandas matplotlib scikit-learn tqdm

此文件夹下有6条笔记。