强化学习实战:离散与连续动作空间的策略梯度优化对比

1. 动作空间:理解强化学习智能体的“手脚”

想象一下,你在教一个机器人走路。你告诉它“抬腿”,这是一个明确的指令。但如果这个指令是“用0.5牛顿的力,以30度的角度向前迈出0.3米”,这就复杂多了。在强化学习的世界里,智能体(Agent)如何“行动”,完全取决于它所在的动作空间。这是所有强化学习实战的起点,也是决定我们选择哪种算法、走哪条技术路线的关键岔路口。

简单来说,动作空间就是智能体所有可能动作的集合。它定义了智能体“能做什么”。根据这个集合是有限的、可数的,还是无限的、连续的,我们将其分为两大类:离散动作空间连续动作空间。这个区别听起来简单,但在实际训练模型时,带来的挑战和解决方案是天差地别的。我刚开始接触时,曾天真地以为把连续动作“切”成几段就能当离散的用,结果在机械臂控制项目上踩了个大坑,模型死活学不会精细操作。所以,咱们得先把这两兄弟彻底搞明白。

1.1 离散动作空间:选择题的世界

离散动作空间就像在做选择题。动作的数量是有限的、可列举的。比如,玩经典的“打砖块”游戏,你的操作可能只有 {向左, 向右, 发射}。又比如,围棋AI AlphaGo,它的动作就是在19x19的棋盘上选择一个交叉点落子,总共有361个明确的、互不相同的动作选项。

处理离散动作空间,我们最熟悉的“老朋友”就是DQN及其变种。DQN的核心思想是学习一个动作价值函数,它评估在某个状态下,采取每个可能动作的长期收益。智能体只需要在每一步,从所有动作中选出那个估值最高的动作即可。这非常直观,就像你面前有多个按钮,每个按钮上标好了预期的回报,你只需要按下回报最高的那个。

这种方法的优点是结构清晰,训练相对稳定。但它的局限性也很明显:它无法直接处理连续动作。因为连续动作空间是无穷的,你不可能为每一个可能的力的大小、角度都预先计算一个Q值。如果你非要把连续动作空间强行离散化,比如把机械臂的关节角度从0度到180度每隔1度切一刀,那么一个关节就有181个动作。如果是6个关节的机械臂,组合起来的动作数量将是181的6次方,这是一个天文数字,会立刻导致维度灾难,让模型根本无法有效学习和探索。

1.2 连续动作空间:填空题的世界

连续动作空间则像是在做填空题。动作是一个或多个连续变量,可以在一个实数区间内取任意值。比如,控制一个机器人的轮子转速,可以是 [0, 10] 转/秒之间的任意实数;控制一个机械臂末端的空间位置 (x, y, z),每个坐标都是一个连续值。

这才是现实世界中大多数物理控制问题的本来面貌。你不能只告诉无人机“上升”或“下降”,你需要精确控制四个螺旋桨的转速;你不能只告诉自动驾驶汽车“左转”或“右转”,你需要给出方向盘的具体转角。面对这个“填空题”,我们主要有两大解题思路:

  1. 离散化:就像前面提到的,把连续区间切成很多小段,把填空题强行变成选择题。这在动作维度低、精度要求不高时或许可行,但一旦维度升高,立刻就会陷入组合爆炸的泥潭,既不优雅,效率也极低。我个人的经验是,除非问题极其简单,否则这条路基本走不通。
  2. 策略梯度方法:这才是处理连续动作空间的“正途”。我们不再去估算每一个动作的价值,而是直接学习一个策略函数。这个函数以状态为输入,直接输出动作(确定性策略),或者输出动作的概率分布(随机性策略)。智能体根据这个策略来“生成”动作。这就好比你不是去背下所有填空题的答案,而是学会了一套解题公式,遇到任何题目都能现场算出答案。

接下来的核心,就是深入探讨策略梯度方法中的两大主力流派:随机策略梯度确定策略梯度,看看它们分别如何征服连续动作空间这个难题,以及在实战中我们该如何根据场景做选择。

2. 确定策略梯度:精准控制的“手术刀”

当你需要机器人完成一个高精度的焊接任务,或者让机械臂将零件严丝合缝地插入卡槽时,你希望它的动作是精准、确定、可重复的。在这种情况下,确定策略梯度 就像一把精准的“手术刀”。它的核心思想非常直接:策略网络 π(s; θ) 不再输出概率,而是直接输出一个确定的动作值 a。给定同一个状态 s,策略网络永远给出同一个动作 a

2.1 确定策略梯度推导:价值引导的精确导航

确定策略梯度算法的运作,依赖于两个神经网络协同工作:策略网络价值网络。我们可以把它们想象成赛车游戏中的车手和领航员。

  • 策略网络(车手)a = π(s; θ)。它负责观察当前路况(状态s),并直接做出驾驶操作(动作a)。
  • 价值网络(领航员)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值