DeepMind开源强化学习库TRFL,可在TensorFlow中编写强化学习智能体
2018年10月18日 由 浅浅 发表
35790
0
今天,DeepMind开源了一个新的构建模块库,用于在TensorFlow中编写强化学习(RL)智能体。名为TRFL(发音为'truffle'),它代表了其内部用于大量最成功的代理的关键算法组件的集合,如DQN,DDPG和IMPALA(Importance Weighted Actor Learner Architecture)。
典型的深度强化学习智能体由大量的交互组件组成:至少,这些组件包括环境和代表值或策略的一些深层网络,但它们通常还包括诸如环境的学习模型之类的组件,伪奖励函数或replay系统。
这些部分倾向于以微妙的方式进行交互(通常没有在论文中详细记录,正如Henderson及其同事所强调的那样),因此很难在如此大的计算图中识别错误。OpenAI最近的一篇博客文章通过分析强化学习代理的一些最流行的开源实现突出了这个问题,并发现10个中有6个“有社区成员发现并由作者确认的微妙错误”。
解决这个问题的一种方法是帮助研究界试图从论文中再现结果,这是通过开源的完整智能体实现。例如,这是我们最近使用v-trace代理的可扩展分布式实现所做的。这些大型智能体代码库对于再现研究非常有用,但也很难修改和扩展。一种不同且互补的方法是提供可靠的,经过良好测试的通用构建块实现,可以在各种不同的RL代理中使用。此外,通过使用一致的API将这些核心组件抽象到单个库中,可以更轻松地组合源自各种不同论文中的创意。
TRFL库包括实现经典RL算法以及更尖端技术的功能。此处提供的损失函数和其他操作在纯TensorFlow中实现。它们不是完整的算法,但是在构建全功能RL代理时需要实现特定于RL的数学运算。
对于基于价值的强化学习,团队提供TensorFlow ops用于在离散动作空间中学习,例如TD-learning,Sarsa,Q-learning及其变体,以及用于实现连续控制算法的操作,例如DPG。
库中还包括用于学习分配价值功能的操作。这些操作支持批次,并通过将其输送到TensorFlow Optimiser来返回可以最小化的损失。一些损失函数在批次转换(例如Sarsa,Q learning)上运行,而其他一些损失在多批轨迹上运行(例如Q lambda,Retrace)。
对于基于策略的方法,实用程序可以轻松实现A2C等在线方法,以及支持非政策纠正技术,如v-trace。另外还支持连续动作空间中的策略梯度的计算。
最后,TRFL还提供了UNREAL所使用的辅助伪奖励函数的实现,它可以提高各种领域的数据效率。
这不是一次性发布。由于此库在DeepMind内部广泛使用,因此团队将继续维护它,并随着时间的推移添加新功能。团队也希望得到更广泛的RL社区对此库的贡献。
TRFL库由DeepMind的研究工程团队创建。