第4章 马尔可夫决策过程:MDP定义、状态转移概率、奖励函数、折扣因子、策略与价值函数的关系
各位同学,欢迎来到第四讲。今天我们要聊的是强化学习的“地基”——马尔可夫决策过程,简称MDP。说实话,我刚开始学强化学习的时候,觉得MDP就是个数学框架,离实际交易很远。但后来我在做高频交易策略时,发现几乎所有问题都能用MDP来建模。嗯,今天我们就把它彻底讲透。
4.1 MDP的五个核心要素
MDP说白了就是一个数学工具,用来描述智能体与环境交互的过程。它由五个部分组成,我习惯用来记忆:
- S(状态空间):所有可能的状态集合。比如股票当前的价格、持仓量、市场情绪指标等。
- A(动作空间):智能体可以采取的动作。在交易中就是买入、卖出、持有。
- P(状态转移概率):从一个状态到另一个状态的概率。这个很关键,后面细说。
- R(奖励函数):执行动作后获得的即时回报。比如赚了多少钱。
- γ(折扣因子):未来奖励的折现系数,范围在[0,1]之间。
核心思想:MDP假设当前状态包含了所有历史信息,未来只依赖于当前状态——这就是马尔可夫性。说白了,就是“过去不重要,现在决定未来”。
4.2 状态转移概率:市场的“脾气”
状态转移概率P(s'|s, a)描述的是:在状态s下执行动作a后,环境会变成状态s'的概率。我在做量化交易时,经常用历史数据来估计这个概率矩阵。
举个例子:假设当前股价是100元(状态s),你选择买入(动作a),那么下一个时刻股价可能涨到101元(概率0.6),也可能跌到99元(概率0.4)。这个0.6和0.4就是状态转移概率。
我的经验:实际交易中,状态转移概率很难精确计算。我一般用蒙特卡洛模拟或者核密度估计来近似。别想着算得100%准确,够用就行。
4.3 奖励函数:交易的“甜头”与“苦头”
奖励函数R(s, a, s')告诉我们在某个状态下执行动作后能获得多少回报。设计奖励函数是门艺术,我踩过不少坑。
常见的奖励设计:
- 简单收益:R = 卖出价 - 买入价
- 夏普比率:R = (收益 - 无风险利率) / 波动率
- 带惩罚的收益:R = 收益 - λ × 交易成本
避坑指南:我曾经设计过一个只奖励盈利的奖励函数,结果模型学会了频繁交易赚小钱,但手续费把利润全吃掉了。后来我加入了交易成本惩罚项,模型才变得稳健。
4.4 折扣因子:未来的钱不值钱?
折扣因子γ决定了智能体有多“短视”。γ=0时,只关心当前奖励;γ接近1时,会考虑长远收益。
在交易中,我一般这样设置:
- 高频交易:γ=0.9~0.95,因为要快速反应
- 中长线交易:γ=0.99,考虑长期趋势
为什么会这样?你想想看,高频交易里下一秒的行情可能就变了,太远的奖励没有意义。而长线投资,今天的决策可能影响未来几个月的收益。
4.5 策略:交易员的“决策手册”
策略π(a|s)定义了在每个状态下应该采取什么动作。有两种类型:
- 确定性策略:π(s) = a,给定状态直接输出动作。比如“价格突破20日均线就买入”。
- 随机性策略:π(a|s) = 概率,以一定概率选择动作。比如“有70%概率买入,30%概率观望”。
我个人习惯在探索阶段用随机策略,在实盘阶段用确定性策略。这样既能探索新机会,又能稳定执行。
4.6 价值函数:给状态和动作“打分”
价值函数是MDP的核心,它衡量的是“长期回报的期望”。
- 状态价值函数V(s):从状态s开始,按照策略π行动,能获得的累计折扣奖励的期望。
- 动作价值函数Q(s, a):在状态s下执行动作a,之后按照策略π行动,能获得的累计折扣奖励的期望。
两者的关系可以用贝尔曼方程表示:
V(s) = Σ π(a|s) × [R(s,a) + γ × Σ P(s'|s,a) × V(s')]
Q(s,a) = R(s,a) + γ × Σ P(s'|s,a) × V(s')
说白了,V(s)是“这个状态好不好”,Q(s,a)是“在这个状态下做这个动作好不好”。
4.7 知识体系总览
下面这张图展示了MDP的核心逻辑,我花了不少时间画出来,希望能帮你理清思路:
4.8 策略与价值函数的关系
策略和价值函数是“鸡生蛋、蛋生鸡”的关系:
- 策略决定价值:不同的策略会导致不同的状态价值。比如“追涨杀跌”策略和“低买高卖”策略,在同一个市场中的V(s)完全不同。
- 价值指导策略:通过比较Q(s,a)的大小,我们可以选出最优动作。这就是策略改进的基础。
我记得在做一个期货策略时,一开始策略很激进,V(s)波动很大。后来我改成了保守策略,V(s)变得平滑但收益也低了。最后通过Q(s,a)的对比,找到了一个平衡点。
关键点:最优策略π*就是让每个状态的V(s)都达到最大值的策略。而最优价值函数V*和Q*满足贝尔曼最优方程。
4.9 实际应用中的注意事项
在交易中应用MDP,有几个坑要避开:
- 状态空间爆炸:股票价格、成交量、技术指标...状态太多会导致计算量巨大。我一般用PCA降维或者只选3-5个关键特征。
- 非平稳环境:市场规律会变,状态转移概率不是固定的。需要定期重新估计P矩阵。
- 奖励延迟:有些交易策略的收益要很久才能体现,这时候折扣因子γ的设置就很重要了。
我的建议:刚开始做MDP建模时,先从小规模状态空间开始。比如只用“价格涨跌”和“持仓量”两个状态,跑通了再慢慢加特征。别一口吃成胖子。
好了,MDP的核心内容就这些。记住这五个要素和它们之间的关系,后面讲Q-learning、策略梯度时都会用到。下节课我们聊聊怎么用动态规划求解MDP——说白了就是怎么算出最优策略。
公众号:蓝海资料掘金营,微信deep3321