2017年1月21日,星期六

强化学习即服务

在过去的6个月中,我一直在将强化学习整合到实际产品中,因此,我对可能是常见问题的认识正在逐渐提高。特别是,我现在对强化学习即服务的想法很感兴趣,其中 决策服务 来自MSR-NY的数据就是一个早期的例子(目前仅限于上下文强盗,但结合了关键的系统见解)。

服务,不是算法 监督学习本质上是观察性的:已经收集了一些数据,然后在其上运行算法。 (在线监督学习不一定能以这种方式工作,但是在收集数据后出于计算的原因,大多数使用在线技术。)相反,反事实学习很难做到观察。经济学,政治学和流行病学等各种领域都试图使用观察数据得出反事实结论,主要是因为这是唯一可用的数据(以可承受的成本)。但是,在测试新药时,该标准是进行对照实验,因为通过控制数据收集,可以更有把握地得出更复杂的结论。

类似地,强化学习最好完成“in the loop”,并控制用于学习的数据收集算法。因此,由于必需的状态管理,增强学习算法的纯库实现是不自然的。例如,奖励是在采取行动之后发生的,并且这些奖励最终需要相互关联才能学习。 (我的第一份工作之一是在一家名为Overture的赞助搜索公司中,维护搜索单击联接是十几名工程师的全职工作:请注意,这只是单例会议的立即联接!)

因此,包装强化学习即服务意义更大。这有助于模型更新,服务(探索)分布和数据收集的分布式协调。对于云计算提供商来说,这种情况是自然而然的。但是,实际上需要有一个离线客户端模式(例如,用于移动和IOT应用程序);此外,由于低延迟决策要求,即使在纯数据中心环境中也将利用此功能。 (更一般而言,“tiered learning”与云计算平台中使用的分层存储架构类似的架构。布伦丹·麦克马汉(Brendan McMahan)在 联合学习

引导就是一切 试图解决和解决实际问题真是令人惊讶。我现在很欣赏强化学习已经被超卖了。特别是,强化学习的样本复杂性要求非常高。 (这是花哨的说法,因为它需要收敛大量的数据。)当您在模拟环境中工作时,这不是要担心的问题,因为您拥有无限的训练数据,因此在模拟环境中我们会看到惊人的结果。

当在真实用户的实时流量上进行强化学习时,您的数据量比您想象的要少,因为您总是从测试数据的一部分入手,直到变得更好为止,您才能获得更多(第22章)。因此,实际上我花了很多时间来制定初始服务策略,不幸的是有些特质:使用正确的数据资产进行模仿学习可能很棒,但是启发式策略也很重要。我怀疑在模拟环境中通过not-smartly-initialized-RL进行初始化是另一种可能性(在对话框模拟器中效果不佳,因此我还没有利用这种策略)。

这为RL即服务创建了一些设计问题。
  • 假设有一个初始投放策略,该如何指定?在决策服务中,您传递将采取初始服务策略的操作,这对于上下文强盗来说是合适的,但是对于多步骤时期,这可能很麻烦,因为初始服务策略需要维持状态。对于服务来说,使其更易于管理很有意义。
  • 服务如何帮助我制定最初的服务政策?考虑到我到目前为止的经验,以下是制定初始服务政策的一些可能方法:
    • 任意程序(``启发式'')。有时这是冷启动的最简单方法,或者这可能是当前的``冠军''系统。
    • 模仿学习。假设合适的数据资产可用。
    • 从历史数据中进行非政策学习。如果历史政策经过适当随机化(例如,以前调用RL作为服务的穷举),那么这可能比模仿学习更好。
    • 通过仿真进行增强。在对话中这似乎不可行,但是如果有一个好的模拟器(例如,机器人和游戏引擎?),那可能很棒。此外,这将涉及平台的直接重用,即使生成的数据也是如此。

语言是编程的UI 我认为 学分分配汇编 不仅将解决如何指定初始策略的问题,而且还将为使用RL服务提供最自然的接口。我将在另一篇文章中进行探讨。

2条评论:

  1. 保罗,你好

    I´我对RL即服务非常感兴趣。我已经阅读了有关您从事的服务的文章,该文章非常有趣。

    但是我在Azure的机器学习选项中发现的是“自定义”选项,这似乎是针对特定的用例,例如新闻推荐(考虑文章内容)。

    该服务已在更一般的用例中充分使用(如本文中所引用)?我的意思是,它准备好进行生产还是处于beta版本?

    恭喜您!

    回复 删除
    回覆
    1. 好问题!

      决策服务(由MSR-NY完成,我'仅仅是一个用户/贡献者)就遇到了困扰许多机器学习工具包产品的问题:客户要么太老练,以至于想编写自己的产品,要么太老练以至于无法操作该工具。专注于特定的行业并提供简单的界面是弥合差距的一种方式,因此,DS一直将新闻推荐作为进入市场的垂直方案。

      在内部,我们将决策服务用于各种场景,并且开放源代码版本能够处理一般用例并已准备就绪。

      删除