3、强化学习基础回顾:马尔可夫决策过程、状态、动作、奖励、策略与价值函数
好,咱们进入正题。这一章我打算带大家快速回顾一下强化学习的核心骨架。说实话,很多同学一上来就撸PPO、DQN,结果连MDP是什么都说不清楚。嗯,这就像盖楼不打地基,迟早要塌。
我个人习惯是,不管项目多紧,都会先花半小时把MDP的五个要素在白板上画一遍。你想想看,策略迁移也好,仿真训练也罢,本质上都是在跟这五个东西打交道。
3.1 马尔可夫决策过程(MDP)—— 强化学习的“世界观”
马尔可夫决策过程,说白了就是描述智能体与环境交互的一套数学框架。我刚开始学的时候,觉得这名字太唬人了。其实核心就一句话:未来的状态只取决于当前的状态和动作,跟过去无关。这就是马尔可夫性。
举个例子,你在下围棋。当前棋盘上的局面就是状态,你落子的位置就是动作。下一步棋盘变成什么样,只取决于你现在怎么下,跟你三分钟前喝没喝水没关系。嗯,这就是马尔可夫性。
MDP可以用一个五元组来表示:(S, A, P, R, γ)。咱们一个一个拆开看。
核心五元组:
- S:状态空间,所有可能状态的集合
- A:动作空间,智能体可以执行的动作集合
- P:状态转移概率,
P(s' | s, a)表示在状态s执行动作a后转移到s'的概率 - R:奖励函数,
R(s, a, s')表示转移后获得的即时奖励 - γ:折扣因子,取值范围[0,1],用来平衡当前奖励和未来奖励
我曾经在一个机器人导航项目里踩过坑。当时我直接把传感器原始数据当状态,结果状态空间爆炸了,训练根本跑不动。后来才意识到,状态设计不是越细越好,而是要抓住关键特征。
3.2 状态与动作 —— 你看到什么,你能做什么
状态就是智能体对环境的感知。动作就是智能体改变环境的手段。这两个东西设计得好不好,直接决定了训练能不能收敛。
我给大家一个实用建议:状态要满足“可观测、可重复、有区分度”。什么叫可重复?就是同样的状态在不同时间出现时,智能体能认出来。有区分度就是,不同的关键情况必须对应不同的状态。
动作设计也有讲究。动作空间可以是离散的,比如上下左右四个方向;也可以是连续的,比如方向盘转角0到360度。我个人习惯是,能用离散就别用连续,因为离散动作的探索效率高得多。
避坑指南: 我曾经在一个仿真迁移项目里,把动作空间设得太细,结果智能体在仿真里学了一堆花里胡哨的动作,迁移到真机上全废了。后来我把动作离散化成几个关键档位,效果反而更好。
3.3 奖励 —— 智能体的“胡萝卜加大棒”
奖励函数是强化学习里最玄学的东西。你给对了,智能体学得飞快;你给错了,它可能学会一些你完全没想到的骚操作。
我记得有个经典案例:让智能体学走路,你只给“走到终点”的奖励。结果它学会了翻跟头——因为翻跟头也能到终点,而且更快。嗯,这就是奖励设计不当的后果。
好的奖励函数应该满足三个原则:
- 稀疏但不缺失:奖励不能太多,否则智能体学不到长期策略;但也不能太少,否则探索成本太高
- 渐进式引导:给一些中间过程的奖励,比如接近目标就给小奖励
- 避免漏洞:仔细检查有没有让智能体钻空子的地方
注意: 奖励缩放也很重要。我见过有人把奖励设成1000和-1000,结果梯度爆炸,模型直接崩了。一般建议把奖励控制在[-1, 1]或者[-10, 10]之间。
3.4 策略 —— 智能体的“行动指南”
策略就是智能体在某个状态下应该做什么。用数学语言说,策略 π(a|s) 表示在状态s下选择动作a的概率。
策略分两种:
- 确定性策略:每个状态对应一个确定的动作,比如“看到红灯就刹车”
- 随机性策略:每个状态对应一个动作的概率分布,比如“有80%概率左转,20%概率直行”
我个人更偏爱随机性策略,尤其是在探索阶段。为什么呢?因为确定性策略容易陷入局部最优,而随机性策略能帮你跳出坑。当然,到了后期收敛阶段,确定性策略更稳定。
3.5 价值函数 —— 智能体的“长远眼光”
价值函数是强化学习里最核心的概念之一。它回答一个问题:当前这个状态(或状态-动作对)到底有多好?
价值函数分两种:
| 类型 | 符号 | 含义 | 应用场景 |
|---|---|---|---|
| 状态价值函数 | V(s) | 从状态s开始,按照策略π能获得的期望累计奖励 | 评估某个状态的好坏 |
| 动作价值函数 | Q(s, a) | 在状态s执行动作a后,按照策略π能获得的期望累计奖励 | 评估某个动作的好坏 |
你想想看,有了Q函数,智能体做决策就简单了:在每个状态下,选Q值最大的那个动作就行。这就是Q-learning的核心思想。
我记得有一次做策略迁移,源域和目标域的状态空间不一样。我直接用Q函数做迁移,结果发现Q值分布完全对不上。后来我改用V函数做迁移,效果好了很多。为什么呢?因为V函数只关心状态本身,不关心具体动作,泛化能力更强。
3.6 核心逻辑关系图
下面这张图是我自己画的,把MDP的五个要素串起来了。你看一遍应该就能理解整个流程。
这张图你看懂了吗?智能体根据策略选择动作,动作作用于环境,环境返回新的状态和奖励。同时,价值函数评估状态或动作的好坏,反过来优化策略。这就是强化学习的闭环。
3.7 小结
好了,这一章的内容就这些。MDP是强化学习的基石,状态、动作、奖励、策略、价值函数这五个概念,你以后会天天跟它们打交道。
我个人建议,学完这一章后,你可以试着用MDP的框架去描述一个你熟悉的问题。比如下棋、玩游戏、机器人控制,看看能不能把状态、动作、奖励都定义清楚。能定义清楚,你就已经入门了。
嗯,下一章咱们会讲策略梯度方法,那是真正开始动手写代码的地方。不过在那之前,先把MDP吃透,别急着往前冲。
一句话总结: MDP就是强化学习的“世界观”,搞懂了它,后面的算法都是在这个框架上做文章。