今天,英特尔发布了一个新的开源增强学习框架Coach。该框架利用多核CPU处理能力,用于训练和评估增强学习Agent。Coach包含一些领先的增强学习算法的多线程实现,适用于各种游戏和机器人环境。它能够在台式计算机上高效地训练强化学习Agent,而无需任何额外的硬件。
自从2016年推出用于深层加强学习的异步方法以来,许多算法通过在许多CPU内核中并行运行多个实例,能够更快地实现更好的策略。到目前为止,这些算法包括A3C 、DDPG、PPO、DFP和NAF,而Coach不仅包括上述等最新算法的实现,更可以帮助用户现场搭建使用。
要使用Coach首先需要定义想要解决的问题,或选择一个现有问题,然后选择一套强化学习算法来解决问题。Coazh可以使用现有算法进行简单的实验,并用作沙盒(雷锋网注:沙盒是在受限的安全环境中运行应用程序的一种做法,这种做法是要限制授予应用程序的代码访问权限,便于在开发测试中的调试)以简化新算法的开发。框架定义了一组用于强化学习的API和关键组件,使用户能够轻松地重用组件,并在现有的组件之上构建新的算法。
Coach可与如OpenAI Gym、Roboschool和ViZDoom等顶级环境进行集成,同时它还提供了可视化培训过程和了解代理的基本机制的各种技术,所有的算法都是使用英特尔优化的TensorFlow来实现的,也可以通过Intel的neon™框架来实现。
Agent
Coach包含许多Agent类型的实现,包括从单线程实现到多线程实现的无缝转换。Agent以模块化方式实现,以允许重用不同的构建块来构建新的和更复杂的代理。此外,Coach可以在单个任务的基础上编写新的Agent,并切换到同步或异步的多任务实现,并进行最少的更改。
在Coach中集成了过去几年引入的各种Agent类型的实现方式,这让用户解决具有不同需求和与代理交互的方式的环境,例如连续和离散的动作空间,视觉观察空间或仅包括原始测量的观察空间。
环境
Coach使用OpenAI Gym作为与不同环境进行交互的主要工具。它还支持Gym的外部扩展,包括Roboschool, gym-extensions和PyBullet, 其环境封装器可以添加更多的自定义环境,以解决更广泛的学习问题。
可视化
Intel还发布了Coach Dashboard作为可视化和调试的补充工具。Dashboard是Coach的一个图形用户界面,通过展示训练过程中的不同信号,可以让用户以简单易懂的方式比较不同方式运行的训练质量。在训练期间,Coach可跟踪任何有意义的内部信息并存储,以便在执行期间和完成后可视化进度。
Coach还支持其他调试和可视化方法,例如存储最佳场景的GIF动画,在游戏过程中显示动作值,等等。
使用
为方便用户使用Coach,Intel已经开放了GitHub信息库,然后按照的机器上安装Coach的说明进行操作即可。Intel还提供了友好的帮助文件,在GitHub存储库README文档中有几个简单的例子,同时在官网还有一个更全面的使用和实现文档。
Coach已经准备了超过60个预定义的预设、不同的代理和可用的环境。这些预设已经用于训练数百名Agent,并经过验证以获得良好的业绩。但是,使用这些预设并不是强制性的,并且创建新的预设与选择现有代理和现有环境一样容易。
下一步,Intel计划在未来的版本中增加更多算法和环境,如果你有任何建议和评论,可以在Github上进行互动。
雷锋网发现,目前不少巨头均推出了自己的深度学习框架,如Google 的TensorFlow、Amazon 的MxNet、Facebook的Caffe 2等。这些深度学习框架的流行降低了深度学习的门槛,让越来越多人开始参与到深度学习当中,但在降低门槛后如何提高训练的效率也成为了差异化的关键因素,这也是是多线程并行计算、多机器上的水平扩展甚至定制硬件最近开始得势的原因。