第三节:马尔可夫决策过程——强化学习的“游戏规则”
各位同学,今天我们来聊聊强化学习里最核心的一个概念——马尔可夫决策过程,简称MDP。说实话,我刚开始接触强化学习时,觉得MDP就是个数学框架,离实际挺远的。直到后来做机器人控制项目,才真正体会到:不理解MDP,你连强化学习的大门都没摸到。
MDP说白了,就是给智能体制定一套“游戏规则”。它告诉我们:智能体在什么状态下,可以做什么动作,做完动作后会变成什么新状态,能拿到多少奖励。嗯,就这么简单。
3.1 MDP五元组:五个要素,缺一不可
一个完整的MDP由五个元素组成,我习惯叫它“五元组”。你想想看,就像做菜需要食材、调料、火候一样,MDP也需要这五个东西才能运转起来。
- S(状态空间):智能体可能处于的所有状态。比如机器人关节的角度、速度。
- A(动作空间):智能体可以执行的所有动作。比如给电机施加多大的力矩。
- P(状态转移概率):执行动作后,状态会怎么变化。这是随机性的来源。
- R(奖励函数):每个状态或动作能拿到多少奖励。这是智能体的“动力”。
- γ(折扣因子):未来奖励的打折系数。0到1之间的一个数。
核心要点:五元组定义了强化学习问题的全部边界。你设计算法时,本质上就是在定义或学习这五个元素。
我在项目中遇到过一个问题:有人把状态空间定义得太大,结果算法怎么都学不出来。后来我建议他把关节角度离散化,问题就解决了。所以,状态空间的设计直接影响学习效率。
3.2 状态转移概率:世界不是确定的
状态转移概率P(s'|s,a)表示:在状态s执行动作a后,到达状态s'的概率。为什么不是确定的?因为现实世界有噪声啊!
举个例子:你让机器人关节转到30度,但电机有误差、摩擦力有波动,实际可能转到29.8度或30.2度。这就是随机性。
我曾经调试一个四足机器人,发现它走路总是歪。排查了半天,原来是状态转移概率没建模好——地面摩擦系数变化导致实际运动与预期不符。后来我加入了随机噪声,模型就稳了。
我的经验:在仿真环境中,状态转移概率通常是确定的(你知道下一步会到哪)。但在真实机器人上,一定要考虑随机性。否则仿真跑得再好,一上真机就翻车。
3.3 回报与折扣因子:短期还是长期?
回报G_t是智能体从当前时刻开始,到未来所有奖励的总和。但这里有个问题:未来的奖励值多少钱?
折扣因子γ就是干这个的。γ=0时,智能体只看眼前奖励;γ=1时,未来奖励和现在一样重要。实际中γ通常取0.9到0.99之间。
为什么要有折扣?我个人觉得有两个原因:
- 数学上:保证无限时间步的回报收敛,不会无穷大。
- 直觉上:现在的100块比未来的100块更值钱。你想想看,是不是这个道理?
避坑指南:我曾经在训练一个机械臂抓取任务时,把γ设成了0.99。结果智能体学会了“拖延”——它先做一堆无关动作,最后才抓取。因为γ接近1,它觉得“反正未来奖励差不多”。后来我把γ降到0.9,它就开始积极抓取了。
3.4 价值函数与策略:评估与决策
价值函数和策略,是MDP里最核心的两个概念。一个负责“评估”,一个负责“决策”。
3.4.1 价值函数:这个状态值多少钱?
状态价值函数V(s)表示:从状态s开始,按照某个策略行动,能获得的期望回报。说白了,就是“这个状态好不好”。
动作价值函数Q(s,a)表示:在状态s执行动作a后,再按照某个策略行动,能获得的期望回报。它比V(s)多了一个“动作”维度。
我记得刚开始学的时候,总搞不清V和Q的区别。后来做项目时发现:V函数用于评估状态,Q函数用于选择动作。就这么简单。
3.4.2 策略:下一步该怎么做?
策略π(a|s)表示:在状态s下,选择动作a的概率。策略就是智能体的“行为准则”。
策略分两种:
- 确定性策略:每个状态对应一个确定的动作。比如“关节角度30度时,施加5N·m力矩”。
- 随机性策略:每个状态对应一个动作概率分布。比如“有80%概率施加5N·m,20%概率施加3N·m”。
为什么要有随机策略?因为探索!如果总是选最优动作,可能永远发现不了更好的路径。我习惯在训练初期用随机策略,后期再逐渐确定化。
3.5 MDP知识体系总览
下面这张图是我自己画的,把MDP的核心逻辑串起来了。你看一遍就能明白:智能体怎么感知状态、怎么决策、怎么获得奖励、怎么更新策略。
3.6 实战中的MDP设计要点
说了这么多理论,来点实际的。我在做机器人关节控制时,MDP设计有几个关键点:
| MDP元素 | 设计要点 | 我的经验 |
|---|---|---|
| 状态空间S | 包含关节角度、角速度、目标位置 | 不要包含无关信息,否则维度爆炸 |
| 动作空间A | 电机力矩或目标角度 | 连续动作用高斯策略,离散用softmax |
| 奖励函数R | 接近目标给正奖励,远离给负奖励 | 奖励要稀疏但不要太空,否则学不动 |
| 折扣因子γ | 0.9~0.99 | 任务周期短用0.9,长用0.99 |
小技巧:如果你不确定奖励函数怎么设计,先试试“到达目标+1,否则0”。简单粗暴,但往往有效。我第一个成功的机器人控制项目就是这么干的。
好了,MDP的核心内容就这些。记住:五元组是骨架,价值函数是评估,策略是决策。把这几个概念吃透了,后面的强化学习算法就是水到渠成的事。
可可精品资料库