3. 强化学习入门
在无人机控制任务中,强化学习要解决的核心问题是:智能体如何在与环境的持续交互中,通过试错学会一套控制策略,使长期累积回报最大。要形式化描述这个问题,最基础的数学框架就是马尔可夫决策过程(Markov Decision Process, MDP)。可以说,MDP 是强化学习的“语法”,而状态、动作、奖励、策略、价值函数和贝尔曼方程则是构成这套语法的基本词汇。
一、马尔可夫决策过程:把控制问题写成五元组
一个 MDP 通常用五元组 (S, A, P, R, γ) 表示:
- S(状态空间):环境所有可能状态的集合。对无人机而言,状态可包含位置、速度、姿态角、角速度、剩余电量、目标相对位置等。
- A(动作空间):智能体可执行动作的集合。可以是连续的四旋翼电机转速、推力与力矩,也可以是离散的前后左右、升降等指令。
- P(状态转移概率):
P(s'|s,a)表示在状态 s 执行动作 a 后转移到 s' 的概率。无人机动力学若含风扰、传感器噪声,则转移具有随机性。 - R(奖励函数):
R(s,a,s')给出即时奖励,是引导学习方向的“指挥棒”。 - γ(折扣因子):
0 ≤ γ ≤ 1,衡量未来奖励的重要性。γ 越接近 1,智能体越有远见。
MDP 的关键假设是马尔可夫性:下一状态只取决于当前状态和当前动作,与更早的历史无关。因此,状态设计必须尽量包含决策所需的全部信息,否则策略会因“信息缺失”而表现不稳定。
二、状态空间与动作空间:无人机任务建模的第一道关
状态空间和动作空间的设计直接决定学习难度。状态太少,智能体无法区分不同局面;状态太多,训练样本需求急剧上升。对无人机定点悬停任务,一个常用状态向量可写为:
state = [
px, py, pz, # 位置误差
vx, vy, vz, # 速度
roll, pitch, yaw, # 姿态角
p, q, r, # 角速度
battery # 剩余电量
]
动作空间则可分为离散与连续两类。离散动作适合粗粒度决策,如“上升、下降、左移、右移、前进、后退、悬停”;连续动作适合精细控制,如直接输出四个电机 PWM 或总推力与三轴力矩。连续动作空间通常需要配合确定性策略梯度或随机高斯策略。
三、奖励函数:把任务目标翻译成标量信号
奖励函数是强化学习中最需要“工程直觉”的部分。它不直接告诉智能体怎么做,而是通过标量反馈塑造行为。以无人机穿越门框任务为例,奖励可设计为:
- 前进奖励:
r_forward = +k1 * (x_t - x_{t-1}),鼓励向目标方向移动。 - 姿态惩罚:
r_att = -k2 * (roll² + pitch²),抑制剧烈倾斜。 - 能耗惩罚:
r_energy = -k3 * ||a||²,避免频繁大动作。 - 碰撞惩罚:
r_collision = -100,并终止回合。 - 成功奖励:
r_success = +200,到达目标区域时给予。
奖励设计常见误区是“奖励稀疏”或“奖励黑客”。若只有成功奖励,智能体可能长期学不到有效行为;若惩罚项权重过大,智能体可能学会“原地不动”以规避风险。因此,奖励项之间需要反复调参和可视化验证。
四、策略与价值函数:从“怎么做”到“有多好”
策略 π(a|s) 定义智能体在每个状态下选择动作的规则。它可以是确定性的 a = μ(s),也可以是随机性的 a ~ π(·|s)。随机策略在探索阶段尤为重要,能避免过早陷入局部最优。
价值函数用于评估策略的长期表现。状态价值函数 Vπ(s) 表示从状态 s 出发,按策略 π 行动所能获得的期望折扣回报;动作价值函数 Qπ(s,a) 则表示在状态 s 先执行动作 a,再按 π 行动的期望回报。二者关系为:
Vπ(s) = Σ_a π(a|s) · Qπ(s,a)
Qπ(s,a) = Σ_{s'} P(s'|s,a) · [ R(s,a,s') + γ · Vπ(s') ]
在无人机控制中,Q 值可以帮助比较“当前状态下向左还是向右更优”,而 V 值更适合评估某个悬停点或航路点的长期安全性。
五、贝尔曼方程:价值递推的核心
贝尔曼方程把“长期回报”拆解为“即时奖励 + 折扣后的未来价值”,是几乎所有强化学习算法的基石。其最优形式为:
V*(s) = max_a Σ_{s'} P(s'|s,a) · [ R(s,a,s') + γ · V*(s') ]
Q*(s,a) = Σ_{s'} P(s'|s,a) · [ R(s,a,s') + γ · max_{a'} Q*(s',a') ]
贝尔曼方程的意义在于:它把一个无限时域的优化问题转化为可迭代求解的递推问题。值迭代、策略迭代、Q-Learning、DQN 等方法,本质上都在用不同方式逼近这个方程的解。
| 概念 | 符号 | 无人机场景中的含义 | 常见设计要点 |
|---|---|---|---|
| 状态空间 | S | 位置、速度、姿态、电量、目标相对位置 | 包含决策所需信息,避免维度爆炸 |
| 动作空间 | A | 电机转速、推力力矩或离散飞行指令 | 连续动作需配合策略梯度方法 |
| 奖励函数 | R | 前进、姿态、能耗、碰撞、成功奖励 | 权重平衡,避免稀疏与奖励黑客 |
| 策略 | π(a|s) | 从传感器状态到控制量的映射 | 训练时随机探索,部署时可确定性 |
| 价值函数 | V / Q | 评估状态或动作的长期回报 | 用于策略改进与优势估计 |
| 贝尔曼方程 | V*, Q* | 价值递推与最优策略求解 | 值迭代、Q-Learning 的理论基础 |
六、案例复盘:定点悬停任务的 MDP 建模
假设任务要求无人机从起点飞到目标点并稳定悬停。一个可用的 MDP 建模如下:
- 状态:目标相对位置
(Δx, Δy, Δz)、速度(vx, vy, vz)、姿态角(roll, pitch)。 - 动作:总推力增量与滚转、俯仰力矩,共 3 维连续动作。
- 奖励:
r = -0.1*||Δp|| - 0.05*||v|| - 0.02*||a|| + 到达奖励。 - 终止条件:距离目标小于 0.2 m 且速度小于 0.1 m/s,或飞出安全边界。
训练初期,无人机可能频繁震荡甚至翻车;随着价值函数逐渐收敛,策略会学会先加速接近、再减速悬停。若发现悬停时高度缓慢漂移,通常不是算法问题,而是状态中缺少积分项或奖励对高度误差惩罚不足。此时应回到 MDP 建模层面检查,而不是盲目增加训练轮数。
掌握 MDP、状态、动作、奖励、策略、价值函数与贝尔曼方程,就具备了理解后续 Q-Learning、策略梯度、Actor-Critic 以及 Sim2Real 迁移方法的基础。它们共同回答了一个问题:无人机如何在不确定环境中,通过试错学会长期最优的控制策略。