第一讲:课程导论与数学基础
大家好,欢迎来到《强化学习驱动轨迹规划》的第一课。
说实话,我刚开始接触这个领域时,也觉得很懵。强化学习?轨迹规划?这两个东西怎么扯上关系的?
别急,今天我们就把它掰开揉碎了讲清楚。
1.1 强化学习在轨迹规划中的角色
先问大家一个问题:传统的轨迹规划是怎么做的?
你设定起点、终点,中间避开障碍物,然后算法算出一条路径。比如RRT、A*、人工势场法,这些都是经典方法。
但问题来了——如果环境是动态的呢?如果障碍物会动呢?如果机器人本身有不确定性呢?
这时候,传统方法就有点吃力了。
强化学习能干什么?
说白了,它让机器人自己学会「怎么走」。不是靠人工写规则,而是靠试错、靠奖励、靠经验积累。
我举个例子。我之前做过一个项目,让机械臂抓取流水线上随机位置的零件。传统方法需要每帧重新规划轨迹,计算量很大。后来换成强化学习,训练一个策略网络,输入当前状态,直接输出关节角度。嗯,效果还不错,抓取成功率从82%提到了96%。
1.2 马尔可夫决策过程(MDP)
要理解强化学习,必须先理解MDP。这是整个理论的基石。
MDP是什么?
它是一个数学模型,用来描述「智能体与环境交互」的过程。
你想想看,机器人每走一步,都会观察当前状态,然后决定下一步动作。环境会给出反馈(奖励),然后状态发生变化。这不就是一个循环吗?
MDP用五个要素来描述这个过程:
- S(状态空间):所有可能的状态集合
- A(动作空间):所有可能的动作集合
- P(状态转移概率):从状态s执行动作a后,转移到s'的概率
- R(奖励函数):在状态s执行动作a后,获得的即时奖励
- γ(折扣因子):未来奖励的衰减系数,0到1之间
这里有个关键点:马尔可夫性。意思是,下一时刻的状态只取决于当前状态和动作,与历史无关。
「这合理吗?」你可能会问。
说实话,在机器人轨迹规划中,这个假设有时候不太成立。比如机器人有惯性,当前速度会影响下一时刻的位置。但我们可以通过「状态设计」来解决——把速度、加速度都纳入状态中。这样,状态就包含了足够的信息,马尔可夫性就近似成立了。
1.3 状态、动作、奖励与策略
这四个概念,是强化学习的核心。我们一个一个说。
状态(State)
状态就是机器人「看到的世界」。在轨迹规划中,状态通常包括:
- 机器人自身的位置、速度、关节角度
- 目标点的位置
- 障碍物的位置和速度
- 有时候还包括环境地图、传感器数据
状态设计很关键。状态太少,机器人看不到全局;状态太多,学习难度大、收敛慢。
我记得有一次,我把机械臂的每个关节角度都放进状态,结果训练了三天都没收敛。后来发现,有些关节对当前任务根本不重要。去掉之后,训练时间缩短了70%。
动作(Action)
动作就是机器人「能做什么」。在轨迹规划中,动作可以是:
- 连续动作:比如关节速度、加速度、力矩
- 离散动作:比如向左转、向右转、前进、停止
连续动作更灵活,但学习难度大。离散动作简单,但精度受限。
我个人习惯,在初期验证阶段先用离散动作,等算法稳定了再切换到连续动作。
奖励(Reward)
奖励是强化学习的「指挥棒」。你设计什么样的奖励,机器人就学会什么样的行为。
在轨迹规划中,常见的奖励设计:
- 到达目标:+100
- 碰撞障碍物:-100
- 每一步的能耗:-0.1
- 距离目标越近:奖励越大
这里有个坑——奖励稀疏问题。如果机器人只在到达目标时获得奖励,那它可能永远学不会。因为随机探索很难恰好到达目标。
策略(Policy)
策略就是机器人的「决策规则」。它告诉机器人:在某个状态下,应该执行什么动作。
策略有两种表示方式:
- 确定性策略:π(s) = a,给定状态,直接输出动作
- 随机性策略:π(a|s) = P(a|s),给定状态,输出动作的概率分布
随机性策略在探索阶段很有用。因为机器人需要尝试不同的动作,才能发现更好的策略。
1.4 知识体系总览
下面这张图,是我自己画的。它展示了本章的核心逻辑:
1.5 一个简单的例子
为了让你更直观地理解,我们看一个极简的例子:
假设有一个点机器人,在二维平面上移动。目标是到达右上角的绿色区域。
- 状态:机器人的(x, y)坐标
- 动作:向上、向下、向左、向右(每次移动1个单位)
- 奖励:到达目标区域+10,碰到边界-5,其他情况-0.1(时间惩罚)
- 策略:一开始随机,后来学会朝目标方向移动
这个例子虽然简单,但麻雀虽小五脏俱全。你理解了它,就理解了强化学习轨迹规划的基本框架。
好,今天的内容就到这里。下一讲我们会深入讨论「价值函数与贝尔曼方程」,那是强化学习的数学引擎。
可可精品资料库