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

简介:

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

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

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

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

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

为了那些难以发觉的Bug

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

那么,松露为何而生?

4cb5ae6431c0cf7abb2d38ca3a14af0ad5efc3d2

交互Bug很隐秘

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

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

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

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

dc232f947cc158d6df8eaa4dd0db99326cd67b51

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

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

所以,才有了松露。

损失函数模块化

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

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

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

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

4a513a16ee769b3d67539a5f21a2001f11ea2966

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

松露,营养很丰富

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

基于价值

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

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

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

基于策略

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

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

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

开源了,并待续

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

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

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

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

多巴胺也是强化学习库

41003f8cffb7bb3402f76dafaddf895ea3cecccc

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

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

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

b81fc97bc1a0d4c215c08e1c32e408e18c3f3b4b

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


原文发布时间为:2018-10-18

本文作者:强化栗

本文来自云栖社区合作伙伴“量子位”,了解相关信息可以关注“量子位”。

相关文章
|
机器学习/深度学习 人工智能 算法
深度强化学习中实验环境-开源平台框架汇总
深度强化学习中实验环境-开源平台框架汇总
383 0
|
3月前
|
自然语言处理 测试技术
社区供稿 | 引入隐式模型融合技术,中山大学团队推出 FuseChat-3.0
在大语言模型(LLM)领域,结合多个模型的优势以提升单个模型的能力已成为一大趋势。然而,以往的模型融合方法例如 FuseLLM[1], FuseChat-1.0/2.0[2] 等存在词表对齐困难、效率低下等问题。
94 12
社区供稿 | 引入隐式模型融合技术,中山大学团队推出 FuseChat-3.0
|
4月前
|
人工智能 自然语言处理
米开朗基罗怎么说?谷歌DeepMind推出长上下文评估新框架
谷歌DeepMind团队提出了一种名为“米开朗基罗”(Michelangelo)的新型评估框架,通过潜在结构查询(LSQ)来全面评估大型语言模型(LLM)的长上下文理解能力。相比传统方法,米开朗基罗框架不仅评估模型的检索能力,还能更深入地验证其对上下文的理解和推理能力。
112 50
|
5月前
|
前端开发 API
LangChain-25 ReAct 让大模型自己思考和决策下一步 AutoGPT实现途径、AGI重要里程碑
LangChain-25 ReAct 让大模型自己思考和决策下一步 AutoGPT实现途径、AGI重要里程碑
191 0
|
7月前
|
机器学习/深度学习 数据处理 定位技术
构建您的首个机器学习项目:从理论到实践
【8月更文挑战第28天】本文旨在为初学者提供一个简明的指南,通过介绍一个基础的机器学习项目——预测房价——来揭示机器学习的神秘面纱。我们将从数据收集开始,逐步深入到数据处理、模型选择、训练和评估等环节。通过实际操作,你将学会如何利用Python及其强大的科学计算库来实现自己的机器学习模型。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往机器学习世界的大门。
|
Cloud Native Go 开发者
如何为开源项目做出贡献?
如何为开源项目做出贡献?
142 0
|
10月前
|
监控
项目集研究的问题
研究项目集管理时,关注点包括:战略一致性,确保项目目标与组织战略对齐;治理结构,建立协调利益相关者的机制;集成管理,跨项目整合资源,处理内部依赖;收益管理,量化投资回报并监控收益;风险管理,识别并降低重大风险;资源优化,有效分配有限资源;沟通与协作,保障信息传递和团队协作;以及绩效衡量与报告,设置KPIs并提供透明的进展报告。
51 1
|
存储 机器学习/深度学习 人工智能
摆脱 OpenAI 依赖,8 分钟教你用开源生态构建全栈 AI 应用
大模型时代的到来使得 AI 应用开发变得更加轻松、省时,尤其是在 CVP Stack 的范式下,开发者甚至可以用一个周末的时间做出一个完整的应用程序。
487 1
|
人工智能 自然语言处理 API
CREATOR制造、使用工具,实现LLM「自我进化」
CREATOR制造、使用工具,实现LLM「自我进化」
135 0
|
机器学习/深度学习 存储 编解码
一劳永逸—MIT韩松团队开源神经网络的高效部署
一劳永逸—MIT韩松团队开源神经网络的高效部署
365 0

热门文章

最新文章