强化学习:Policy-based方法 Part 1

本文介绍了一种称为策略梯度的强化学习技术,探讨了基于策略方法的优势与劣势,包括其在高维动作空间中的效率及能学习随机策略的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本次,我们将学习一种被称为策略梯度(Policy Gradients)的基于策略的(policy-based)强化学习技术。Part1部分,我们将着重讨论基于值方法的局限性,以及基于策略方法的优势。在part2部分中,我们将具体介绍基于策略方法的实现过程,届时我们将实现两个agent,第一个将学习如何保持木棍的平衡;

第二个将学习如何在Doom的敌对环境中,通过收集体力生存下去。

image

在policy-based方法中,实际上并没有学习到一个值函数,来帮助我们了解某一状态下各动作的奖励是多少。而是直接学习策略函数,将状态映射为动作。

这意味着我们将直接尝试优化策略函数π,而不需要考虑值函数。当然,仍然可以使用值函数去优化策略参数,但值函数将不会用于动作的选择过程。

在本文章中,你将学到:
Part1:什么是策略梯度,以及优势、劣势是什么
Part2:如何在Tensorflow中实现它

为什么使用基于策略的方法?

两种策略:确定的与随机的。确定策略将状态映射为动作。输入一个状态,函数将返回一个动作。

image

确定策略被用于确定的环境中。这些环境中,所选择的动作决定了结果。一切都是确定性的。例如,当你玩国际象棋游戏,并且将士兵从A2移动到A3,可以预期到,士兵一定会移动到A3的。

而另一方面,一个随机策略会输出一个动作上的可能性分布。

image

这意味着与确定动作不同,有一定的可能采取一个相反的动作(在这个案例中,有30%的概率朝南走)。这个随机的策略将使用在不确定的环境中。我们称这种过程为部分可观测的马尔可夫过程(Partially Observable Markov Decision Process,POMDP)。大多数时间,我们使用第二种策略。

三个主要优势


趋同性(Convergence):

基于策略的方法有更好的趋同特点。基于值的方法在训练时可能产生非常大的波动。这是由于动作估计价值的微小变化,也有可能对动作选择产生极大影响。

另一方面,策略梯度中,仅仅跟随梯度去寻找最好的参数值,可以看到每一步的更新过程都非常平滑。由于我们跟随梯度寻找参数,所以可以保证找到局部最优解(不好的结果)或全局最优解(好的结果)。

image

策略梯度在高维动作空间内更加高效:

第二个优势是策略梯度在高维动作空间中,或存在连续动作时更加的高效。

深度Q学习的问题是,模型为每一种可能的动作,每一个时间步,每一种给定的状态都计算了一个分数(最大未来期望)。但如果动作空间是无限的怎么办?

例如,在自动驾驶中,每一个状态都有接近无限的可选动作(轮子角度旋转15°、17.2°、按喇叭。。。),我们需要为每一个行为输出一个Q值。

另一方面,基于策略的方法中,仅直接调整参数,以帮助模型理解什么是最大化,而不是在每一步计算(估算)最大值。

image

策略梯度算法可以学习到随机策略

第三个优势是策略梯度可以学到随机策略,而值函数无法学习,这有两个推论:

第一个是我们不需要实现探索与开发(exploration/exploitation)的平衡。随机策略允许我们的agent不依赖于相同动作探索状态空间。这是由于输出是一个动作的可能分布情况,这一点可以很轻松的通过代码来实现。

我们也可以摆脱掉感知混淆(perceptualaliasing)的问题。感知混淆是说当我们有两个状态,看起来非常像,但却需要采取不同动作时的情况。

例子如下,我们有一个扫地机器人,目标是打扫灰尘并避免杀死仓鼠。

image

在基于值的RL算法中,我们学习一个准确定性模型(epsilon贪婪策略),这样做的话,agent可能需要很长时间才能找到目标灰尘。

另一方面,一个最优化随机策略将随机向左或向右移动,这将使得agent有很高的概率快速到达目标状态。

image

劣势:

策略梯度有一个很大的劣势,很多次,它们收敛于局部最优解,而不像是深度Q学习,总是尝试到达全局最优解。

不过,对于这些劣势有一些可选的解决方案。具体的实现方法,将在后续的Part2部分:如何在Tensorflow中实现它,进行详细讲解,敬请期待。

原文发布时间为:2018-07-04
本文作者:Thomas Simonini
本文来自云栖社区合作伙伴“专知”,了解相关信息可以关注“专知

### 强化学习在多机器人协同决策中的应用与实现 #### 多机器人系统的挑战 多机器人系统面临的主要挑战在于多个代理之间的协调和合作。传统基于规则的方法难以适应动态变化的环境以及复杂的任务需求。为了克服这些局限性,研究人员引入了强化学习作为解决方案之一。 #### Actor-Critic算法的优势 对于多机器人的协同工作而言,Actor-Critic框架展现出了显著优势[^4]。这种混合型的学习机制允许每个个体既可以根据当前观察到的状态独立行动(即执行者部分),又可以通过评估整体团队表现来进行全局调整(评论家部分)。这使得整个群体能够在探索新行为的同时保持稳定性和高效性。 #### 协同决策的具体实施方式 在一个典型的多机器人环境中,可以采用分布式架构来部署Actor- **局部感知与通信**:每个机器人仅依赖自身的传感器数据并与其他临近成员交换有限的信息; - **共享经验池**:所有参与者共同维护一个中心化的记忆库用于存储过往经历; - **集中训练但分布推理**:虽然参数更新是在统一平台上完成的,但在实际操作过程中各个体依然依据本地计算得出的动作建议行事。 这种方法有效地平衡了个性化灵活性与集体智慧间的矛盾关系,在诸如搜救任务、编队飞行等领域取得了良好效果。 #### 实际应用场景实例 以无人机群为例说明上述原理的实际运用情况。当面对未知区域内的目标搜索问题时,一群装备有摄像头和其他探测设备的小型无人机会被派遣出去。它们利用内置的深度神经网络实时处理图像流,并通过无线链路互相通报发现的重要线索。与此同时,地面站会定期接收来自空中节点上传的数据包并对之进行综合分析,进而指导后续行动计划的选择——比如改变航线方向或是缩小包围圈范围等等。这样的过程不断迭代直至最终定位到所需对象为止[^3]。 ```python import torch from collections import deque class MultiRobotSystem: def __init__(self, num_robots): self.num_robots = num_robots self.shared_experience_buffer = deque(maxlen=1000) def train(self): # Training logic here using shared experience buffer and actor-critic model. pass def act(self, state_per_robot): actions = [] for i in range(self.num_robots): action = self._get_action_for_single_robot(state_per_robot[i]) actions.append(action) return actions def _get_action_for_single_robot(state): # Logic to get an action based on the current policy (actor part). pass ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值