3. 强化学习核心概念
在灵巧手操作任务中,强化学习并不是“让机械手自己乱试”这么简单。它依赖一套严格的数学框架来描述“手在什么情况下、做什么动作、得到什么反馈、以后会怎样”。这套框架的核心就是马尔可夫决策过程(MDP)。理解 MDP 及其五个关键要素——状态空间、动作空间、奖励函数、策略、价值函数——是后续设计抓取、旋转、插拔等操作策略的基础。
一、核心原理:MDP 把操作任务变成可计算问题
MDP 用五元组 (S, A, P, R, γ) 描述一个序贯决策问题。在灵巧手场景中:
- S(状态空间):描述当前手、物体和环境的全部可观测信息,例如 24 个关节角、6 维指尖力、物体位姿、接触点集合。
- A(动作空间):每个控制周期可执行的动作,例如 24 维关节目标位置增量、或 6 维手腕位姿增量。
- P(转移概率):执行动作后环境如何变化,通常由物理仿真器或真实世界决定,智能体无法直接控制。
- R(奖励函数):每一步给出的标量反馈,告诉智能体“刚才做得好不好”。
- γ(折扣因子):0 到 1 之间的数,决定智能体更看重眼前奖励还是长远回报。
MDP 的关键假设是马尔可夫性:下一状态只取决于当前状态和当前动作,与更早的历史无关。因此,状态设计必须尽量包含决策所需的信息;如果状态漏掉了物体速度或接触力,策略就可能“看起来能抓,实际一碰就掉”。
二、状态空间与动作空间:灵巧手的“输入”和“输出”
状态空间设计直接决定策略能否学到有效操作。以 24 自由度灵巧手抓取一个杯子为例,状态通常包含:
- 本体状态:24 个关节角度、关节速度、当前电流或力矩。
- 触觉状态:指尖六维力/力矩、接触点位置、接触面积。
- 物体状态:杯子位姿、线速度、角速度、是否滑动。
- 任务状态:目标位姿、剩余时间、阶段标志(接近/接触/抓稳/抬起)。
动作空间则分为连续动作和离散动作。灵巧手精细操作通常使用连续动作,例如每个关节的目标角度增量;而高层技能选择(抓、转、放)可以用离散动作。动作空间过大或过小都会带来问题:过大导致探索困难,过小则无法完成精细操作。
三、奖励函数:把“会抓”翻译成数字
奖励函数是强化学习中最需要工程经验的部分。灵巧手抓取任务常用奖励由多项组成:
r_t = w1 * 接近奖励
+ w2 * 接触奖励
+ w3 * 抓取稳定奖励
+ w4 * 抬起高度奖励
- w5 * 掉落惩罚
- w6 * 关节力矩惩罚
- w7 * 动作平滑惩罚
其中,接近奖励常用指尖到目标点的负距离;抓取稳定奖励可基于接触力是否在合理区间;掉落惩罚在物体高度骤降或接触丢失时触发。奖励设计要避免“奖励黑客”:例如只奖励抬起高度,智能体可能把杯子甩到空中,而不是稳定抓取。
四、策略与价值函数:从“怎么做”到“值不值得”
策略 π(a|s) 是智能体的行为规则,输入状态,输出动作或动作分布。它分为随机策略和确定性策略。随机策略便于探索,确定性策略便于部署。
价值函数衡量“从当前状态出发,按某策略走下去,长期能拿多少回报”。状态价值函数 Vπ(s) 表示从状态 s 开始的期望折扣回报;动作价值函数 Qπ(s,a) 表示在状态 s 执行动作 a 后的期望回报。二者关系为:
Vπ(s) = Σ_a π(a|s) * Qπ(s,a)
Qπ(s,a) = R(s,a) + γ * Σ_s' P(s'|s,a) * Vπ(s')
在灵巧手训练中,价值函数帮助智能体判断“现在这个手型离成功还有多远”,从而在探索时优先选择更有希望的动作。常见算法如 PPO、SAC、DDPG 都围绕策略和价值函数进行迭代更新。
五、案例与误区复盘
| 要素 | 灵巧手抓取示例 | 常见误区 |
|---|---|---|
| 状态空间 | 关节角+指尖力+物体位姿 | 遗漏接触力,导致无法判断滑动 |
| 动作空间 | 24维关节增量,限幅±0.05rad | 动作范围过大,机械手抖动剧烈 |
| 奖励函数 | 接近+接触+稳定-掉落-力矩 | 只奖励抬起,导致甩飞物体 |
| 策略 | PPO随机策略,训练后转确定性 | 训练与部署动作分布不一致 |
| 价值函数 | Q值引导探索,V值评估状态 | 折扣因子过小,只看眼前奖励 |