如何提高强化学习的可靠性?

https://www.toutiao.com/a6700314150565839368/

如何提高强化学习的可靠性?

来自网络

强化学习(RL)就像攀登1000米高的岩石表面一样,需要学习如何做出连续的决定。RL的潜在应用范围很广,包括机器人(无人机控制)、对话系统(个人助理、自动呼叫中心)、游戏产业(非玩家角色、计算机人工智能)、治疗设计(药物测试、作物管理)、复杂系统控制(资源分配、流程优化)等等。

已经有一些RL成就,例如Deepmind 发明了 DQN,这是第一个能够使用视觉输入在人类技能水平上玩游戏的深层 RL 算法[1]。但是将 RL 应用于大多数现实世界的场景仍然是一个挑战。首先,深度 RL 算法的样本效率不高,需要数十亿个样本才能得到结果,在现实应用中提取如此庞大的样本数量是不可行的;其次,RL在道德约束方面也不够完善,需要安全算法。 他们必须能够在现实生活中学习,而不用冒生命或设备的风险。最后,算法可靠性很重要,并能够持续提供可靠的结果。

事实上,RL在很大程度上是不可靠的。 更糟糕的是,由于强化学习过程的随机性,用不同的随机种子进行两次测试会得到截然不同的结果。 微软研究人员提出了两种方法解决这种不可靠性:

算法选择

​微软在 ICLR上发表的文章[2]提出了这个想法:如果一个算法不可靠,就训练其中的几个,并使用最好的一个。 下图演示了算法选择过程:

如何提高强化学习的可靠性?

强化学习中的算法选择(来自论文)

使几个 DQN 架构竞争,系统产生了比任何单一架构本身更好的最终性能。

改进策略可靠性

微软在提高 RL 算法可靠性方面的第二次尝试集中在一个特定的设置上,这个设置在现实应用中经常遇到,即批处理强化学习[3]。与传统的在线设置相比,在批处理强化学习中,学习代理不直接与环境交互。相反,它是一个baseline代理。 它是固定的,用来收集数据,然后输入到一个算法来训练一个新的策略。 批处理设置是现实场景中常见的约束。 对话系统或视频游戏通常部署在个人设备上,一般不会频繁更新。

如何提高强化学习的可靠性?

批处理强化学习过程(来自论文)

研究人员设计一种称为 SPIBB (Safe Policy Improvement with Baseline Bootstrapping)的新算法,该算法将在2019 ICML 会议上展示。 Spibb对策略更新实现了以下常识性规则:如果你不知道自己在做什么,那么就不要这样做。 更确切地说,如果有足够的数据支持策略变更,那么它就可以这样做。 否则的话只需复制数据收集过程中使用的baseline策略。

参考:

1.https://www.nature.com/articles/nature14236/

2.https://www.microsoft.com/en-us/research/publication/reinforcement-learning-algorithm-selection/

3.https://www.microsoft.com/en-us/research/publication/safe-policy-improvement-with-baseline-bootstrapping-2/

猜你喜欢

转载自blog.csdn.net/weixin_42137700/article/details/91351012