DeepMind开源了强化学习库“松露”,团队自身也严重依赖它

强化栗 发自 凹非寺 量子位 报道

今天,DeepMind开源了一个基于TensorFlow的强化学习库,名字叫TRFL

思路是模块化,强调灵活度:如果把造智能体想象成搭积木,许多关键的、常用的木块都在这里集合了:

比如,DQN (深度Q网络) 、DDPG (深度确定策略梯度),以及IMPALA (重要性加权演员学习者架构) ,都是DeepMind功勋卓著的组件。

库里面的组件,虽然来源各不相同,但都经过严密测试,因而相对可靠;并且只要一个API,对开发者比较友好。

DeepMind团队自身做研究,也严重依赖这个库。

为了那些难以发觉的Bug

这个库,写作TRFL,读作“Truffle”。翻译成中文叫“松露”。

那么,松露为何而生?

交互Bug很隐秘

深度强化学习智能体,里面常常包含大量的交互组件

至少要有环境,加上价值网络或者策略网络

通常,还会有环境学习模型 (Learned Model) 、伪奖励函数 (Pseudo-Reward Functions) 、或者重播系统 (Replay System) 这样的部分。

可是,交互组件到底用什么方式交互?论文里一般没有细致的讨论,有bug也很难发现

为此,OpenAI写过一篇博客,研究了10个热门的强化学习智能体,发现6个都有隐藏bug。

虽然,用一个开源的、完整的智能体,对复现研究成果是有帮助的,但灵活度不够,要修改就很难了。

所以,才有了松露。

损失函数模块化

深度强化学习 (DRL) ,依赖价值网络策略网络的不断更新。

DeepMind团队发现,比起传统的RL更新,损失函数更加模块化,更容易结合到监督/无监督的目标里去。

松露里包含了许多损失函数运算,全部在纯TensorFlow里实现。

不是完整算法,但是各自经过严密测试,可以用来搭成完整的智能体。

并且,只要一个API来解决各种核心组件,即便各自来源是天南地北,也很容易互相组合。

松露,营养很丰富

松露里的许多函数和运算,既可以用在经典RL算法里,也可以用在尖端技术上。

基于价值

针对基于价值的强化学习,松露提供了各种TensorFlow运算,用于在离散动作空间 (Discrete Action Spaces) 里学习:时间差分法,Sarsa,Q学习,以及它们的变体。还有连续控制算法 (比如DPG) 需要的运算。

除此之外,也有学习分布式价值函数 (Distributional Value Function) 用的运算。

以上运算都支持批量 (Batches) ,返回的损失可以用TensorFlow优化器来最小化。不论是Transition的批量,还是Trajectory的批量。

基于策略

针对基于策略的强化学习,这里既有工具可以轻松实现在线方法,比如A2C ,也支持离线的修正技术,比如v-trace。

另外,连续动作里策略梯度的计算,松露也支持。

最后的最后,松露还提供辅助的伪奖励函数 (Pseudo-Reward Functions) ,用来提升数据效率。

开源了,并待续

如今,松露已经开源了,传送门在文底。

不过,团队在博客里写到,这不是一次性发布。

因为,DeepMind在做研究的过程中,也非常依赖这个库,所以会持续对它进行维护,也会随时添加新功能。

当然,团队也欢迎强化学习界的小伙伴们,为松露添砖加瓦。

多巴胺也是强化学习库

如果你还记得,今年8月谷歌开源了强化学习框架Dopamine,中文叫多巴胺,也是基于TensorFlow。

名字取自人类大脑奖励机制中的主角物质多巴胺,为了表达神经科学和强化学习之间的缘分联系。

多巴胺框架,也是强调灵活性稳定性复现性

至于,多巴胺和松露之间有怎样的关系,或者怎样的差别,如果你也好奇的话,可以自行探索一下。

松露传送门: https://github.com/deepmind/trfl/

多巴胺传送门: https://github.com/google/dopamine

原文发布于微信公众号 - 量子位(QbitAI)

原文发表时间:2018-10-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏顶级程序员

4月份最热门的五大AI机器学习项目

当谈到数据科学和机器学习时,GitHub和Reddit是两个最受欢迎的平台。前者是代码和项目之间共享和协作的最佳工具,而后者则是与全球数据科学爱好者交流的最佳平...

1092
来自专栏CDA数据分析师

数据挖掘:推荐系统综述以及美团推荐系统介绍

其实推荐系统前面已经讲过不少,那时候主要是放在机器学习上讲的,既然这次要系统撸一遍数据挖掘,就把推荐系统单独拿出来说一说。相信如果做过推荐系统的人,都知道是什么...

9128
来自专栏人工智能LeadAI

我与Python | 从Hacker到探索Deep Learning

为什么是Python 人生苦短,我用Python... ? 'Life is short, you need Python!' 进入大学之后,我们逐渐“被教授”...

4877
来自专栏AI传送门

股票预测,自动翻译,你想要的它都能做——RNN算法探索之旅(3)

1843
来自专栏机器人网

六轴机械手臂有哪些奇异点?

六轴机械手臂由六组不同位置的马达驱动,每个马达都能提供绕一轴向的旋转运动,其位置可参照下图。从自由度(Degree of Freedom)的概念来看,六轴机械手...

4029
来自专栏华章科技

为何你只能做出渣图表?数据可视化的十大误区

通过可视化信息,我们的大脑可以更有效地合成和保留信息内容,增强对信息的理解。但是如果不正确数据可视化,它可能弊大于利。错误的图表可以减少数据的信息,或者更糟的是...

1043
来自专栏量子位

DeepMind新论文:3D环境中教AI学人话,还要用形式语言指挥它们

李林 编译自 Arxiv 量子位 出品 公众号 | QbitAI 最近,DeepMind发了两篇论文,一篇是关于教AI学语言的Grounded Language...

2924
来自专栏Pulsar-V

SLAM初探(三)

PCL(Point cloud library) Ubuntu Linux 16 系统之所以会用Linux,很大的原因是应为SLAM在嵌入式平台上面...

3585
来自专栏Hadoop数据仓库

HAWQ取代传统数仓实践(十二)——维度表技术之分段维度

一、分段维度简介         在客户维度中,最具有分析价值的属性就是各种分类,这些属性的变化范围比较大。对某个个体客户来说,可能的分类属性包括:性别、年龄、...

25010
来自专栏AI星球

我与Python--从Hacker到探索Deep Learning

进入大学之后,我们逐渐“被教授”了C、C++、Java等编程语言,但为什么我会选择python作为最喜欢的编程语言呢?

1323

扫码关注云+社区

领取腾讯云代金券