1. 强化学习基础:马尔可夫决策过程、策略梯度、Q-learning核心概念
说实话,很多刚入行的朋友一上来就问我:「强化学习到底难不难?」我的回答是——基础概念搞透了,后面全是套路。今天咱们就把这三个最核心的东西掰开揉碎讲清楚。
1.1 马尔可夫决策过程(MDP)—— 强化学习的「世界观」
我个人习惯把MDP理解成「智能体眼中的世界模型」。你想想看,机器人抓取一个杯子,它需要知道:当前手在哪儿(状态)、该往哪个方向动(动作)、动完之后手到哪儿了(状态转移)、有没有抓到(奖励)。
MDP用数学语言描述就是五元组:(S, A, P, R, γ)。
| 符号 | 含义 | 抓取场景举例 |
|---|---|---|
| S | 状态空间 | 关节角度、末端位置、物体位姿 |
| A | 动作空间 | 关节力矩、末端速度 |
| P | 状态转移概率 | 施加力矩后,关节实际转动的概率分布 |
| R | 奖励函数 | 成功抓取+10,碰撞-1 |
| γ | 折扣因子 | 0.95,越远的奖励越不重要 |
说白了就是:「现在的手部状态已经包含了所有历史信息,不需要回头看。」
我在项目中遇到过一个问题:仿真环境里状态转移是确定的,但真实机器人有摩擦、有延迟。这时候MDP的P就不是确定的了。嗯,这里要注意——真实环境一定要建模成随机MDP,否则策略到了真机上会崩。
1.2 策略梯度 —— 直接优化「怎么做」
策略梯度的思路很直接:既然我们要学一个策略π(a|s),那就直接对这个策略的参数θ求梯度,让奖励最大化。
目标函数长这样:
J(θ) = E[ Σ γ^t * r_t ] // 期望累积折扣奖励
∇J(θ) = E[ ∇log π(a|s) * Q(s,a) ] // 策略梯度定理
你可能会问:「为什么是log?」我刚开始学的时候也困惑。其实这是似然比技巧——把对策略的梯度转化成对log概率的梯度,这样采样就能估计了。
避坑指南:我曾经在训练抓取策略时,发现奖励一直上不去。后来排查发现——策略梯度的方差太大了。解决办法是加一个基线(baseline),比如用状态价值函数V(s)减去,能大幅降低方差。
1.3 Q-learning —— 学会「评估」每个动作
Q-learning的思路和策略梯度完全不同。它不直接学策略,而是学一个动作价值函数Q(s,a),告诉你「在状态s下做动作a,未来能拿多少奖励」。
更新公式:
Q(s,a) ← Q(s,a) + α [ r + γ * max_a' Q(s',a') - Q(s,a) ]
这个公式里有个关键点:max_a' Q(s',a')。它用的是下一个状态的最优动作的价值,而不是当前策略的动作。这就是off-policy的核心——从别人的经验里学习。
解决办法?用Double Q-learning,或者用两个Q网络互相制约。嗯,这个后面章节会细讲。
1.4 三者的关系与选择
我画了一张图帮你理清思路:
1.5 实战中的避坑指南
- 奖励设计是门玄学:我曾经给抓取任务设了一个「成功+100,失败-1」的奖励,结果智能体学会了「疯狂尝试,偶尔成功」——因为失败惩罚太轻了。后来改成「成功+10,失败-10,每一步-0.1」,才收敛。
- 状态表示要够用:别把原始图像直接丢给Q-learning,维度太高。我习惯用特征工程——提取物体位置、手部姿态、接触力等低维特征。
- 探索与利用的平衡:Q-learning用ε-greedy,策略梯度用熵正则化。我个人的经验是——前期多探索,后期少探索,但别完全停止探索,否则遇到新情况就傻了。
好了,这一章的核心就是这些。MDP是骨架,策略梯度和Q-learning是两种不同的「血肉填充方式」。理解了三者的关系,后面学Actor-Critic、PPO、DQN就会轻松很多。