3、强化学习基础:马尔可夫决策过程(MDP)、状态、动作、奖励、策略与价值函数

好,咱们今天聊点硬核的。强化学习在资产配置里到底怎么用?说白了,你得先搞懂它的底层逻辑——马尔可夫决策过程,也就是MDP。我当年刚接触这个的时候,觉得不就是个数学框架嘛,后来在实盘回测里摔了几次跟头,才明白这东西有多关键。

3.1 马尔可夫决策过程:资产配置的“游戏规则”

MDP是什么?你可以把它想象成一个“下棋”的过程。你每走一步,棋盘状态就变了,你根据新状态再决定下一步。资产配置也一样——你根据当前市场状态(比如波动率、趋势强度)调仓,然后市场给你反馈(收益或亏损)。

MDP的核心是马尔可夫性:未来只取决于现在,跟过去无关。嗯,这里要注意,金融市场其实不完全满足这个假设,但我们可以近似处理。我个人习惯把MDP拆成五个要素:

  • 状态(State):当前市场的“快照”
  • 动作(Action):你做的调仓决策
  • 奖励(Reward):市场给你的反馈
  • 策略(Policy):你的决策规则
  • 价值函数(Value Function):对未来收益的预估

这五个东西,就是咱们做量化资产配置的“工具箱”。

3.2 状态:你看到了什么?

状态就是智能体(Agent)观察到的环境信息。在资产配置里,状态可以是:

  • 当前各资产的收益率(过去5日、20日)
  • 波动率指标(比如VIX指数)
  • 宏观经济数据(PMI、CPI)
  • 技术指标(RSI、MACD)

我在项目中遇到过一个问题:状态选太多,模型反而学不好。你想想看,如果给模型100个指标,它根本分不清哪些是噪声。我建议状态维度控制在5-10个,而且要选那些真正有预测能力的。

核心原则:状态必须包含足够的信息,让智能体能做出合理决策,但又不能冗余到让模型过拟合。

3.3 动作:你能做什么?

动作就是智能体可以执行的操作。在资产配置里,动作空间通常有两种:

  • 离散动作:比如“加仓10%”、“减仓20%”、“保持不动”
  • 连续动作:比如“把股票仓位从30%调整到35.7%”

我个人偏好离散动作,因为更容易训练。但如果你做高频调仓,连续动作更灵活。举个例子:

# 离散动作示例
actions = {
    0: "减仓20%",
    1: "减仓10%",
    2: "保持不动",
    3: "加仓10%",
    4: "加仓20%"
}

动作空间的大小很关键。动作太少,策略不够精细;动作太多,模型学起来太慢。我一般控制在5-9个动作。

3.4 奖励:市场给你的“分数”

奖励函数是强化学习的“指挥棒”。你设计什么样的奖励,智能体就会学出什么样的策略。常见的奖励设计有:

奖励类型 公式 适用场景
简单收益率 R = r_t 追求绝对收益
夏普比率 R = (r_t - r_f) / σ 风险调整后收益
最大回撤惩罚 R = r_t - λ * drawdown 控制回撤

我曾经犯过一个错误:只用收益率做奖励,结果模型学会了“赌徒式”操作——大赚大亏,回撤惊人。后来我改成夏普比率加回撤惩罚,模型才变得稳健。

避坑指南:奖励函数不要设计得太复杂。我曾经试过把5个指标加权求和,结果模型根本不知道优化哪个目标。简单、清晰、可解释,才是王道。

3.5 策略:你的决策规则

策略就是“在某个状态下,应该做什么动作”。用数学表示就是:π(a|s) = P(动作a | 状态s)。

策略分两种:

  • 确定性策略:给定状态,只有一个确定动作。比如“波动率>20%时,减仓10%”
  • 随机性策略:给定状态,每个动作有概率。比如“波动率>20%时,有70%概率减仓10%,30%概率保持不动”

在资产配置里,我建议用随机性策略。为什么?因为市场有不确定性,随机性策略能帮你探索更好的操作。你想想看,如果一直用确定性策略,可能永远发现不了更好的调仓时机。

3.6 价值函数:对未来的“估值”

价值函数是强化学习的“灵魂”。它告诉你:在当前状态下,未来能赚多少钱。有两种:

  • 状态价值函数 V(s):从状态s开始,按策略π行动,能获得的累计奖励期望
  • 动作价值函数 Q(s, a):在状态s下执行动作a,之后按策略π行动,能获得的累计奖励期望

Q函数在资产配置里特别有用。比如,你当前持有50%股票,Q函数可以告诉你:加仓到60%能赚多少?减仓到40%能赚多少?然后你选Q值最高的那个动作。

实战技巧:我习惯用Q-learning做资产配置。核心公式是:Q(s,a) ← Q(s,a) + α[r + γ * max Q(s',a') - Q(s,a)]。其中α是学习率,γ是折扣因子。γ越接近1,模型越看重长期收益。

3.7 一张图看懂MDP

下面这张SVG图,把MDP的核心逻辑串起来了。你看一遍,应该就能理解整个流程。

马尔可夫决策过程(MDP)核心流程 状态 S 动作 A 奖励 R 下一状态 S' 策略 π 价值函数 V/Q 智能体根据策略π选择动作A,环境反馈奖励R并转移到新状态S'

这张图你看懂了吗?核心逻辑就是:智能体观察状态S,根据策略π选择动作A,环境给出奖励R并转移到新状态S'。然后循环往复。价值函数V或Q则用来评估每个状态或动作的“好坏”。

3.8 实战中的坑与经验

最后,分享几个我在实战中踩过的坑:

  • 状态归一化:不同资产的价格尺度差很多,一定要做归一化处理。我习惯用z-score。
  • 奖励平滑:单日收益率噪声太大,我一般用滚动5日平均收益率做奖励。
  • 探索与利用:别让模型太早“固化”。我通常在前30%的训练轮次里,用ε-greedy策略保持探索。
一句话总结:MDP就是资产配置的“游戏规则”。状态是你看到的,动作是你做的,奖励是你得到的,策略是你的玩法,价值函数是你的“直觉”。把这五个东西搞明白,强化学习资产配置就入门了。

公众号:蓝海资料掘金营,微信deep3321