论文分享 | 内在动机与基于非对称自弈的自动课程

来自:极验(微信号:geetest_jy),作者:陈禹,编辑整理:萝卜兔,原文链接

无模型(model-free)的方法样本效率低,通常需要大量的片段才能学到一个令人满意的策略。缺少明确的环境模型意味着agent必须从头开始学习环境的规则来理解那条轨迹能获得奖励。由于环境的奖励稀疏,agent的经验中只有一小部能直接用于更新策略,导致了低效率。本文介绍一个无监督训练的新形式,使agent能够在没有外部奖励激励的情况下探索并学习环境规则。这种无监督训练允许代理在环境中更快地学习新的任务。


方法


我们考虑具有单个代理的环境,但允许这个代理有两个独立的思想,命名:“Alice”和“Bob”,每一个都有自己的目标和参数。在self-play阶段,Alice的工作是提出一个任务让Bob来完成,Bob的工作是完成这项任务。在处理目标任务阶段,Bob用于完成任务,Alice不做任何工作。这里的关键思想是,在Alice的协助下,Bob的执行过程能让他理解到环境如何工作并且如何能让他更快地学习目标任务。

 

本文方法被限制在两类环境中:

(1)可逆的环境。

(2)可被重置到初始状态的环境。


这些限制能使我们避开关于如何传递任务和决定其难度的纠缠。在这两个场景中,Alice从一个初始状态S0开始并通过“做”的方式提出任务,比如执行一个动作序列,使代理达到状态St。之后她输出一个Stop动作,将控制权交给Bob。在可逆的环境中,Bob的目标是让agent返回到初始状态S0(或者某边界内,如果状态是连续的)以得到奖励。训练目标变为让Bob找到具有与Alice初始相同观测的状态。在可重置的环境中,Alice的Stop动作同时再次重置环境,因此Bob开始于S0并且必须达到St才能获得奖励,这个过程重复Alice的任务而不是逆向。示例见图1,算法1。

图1

算法1

在Alice和Bob之间的Self-play引入了内部奖励,因此agent的训练能够不需要任何来自环境的监督信号。如此,它构成了一个无监督的训练形式,在这种形式下Alice和Bob能探索环境并学习如何操作。通过训练Bob,这些探索能够在用于一些目标任务,Bob从Self-play获得的经验能帮助他在少量片段中学习到目标任务。见算法2

算法2


对于Self-play,我们为Alice和Bob选择奖励结构来鼓励Alice引导Bob超越他的舒适区域,但不会给他不可能完成的任务。记Bob的总奖励为(在阶段的结尾),记Alice的总奖励为,我们用。这里是Bob完成他任务的时间。


这里tA是Alice执行到Stop动作的时间,γ是比例系数,用于平衡内部奖励使其和目标任务的外部奖励具有相同比例。阶段的总长度被限制为,因此Bob没有完成任务时,我们设置

 

由此,Bob花费更多的时间,Alice会获得更多奖励,但是关于她自己时间的负数项会鼓励当Bob失败时Alice不会采取过多步数。对于可逆和可重置环境,Alice必须限制她的步数使Bob的任务较简单,因此Alice最优的表现是找到Bob不能完成的最简单的任务。这将使Bob的学习简单化,因为新的任务只会超出他当前能力。Alice和Bob之间的自我调节反馈允许他们自动构建探索课程,这是本方法的关键贡献。


参数化Alice和Bob的动作

Alice和Bob每一个都有策略函数,输入两个状态变量,输出一个动作分布。对于Alice:,这里是环境初始状态的观测,是当前状态的观测。


对于Bob:这里S*是Bob必须达到的目标状态,在可逆环境中为。在可重置环境中S*是Alice执行Stop动作时的状态。

 

当目标任务被提出时,代理的策略函数为,这里Bob的第二个参数简单的设为0。如果S*总是非0,Bob则会知道当前阶段是Self-play还是目标任务。


实验结果


MAZEBASE: LIGHT KEY

我们使用迷宫环境,其中包含一个灯光遥控、一个钥匙和一个有门的墙。一个代理能开关门通过触发钥匙开关,开关等通过灯光开关。当灯是关着的,代理只能看到灯光开关。在目标任务中,这里只有一个目标旗帜,游戏的目的是达到目标旗帜。

图2

在图2中我们设置在Self-play阶段p(Light off)=0.5,并且评价重置形式的Self-Play基于两个基准:

  1. 目标任务只训练(无Self-Play)

  2. 用随机策略的Self-Play。


结果表示Self-Play下代理成功的速度比只训练的速度更快。图3显示了单一训练的细节,解释了Alice和Bob如何在他们自己之间自动建立课程。

图3


RLLAB: MOUNTAIN CAR

本文应用该方法到RLLab的山地车任务中,代理控制1维山谷中的汽车。他必须学习如何通过左右移动建立动量,攀爬到更高的地方来逃脱。尽管这个问题是连续的,我们离散化1为动作空间,使其用5个容器表示,以使得我们使用离散策略梯度。使用Self-play重置形式与VIME和SimHash方法比较,见图4左侧。


RLLAB: SWIMMERGATHER

本文还把该的方法应用于RLLab中的SwimmerGather任务,其中代理控制具有两个柔性关节的蠕虫,在2D粘性流体中游泳。在目标任务中,代理因为吃了绿苹果而获得+1奖励,并且因为触摸了红炸弹而获得-1奖励,红炸弹在自我游戏中不存在。因此,自我游戏任务和目标任务是不同的:在前者,蠕虫只是游来游去,而在后者,它必须学会向绿色的苹果游去,远离红色的炸弹。见图4右侧。

图4

推荐↓↓↓
人工智能与大数据
上一篇:Pytorch 1.0正式版发布!TensorFlow王位不保?曾经Pytorch许诺的都实现了吗? 下一篇:机器学习在美团配送系统的实践:用技术还原真实世界