4. 强化学习算法概览
在无人机控制任务中,强化学习要解决的核心问题是:智能体如何在未知或部分已知的环境中,通过不断试错找到使长期回报最大的控制策略。围绕“如何估计价值”和“如何改进策略”这两条主线,强化学习算法演化出一条清晰的谱系:动态规划、蒙特卡洛、时序差分、Q-learning、SARSA、策略梯度与Actor-Critic。理解它们的差异,比记住公式更重要。
一、核心原理:两条主线与一个谱系
几乎所有强化学习算法都在回答两个问题:价值估计(当前状态或动作有多好)和策略改进(如何根据价值选择动作)。动态规划假设环境模型已知,用贝尔曼方程迭代求解;蒙特卡洛必须等到回合结束,用完整回报估计价值;时序差分则用“即时奖励 + 下一状态估计”进行自举,不需要等回合结束。Q-learning与SARSA都属于时序差分控制,区别在于更新目标是否使用下一动作的实际选择;策略梯度直接对策略参数求梯度;Actor-Critic则把“策略”和“价值”合二为一,用Critic降低策略梯度的方差。
二、方法流程:从表格到函数逼近
在无人机悬停或航点跟踪任务中,若状态空间离散且较小,可以用表格存储 Q 值。Q-learning 的更新规则如下:
Q(S,A) ← Q(S,A) + α [ R + γ · max_a Q(S',a) − Q(S,A) ]
# SARSA 仅改一处:
Q(S,A) ← Q(S,A) + α [ R + γ · Q(S',A') − Q(S,A) ]
当状态变为连续量(位置、速度、姿态角、角速度)时,表格法失效,需要用神经网络逼近 Q(s,a) 或 π(a|s)。DQN 用经验回放和目标网络稳定 Q-learning;DDPG 用 Actor-Critic 处理连续动作;PPO 则通过限制策略更新幅度,在无人机仿真到实机迁移中表现稳健。
三、案例场景:无人机航点跟踪中的算法选择
假设无人机需要在风扰下依次飞过 5 个航点。若把位置误差和航向误差离散为 20×20 网格,动作离散为 9 种,Q-learning 可以工作,但收敛慢且泛化差。改用 DDPG 或 SAC,动作直接输出油门、俯仰、滚转、偏航指令,状态为连续向量,训练效率更高。若任务奖励稀疏(只有到达航点才给正奖励),策略梯度类方法配合奖励塑形或课程学习更合适。若仿真环境昂贵,优先选择样本效率较高的 SAC;若追求训练稳定和调参简单,PPO 是更稳妥的起点。
| 算法 | 是否需模型 | 更新时机 | On/Off-policy | 动作空间 | 无人机场景建议 |
|---|---|---|---|---|---|
| 动态规划 | 需要 | 全量迭代 | — | 离散 | 仅用于已知模型的理论分析 |
| 蒙特卡洛 | 不需要 | 回合结束 | On/Off均可 | 离散/连续 | 回合制任务,方差大 |
| 时序差分 | 不需要 | 单步 | On/Off均可 | 离散 | 基础价值估计 |
| Q-learning | 不需要 | 单步 | Off-policy | 离散 | 小规模离散控制 |
| SARSA | 不需要 | 单步 | On-policy | 离散 | 安全敏感、保守策略 |
| 策略梯度 | 不需要 | 回合/批量 | On-policy | 离散/连续 | 连续控制,方差高 |
| Actor-Critic | 不需要 | 单步/批量 | On/Off均可 | 连续 | 无人机连续控制主流 |
四、误区与复盘
常见误区一:把 Q-learning 和 SARSA 混为一谈。两者只差一个更新目标,但行为差异明显。Q-learning 使用 max 操作,在危险边缘可能高估价值,导致无人机贴近禁飞区;SARSA 使用实际下一动作,策略更保守,适合安全约束强的场景。
复盘建议:在 Sim2Real 项目中,先明确动作空间是离散还是连续,再决定算法族。离散小空间可从 Q-learning 或 DQN 起步;连续控制优先 Actor-Critic 系列。训练初期用仿真环境大量采样,部署前用域随机化缩小现实差距。若发现策略震荡,检查学习率、奖励尺度和优势估计是否合理,而不是盲目更换算法。
从动态规划到 Actor-Critic,算法演化的本质是不断放松假设:从已知模型到无模型,从回合更新到单步更新,从离散动作到连续动作,从高方差到低方差。掌握这条主线,才能在无人机控制任务中做出有依据的算法选择。