强化学习过程中对产生的无效动作应该如何进行屏蔽处理?(强化学习中可变的动作空间怎么处理)

        最近在做强化学习的过程中,由于动作的设置问题,在某些状态下,某一些动作是不能选择的,比如,在之前提到的一篇文献:

论文阅读|《强化学习在加工时间可变的机器人流水车间调度中的应用》_太剧烈的快乐与太剧烈的悲哀是有相同之点的——同样地需要远离人群!-CSDN博客icon-default.png?t=LA92https://blog.csdn.net/crazy_girl_me/article/details/120862356        这个描述的是一个机器人流水车间的调度问题,它的动作空间设定为机器人可到达的机器,动作空间的数量为机器总数+输入/输出缓冲区数,由于是流水车间,但到比较后面的状态时,有的机器已经不再参加加工过程,那么这个时候机器人选择不再进行加工的机器显然不合理的,这样的话就要禁止再选择这些机器了。

        解决方法如果想要soft constraint,即直接训练,当算法给到不能选的动作就给一个很差的收益,如果想要hard constraint, 那就是“屏蔽”(”mask out“)无效的操作,仅从有效操作中进行采样,然而这一过程仍未得到充分的研究。

        最近看的这篇论文《A Closer Look at Invalid Action Masking in Policy Gradient Algorithms》证明了无效操作屏蔽的标准工作机制对应于有效的策略梯度更新,并证明当无效动作空间较大时,无效动作掩蔽具有很好的伸缩性,而通常的对无效动作给予负奖励的方法将会失败当无效动作空间较大时,无效动作掩蔽具有很好的伸缩性,而通常的对无效动作给予负奖励的方法将会失败。

1 文章简介

           这篇文章证明了无效动作掩蔽可以看作是在计算动作概率分布时应用状态相关的可微函数来产生行为策略。接下来,设计了实验来比较无效动作掩饰和无效动作惩罚的性能。

        无效动作惩罚:这是一种常见的方法,对无效动作给予负奖励,以便Agent学习通过不执行任何无效动作来最大化奖励。

        我们的经验表明,当无效行动的空间扩大时,无效行动掩蔽的规模很大,Agent解决了我们想要的任务,而无效行动惩罚甚至难以探索第一个奖励。

        然后,设计了实验来回答两个问题:

        (1)一旦用掩码训练Agent,去除无效操作掩码会发生什么?

        (2)当我们通过从屏蔽的动作概率分布中采样动作,但使用未屏蔽的动作概率分布来更新策略梯度时,当我们单纯地实施无效动作屏蔽时,Agent的性能如何?

        最后,出于可重现性的目的,在GitHub上提供了源代码:

vwxyzjn/invalid-action-masking: Source Code for A Closer Look at Invalid Action Masking in Policy Gradient Algorithms (github.com)icon-default.png?t=LA92https://github.com/vwxyzjn/invalid-action-masking

2 无效动作掩蔽

        首先,让我们看看离散操作是如何通过策略梯度算法生成的

        大多数策略梯度算法都使用神经网络来表示策略,输出非标准化分数(logits),然后使用softmax 操作或等效操作将它们转换为动作概率分布,本文的其余部分以此作为假定的框架。为了说明的目的,考虑具有动作集A={a0,a1,a2,a3}和S={s0,s1}的MDP,其中MDP在初始状态s0中采取动作之后立即到达终端状态s1,并且奖励始终为+1。此外,考虑由πθ=[l0,l1,l2,l3]=[1.0,1.0,1.0,1.0]参数化的策略,出于本例的目的,该策略直接生成θ作为输出logit。那么我们就有了:

         此时,常规策略梯度算法将对πθ(·|s0)中的操作进行采样。假设a0取自πθ(·|s0),策略梯度计算如下:

        现在假设a2对于状态s0是无效的,并且唯一有效的动作是a0、a1、a3。无效操作屏蔽通过“屏蔽”对应于无效动作的logit来帮助避免采样无效动作。这通常是通过用一个大的负数M(例如M=−1×108)替换要屏蔽的动作的逻辑来实现的。让我们使用inv_{s}来表示该屏蔽过程,并且我们可以如下计算重新归一化的概率分布\pi _{\theta}^{'}(\cdot |s_{0})

 其中\epsilon是屏蔽无效操作的结果概率,应该是一个很小的数字。如果选择为足够负,则选择屏蔽的无效动作a2的概率实际上为零。该episode结束后,策略将根据以下梯度进行更新,我们将其称为无效操作策略梯度:

 这个例子强调了无效动作屏蔽似乎不仅仅是“重新规范化概率分布”;实际上,它使对应于无效动作的logit的梯度为零。

3 无效动作掩蔽会生成有效的策略梯度

        动作选择过程受计算掩蔽的πθ外部进程的影响。因此,自然会想知道策略梯度是如何适用的?

        分析表明,无效动作掩蔽过程可以看作是一个状态相关的可微函数,适用于\pi_{\theta}^{'}的计算,因此无效动作策略可以看作是\pi_{\theta}^{'}的策略梯度更新。

        建议1:无效操动作策略是策略π0θ的策略\pi_{\theta}^{'}

证明:假设s∈S是任意的,并将无效动作掩蔽的过程视为一个可微函数inv_{s},该函数被应用于由策略\pi_{\theta}^{'}给定状态输出的Logits l_{s}。那么我们就有:

         显然,inv_{s}对logit中的元素应用标识函数或常量函数。因为这两类函数是可微的,所以可导。因此,\pi_{\theta}^{'}对于其参数θ是可微的。也就是说,\partial \pi _{\theta}^{'}(a|s)/\partial \theta对任意a∈A,s∈S存在,它满足策略梯度定理的假设。因此,无效操作策略是策略\pi_{\theta}^{'}的策略梯度

 4 实验

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码丽莲梦露

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值