【新智元导读】大公司关于增强学习的开源项目目前还不多,Twitter 这次走在了前面。增强学习除了玩游戏以外,在解决现实问题上也可以得到应用,比如,高自由度的机器人控制以及大规模的推荐任务,这些任务往往附带着复杂的目标。智能的推荐系统任务对于 twitter 的信息流呈现非常重要,决定着用户的使用体验。
机器学习的进步由多个领域的创新和创意驱动。从人类学习事物的方式获得启发,增强学习(RL)指的是系列算法,能够通过试错的回馈来进行提升,可以进一步优化未来的表现。
棋类游戏和电子游戏通常都会有定义明确的回馈函数,这使得用增强学习算法来直接进行优化成为可能。然而,随着算法的不断进步,RL 在解决现实问题上也可以得到应用,比如,高自由度的机器人控制以及大规模的推荐任务,这些任务往往附带着复杂的目标。
Twitter Cortex 采用最先进的机器学习方法来提升Twitter的产品质量。Twitter正在把增强学习当成一种学习范式来进行探索,为了达到这一目的,Twitter Cortex 开发了一个用于发展增强学习的框架。今天,Twitter 正式向全世界开源这一框架——torch-twrl 。
增强学习算法(或智能体)的目标是通过与任务(或者环境)进行互动,学会执行复杂的、新颖的任务。为了开发有效的算法,快速地迭代和测试是至关重要的,torch-twrl 的目标就是让落实和创新变得迅速和容易。
借鉴其他的增强学习框架,torch-twrl 希望提供:
Gym 提供了对增强学习环境的深度汇总。torch-twrl 通过HTTP API 与这些环境进行互动。torch-twrl 提供了一个简答且模块化的方法,让开发者可以使用自己已经拥有的Torch/Lua 代码来开始使用增强学习进行开发。
如果你想要开始试用 torch-twrl ,你可以在Github 上找到主要的文件包:https://github.com/twitter/torch-twrl。根据安装指导,你可以随时解决 RL 问题。
torch-twrl 使得增强学习算法和环境的开放与测试变得更加简便了。以下是如何解决一个经典的增强学习控制难题的案例。为了让你更好地体会到这有多么简单,我们采纳了一个简便的脚本,来运行一个基本的策略梯度智能体,用于解决经典的增强学习车摆难题。
实验开始前,首先需要设置你的环境和智能体实验参数。智能体要求有一个策略、一个模型和一个使用相关参数的学习更新。
以上的实验结果来自OpenAI Gym 的排行榜(Leaderboard)。当你使用 torch-twrl 运行一个算法,可以选择自动地把结果上传到排行榜上,它能自动创造一个好的结果图,生成一个关于结果的简短GIF 图。
在把你的结果与其他的方法进行对比时,排行榜也很有价值。
基本的RL框架中,会有一个智能体与环境进行交互,智能体的构成是:
模型:智能体模型描绘出行动的状态
策略:如何选择活动
学习更新:模型如何用收到的反馈进行更新
Note:许多别的参数也可以进行设置,具体的参数包括:策略、学习更新、模型、监控等,完整的描述参见我们提供的文档。(https://github.com/twitter/torch-twrl)
我们希望torch-twrl 作为一个RL 框架可以不断发展,与 RLLab 一样,让 Torch 和 Lua 上的开发者进行使用。增强学习的研究是一个非常活跃的领域,其中包括了各种各样的环境以及对最先进算法的采用。我们正计划扩大关于新的 RL 算法的资料库。
虽然目前基于Torch,已经有一些很好的增强学习框架,我们想要的是一个从零开始搭建的框架,可以将外部依赖降到最小,这样就能更好地解决Twitter的内部问题。
为了帮助你开始,我们提供了一个最小随机的智能体、一个基于增强学习的策略梯度智能体、一个SARSA 和 Q-learning 的 TD(Lambda)。如果想参与贡献,欢迎到Github上交流。