前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenAI联手DeepMind发布增强学习新突破,最佳奖励函数可智能化生成(附论文)

OpenAI联手DeepMind发布增强学习新突破,最佳奖励函数可智能化生成(附论文)

作者头像
大数据文摘
发布2018-05-25 11:35:00
5500
发布2018-05-25 11:35:00
举报
文章被收录于专栏:大数据文摘

大数据文摘作品,转载要求见文末

作者 | DARIO AMODEI

编译 | 姜范波

今早,OpenAI发布最新论文,称通过与DeepMind的安全团队合作,开发了一种算法,通过告诉算法两种行为中哪种更好,算法即可自动推断人类的真实需要。

后台回复“反馈”2字,获取相关论文资源。

构建安全AI系统的一个步骤是消除对人类编写目标函数的需求,因为对复杂目标使用简单的代理,或对复杂的目标定义有点错误,就可能导致不可预测甚至危险的行为。OpenAI在与DeepMind的安全团队合作下,开发了一种算法,通过告诉算法两种行为中哪种更好,算法即可自动推断人类的真实需要。

OpenAI提出了一种使用少量人为反馈来解决现代增强学习(RL)环境问题的学习算法。已经有人研究过响应人类反馈的机器学习系统,但是我们将其提升到能够处理更复杂的任务。我们的算法需要来自人类评估者的长度仅为900位(bit)的反馈来学习——看似简单,实则颇具挑战。

设计目标回报函数很麻烦,尤其当任务复杂的时候。如果机器能够从人类反馈中自动学习最佳回报机制,便可解决这样的问题。这篇论文让众多研究者非常兴奋:

通过人类提供的独立的、长度约900比特反馈后我们的算法学会了反向推断。

整体的培训过程是三步反馈循环:人、代理对目标的了解以及RL培训。

学习伊始,我们的AI在环境中随机行动。定期向人类提供其行为的两个视频剪辑,并且由人类来判定两个剪辑中的哪一个最接近于实现其目标 ——在本研究中,是反向推断。AI逐渐建立一个目标的模型,找到最能解释人类判断的奖励函数,然后使用RL学习如何实现这一目标。随着行为的改善,当它不能确定哪个更好时,它继续向人们寻求反馈,并进一步提高对目标的理解。

我们的方法表现出很高的采样效率——如前所述,实现反向推断需要的人类反馈低于1000比特。人类评估员的时间不到一小时,而在后台,这项政策累积了大约70个小时的总体经验(以比实时更快的速度模拟)。我们将继续努力减少需要人类参与的反馈量。

我们已经在模拟机器人和雅达利(Atari)电子游戏的许多任务上测试了我们的方法(去除了奖励功能:所以在雅达利游戏中,没有游戏得分)。通过从人类的反馈中学习,在许多我们测试的环境中,算法实现了强大的、有时是超人的表现 在以下动画中,您可以看到我们的技术训练的代理玩各种雅达利游戏。 每个框架右侧的横杠表示每个代理预测人类评估者将批准其当前行为的程度。 这些可视化表明,用人类反馈训练的代理学习了评估氧气在Seaquest(左)中的价值,在Breakout和Pong中(中)预期奖励,或者说明如何从Enduro的崩溃中恢复(右)。

请注意,反馈不需要与环境的正常奖励功能保持一致:例如,我们可以训练我们的代理,以精确地保持Enduro中的其他车辆持平,而不是超过它们以得到更多游戏得分。 我们有时会发现,从反馈中学习,比通过正常奖励函数强化学习更好,因为人类比写游戏的人更好地塑造了奖励。

挑战

我们的算法性能只有达到人类评价者关于正确的直觉水平,所以如果人类对某个任务没有很好的把握,他们可能不会提供有用的反馈。 相关地,在某些领域,我们的系统可能会导致代理采用捉弄评估者的策略。 例如,如下所示,一个假定应该抓取物品的机器人,将其操纵器放在摄像机和物品之间,以使它看起来正在抓物品。

我们通过添加视觉线索(上述动画中的粗白线)来解决这个特殊问题,以便人类评估者轻松估计深度。

这篇文章中描述的研究是与DeepMind的Jan Leike,Miljan Martic和Shane Legg合作完成的。我们的两个组织计划在人工智能安全方面继续长期合作。我们认为这样的技术是迈向安全人工智能系统的一个步骤,能够学习以人为中心的目标,并且可以补充和扩展现有的方法,如加强和模仿学习。本文代表了OpenAI安全团队所做的工作; 如果您有兴趣处理这样的问题,请加入我们!

脚注

相比之下,我们花了两个小时写出自己的奖励函数(上图右侧的动画),让机器人进行反向推断,虽然它也成功了,但简单地通过人类反馈训练(左上角)的要优雅地多。 我们认为,有许多情况下,人类反馈可以比手动指定具体的目标更直观、更快速。

您可以在https://github.com/openai/gym中通过以下奖励函数复制这个反向推断(无格式代码戳底部海报下方原文链接复制):

def reward_fn(a, ob):

backroll = -ob[7]

height = ob[0]

vel_act = a[0] * ob[8] + a[1] * ob[9] + a[2] * ob[10]

backslide = -ob[5]

return backroll * (1.0 + .3 * height + .1 * vel_act + .05 * backslide)

点击阅读原文,直达课程页面!

来源:https://blog.openai.com/deep-reinforcement-learning-from-human-preferences/

关于转载 如需转载,请在开篇显著位置注明作者和出处(转自:大数据文摘 | bigdatadigest),并在文章结尾放置大数据文摘醒目二维码。无原创标识文章请按照转载要求编辑,可直接转载,转载后请将转载链接发送给我们;有原创标识文章,请发送【文章名称-待授权公众号名称及ID】给我们申请白名单授权。未经许可的转载以及改编者,我们将依法追究其法律责任。联系邮箱:zz@bigdatadigest.cn。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档