围棋经典算法与股票市场预测
一谈到强化学习,脑子里第一个出现的就是 AlphaGo 和 AlphaZero 的“围棋神话”。但现实是,它并不是所有 RL 应用的通用范本。下面,我们就来讨论一下为什么围棋中的经典强化学习算法无法应用于股票市场预测,以及在现实中有没有更好的方法可供推荐。
1 蒙特卡洛树搜索
蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)是一种用于决策和规划的搜索算法,经常用于下棋 AI(如围棋、国际象棋)等需要“选最优动作”的场景。
1.1 基本思想
- 核心思想:在一个决策树中,通过不断模拟(随机走子)和回溯统计,估计每个动作/路径的优劣,从而指导实际的决策选择。
- 适用于:环境模型已知、可以模拟、状态和动作是有限/可枚举的场景。
1.2 树的结构
- 节点(Node):代表一个状态(比如棋盘某一局面)。
- 边(Edge):代表一个动作(从当前状态采取的一个可能操作)。
- 根节点是当前的实际状态。
- 从根出发,每走一步棋(做一个动作)就往下生成一个新节点,连一条边。
1.3 搜索过程(四大步骤)
- 选择(Selection)
沿着树从根节点开始,按照某种策略(如 UCB,上置信界公式),一路选择“最优”子节点,直到找到一个尚未完全扩展的节点。 - 扩展(Expansion)
从选中的节点,随机选择一个还没尝试过的动作,生成新节点(新状态)。 - 模拟(Simulation/Rollout)
从新节点开始,进行一次随机模拟(一直走到游戏结束,或达到某个终止条件),得到最终结果(如胜负、奖励)。 - 回传(Backpropagation)
把这次模拟的结果,沿着路径一层层传回到根节点,更新每个节点的胜率/得分/访问次数等统计信息。
这个过程不断重复,树会越长越大,统计会越来越准。
所以说,围棋实际上拥有无数的可能组合,虽然 MCTS 无法穷尽所有可能,但只要比人类探索得更多,它就能胜过人。
2 alpha-zero 相比 alpha-go 的差异
2.1 对比
AlphaGo | AlphaZero | |
---|---|---|
训练数据 | 人类棋谱 + 自我对弈 | 只用自我对弈(零起点,无人类数据) |
特征工程 | 有手工设计棋类特征 | 仅用棋盘状态,无手工特征 |
网络结构 | 策略/价值分开 | 策略 + 价值统一 Actor-Critic |
搜索算法 | MCTS+ 部分 Rollout | 全 MCTS+ 神经网络,无 Rollout |
应用范围 | 仅围棋 | 多棋类通用(围棋、国际象棋、将棋等) |
工程复杂度 | 高 | 更简洁、更高效 |
突破意义 | 人机结合可超越人类 | 零知识自学 AI 可超越一切 |
2.2 通用强化学习 alpha-zero-general 方法
- 开源项目:https://github.com/suragnair/alpha-zero-general
- 相关论文:Learning to Play Othello Without Human Knowledge
- 论文下载:https://github.com/suragnair/alpha-zero-general/raw/master/pretrained_models/writeup.pdf
通用的 Alpha-zero 算法,于 2024 年 3 月发布于 github,基于 AlphaZero 的开源实现。可用于多种简单游戏环境。支持双人对战类游戏,包含:五子棋、井字棋、黑白棋等多种游戏。共5000 多行纯 python 代码,2000 多行 jupyter 代码,同时包含 PyTorch 或 Keras 神经网络训练。
3 为什么不能用 MCTS 做股票预测
MCTS 更像是一种“搜索”方法,而不是“学习”方法。
3.1 对比
维度 | 围棋/棋类(MCTS 适用) | 金融/股票(现实 RL) |
---|---|---|
模型已知 | 是(规则全写死) | 否(市场规律未知) |
状态可模拟 | 是(随时 reset+ 尝试) | 否(历史不可逆,未来不可见) |
信息完整 | 是(完全信息) | 否(部分信息/高噪声) |
奖励 | 明确、稀疏(胜负) | 复杂、多源、易变 |
可自我对弈 | 是 | 否 |
主要机制 | 搜索 + 规划 | 采样 + 估计 |
可迁移思想 | 探索 - 利用、奖励设计 | 同 |
3.2 关键概念解释
3.2.1 模型已知
- 你能手动写出“如果现在下了一步,下一步棋盘是啥样”,这就叫模型已知。
- 预测未来金融市场时,则没有这样的“规则本”,我们只能基于历史数据“猜”环境。
3.2.2 状态可模拟
- 可以随时、无限次地“假设”任何下一步,环境都能给你返回确定的下一个状态和奖励。
- 不能随便“假设明天涨跌”,然后让环境真实反馈,“未来”是不可逆的、不可多次采样的。
3.2.3 完全信息
- 你能看到所有决策相关的全部变量,如棋局上的所有棋子。
- 股票市场可能有内幕、信息延迟、突发事件等“黑箱”因素。
4 该怎么做
在金融中,我们用强化学习学习的不是市场涨跌本身(预测涨跌不是强化学习问题,留待以后讨论),而是人在不确定环境下的操作策略(比如买入、卖出、持有的节奏)。这种策略学习属于行为决策问题,而不是确定性规划问题。
MCTS需要一个可被反复模拟的环境(比如棋局),它能通过大量搜索找到“最优解”;
但金融市场既不可预测、也无法完全建模——没有所谓“可搜索的未来”。
目前主流的强化学习库是 stable-baselines,实现了 DQN、PPO、A2C、SAC、TD3 等经典算法,但不包含 MCTS 组件。在这些算法中,PPO(Proximal Policy Optimization) 是最常被用于金融交易的。
PPO 的特点是:它从经验中学,而不是从推演未来。
它不依赖明确的环境模型,而是通过以下三步不断优化策略:
- 从历史或仿真环境中采样经验;
- 估计哪些行为带来更高的奖励;
- 调整策略参数,让更优行为的概率更大。
换句话说,它学的是“怎么做更好”,而不是“未来会怎样”,因此特别适合市场这种“黑箱系统”。
比较维度 | MCTS | PPO |
---|---|---|
核心机制 | 搜索与规划 | 策略学习与优化 |
环境要求 | 可模拟、可复盘 | 不可预测、可交互 |
学习方式 | 从“假设未来”中学 | 从“真实经验”中学 |
应用领域 | 围棋、棋类、博弈 | 股票交易、机器人控制 |
本质差异 | 模拟未来的规划者 | 活在当下的学习者 |
5 总结
MCTS 需要一个“能重来的世界”;
PPO 才能活在“只能前进的现实”。