3、强化学习核心概念回顾:马尔可夫决策过程(MDP)、状态、动作、奖励、策略、价值函数与Q函数、探索与利用的权衡

好,咱们直接进入正题。强化学习这东西,说白了就是让智能体自己学会做决策。你给它一个环境,它自己摸索,碰壁了扣分,做对了加分。听起来像训狗?嗯,本质确实差不多。但要让机器真正学会,我们需要一套严谨的数学框架。这套框架,就是马尔可夫决策过程,也就是MDP。

核心一句话:MDP 是强化学习的“宪法”。所有算法、所有策略,最终都要回到这个框架里来。

3.1 马尔可夫决策过程(MDP)—— 游戏规则说明书

我刚开始接触强化学习时,觉得MDP这名字挺唬人。后来发现,它其实就是一套描述“智能体与环境如何交互”的规则。你想想看,任何决策问题,无非就是:我现在在哪?我能做什么?做了之后会怎样?能得到多少好处?

MDP 用五个要素把这几个问题回答清楚了:

  • 状态(State, S): 智能体当前所处的“位置”。可以是股票价格、机器人关节角度、游戏画面像素。
  • 动作(Action, A): 智能体可以做的“操作”。比如买入、卖出、左转、跳跃。
  • 转移概率(Transition Probability, P): 执行某个动作后,环境会变成什么新状态。注意,这里有个随机性。
  • 奖励(Reward, R): 环境给智能体的“反馈信号”。做对了给正数,做错了给负数。
  • 折扣因子(Discount Factor, γ): 未来的奖励值多少钱。γ=0 表示只看眼前,γ=1 表示未来和现在一样重要。

这里有个关键点——马尔可夫性质。什么意思?就是“未来只取决于现在,与过去无关”。我在做量化交易系统时,经常要检查状态设计是否满足这个性质。比如,只用当前价格做状态就不行,因为趋势信息丢了。但如果你把过去N根K线都塞进去,那当前状态就包含了所有历史信息,未来只依赖这个状态——这就满足了。

我的经验: 设计MDP时,状态空间别太大也别太小。太大,训练慢得像蜗牛;太小,智能体学不到东西。我一般从10-20个维度开始试,慢慢调整。

3.2 策略(Policy)—— 智能体的“行为手册”

策略,就是告诉智能体“在某个状态下,该做什么”。它有两种形式:

  • 确定性策略(Deterministic Policy): 给定状态,直接输出一个动作。比如“股价涨了5%,就卖出”。
  • 随机性策略(Stochastic Policy): 给定状态,输出每个动作的概率。比如“有70%概率买入,30%概率持有”。

我个人习惯在交易系统中用随机性策略。为什么?因为市场本身就有随机性。确定性策略容易过拟合,换个行情就崩了。随机性策略给智能体留了点“探索空间”,反而更稳健。

策略通常记作 π(a|s),意思是“在状态s下选择动作a的概率”。

3.3 价值函数与Q函数 —— 给每个状态和动作“打分”

策略决定了行为,但我们需要知道“这个策略好不好”。这就引出了价值函数。

状态价值函数 V(s): 从状态s开始,按照策略π行动,能获得的累计折扣奖励的期望值。说白了,就是“站在这个位置,未来能赚多少钱”。

动作价值函数 Q(s, a): 在状态s下,先执行动作a,然后按照策略π行动,能获得的累计折扣奖励的期望值。说白了,就是“在这个位置,做这个动作,未来能赚多少钱”。

两者关系很简单:V(s) 就是在状态s下,对所有可能的动作a,取Q(s,a)的加权平均(权重就是策略π(a|s))。

避坑指南: 我曾经在项目中把V函数和Q函数搞混了,结果训练出来的智能体像个无头苍蝇。记住:V函数评价状态,Q函数评价“状态-动作”对。你要做决策,看Q函数;你要评估当前处境,看V函数。

下面这张图,是我自己总结的MDP核心逻辑,你看一眼就能明白整个流程:

马尔可夫决策过程(MDP)核心逻辑 智能体 (Agent) 环境 (Environment) 动作 A 状态 S' + 奖励 R 策略 π(a|s) V(s) / Q(s,a) 探索 vs 利用 智能体观察状态 → 根据策略选择动作 → 环境反馈新状态和奖励 价值函数评估策略好坏 → 探索与利用决定如何收集经验 循环迭代

3.4 探索与利用的权衡 —— 吃老本还是闯新路?

这是强化学习里最经典的两难问题。你想想看:

  • 利用(Exploitation): 按照当前已知的最优策略行动,最大化眼前收益。
  • 探索(Exploration): 尝试未知的动作,收集新信息,可能发现更好的策略。

只利用不探索,你会陷入局部最优。比如交易策略只会在牛市赚钱,熊市一来就崩。只探索不利用,那你永远在试错,赚不到钱。

常见的平衡方法有几种:

方法 核心思想 适用场景
ε-贪婪 以概率ε随机探索,以概率1-ε选择最优动作 简单、通用,适合初学者
UCB(上置信界) 选择“潜力最大”的动作,考虑不确定性 动作空间小,需要高效探索
汤普森采样 根据后验概率分布采样,随机选择动作 有先验知识,贝叶斯框架
熵正则化 在奖励函数中加入策略熵,鼓励随机性 连续动作空间,深度强化学习

注意: 探索不是乱试。我见过有人把ε设成0.5,结果智能体一半时间在随机操作,根本学不到东西。我的建议是:训练初期ε设大一点(0.3-0.5),让智能体多探索;随着训练进行,逐渐衰减到0.01-0.05。这叫“退火策略”,效果比固定值好得多。

3.5 把这些概念串起来 —— 一个交易场景的例子

光讲理论太干,咱们来点实际的。假设我们要做一个简单的股票交易智能体:

  • 状态: 过去10天的收盘价、成交量、RSI指标(共12维)
  • 动作: 买入、卖出、持有(3个离散动作)
  • 奖励: 每日盈亏金额(正数赚钱,负数亏钱)
  • 策略: 一个神经网络,输入状态,输出每个动作的概率
  • Q函数: 另一个神经网络,输入状态+动作,输出预期累计收益
  • 探索策略: ε-贪婪,ε从0.5开始,每1000步衰减到0.01

训练过程是这样的:智能体每天看当前状态,根据策略选动作,执行后得到新状态和奖励。这些经验存到记忆池里。每隔一段时间,从记忆池里抽一批数据,更新策略和Q函数。如此循环,直到策略收敛。

我的经验: 奖励设计是门艺术。我刚开始做时,直接用每日收益率做奖励,结果智能体学会了“频繁交易赚小钱”,手续费都亏光了。后来改成“扣除手续费后的累计收益率”,效果才好起来。记住:奖励函数决定了智能体“学什么”,一定要仔细设计。

好了,MDP的核心概念就这些。你可能会觉得有点抽象,没关系,后面几章我们会一步步把这些概念落地成代码。到时候你会发现,这些理论就像盖房子的图纸——看着复杂,但照着做,房子就能立起来。