设想一位每天乘坐列车通勤的人。大多数早晨,她的列车都能准时发车,她能轻松有备地赶上早会。但她清楚一旦有一点点意外发生:机械故障,信号失灵,甚至仅仅是碰到雨天,都可能扰乱她的模式,造成她迟到或慌乱。
随机性(randomness)是我们每天都可能遇到的,深深影响着我们对世界的体验。强化学习(RL)应用程序中也是这样。强化学习是通过试错法学习的系统。通常,一个RL算法从一个任务的多次尝试中预测能获得的平均奖励,并使用这个预测来决定采取何种行动。但是,环境中的随机扰动(random perturbation)可以通过改变系统收到的确切的奖励来改变它的行为。
DeepMind在他们的ICML 2017论文《强化学习的一个分布视角》(A Distributional Perspective on Reinforcement Learning)中,提出不仅可以对奖励的平均值进行建模,还可以对奖励的所有变化进行建模,即价值分布(value distribution)。相比以前的模型,这种方法能让RL系统更准确,训练更快,更重要的是,它可能启发我们重新思考强化学习。
回到通勤的例子,假设这个旅程是3段5分钟的路程,其中每周会有一次列车发生故障,时间需要再增加15分钟。平均通勤时间可以计算为:(3×5)+ 15/5 = 18分钟。
在强化学习中,我们使用贝尔曼方程来预测平均通勤时间。具体来说,贝尔曼方程将当前的平均预测与即将要做的平均预测联系起来。从第一站开始,我们预测平均旅程是18分钟(总的平均时间);从第二站开始,我们预测平均旅程是13分钟(减去第一段距离的平均时间);最后,假设列车没有遇到故障,从第三站到到达目的地,我们预测通勤还需要的时间是8分钟(13分钟减去5分钟)。贝尔曼方程式连续地分别进行预测,并根据新的信息更新预测结果。
关于贝尔曼方程,有一点违反直觉的是,我们并没有实际观察到这些预测的平均值:通勤时间要么是15分钟(5天中的4天),要么是30分钟——从来不会出现18分钟!从纯粹数学的角度看,这不是一个问题,因为决策理论(decision theory)认为,我们只需要用平均值就能做出最好的选择。结果,这个问题在实践中大都被忽略了。但是,有大量实证证据表明,预测平均值是非常复杂的。
在我们的新论文中,我们提出贝尔曼方程的一个变体实际上可以预测所有可能的结果,而不用对它们进行平均。在我们的例子中,我们在每个站保持两个预测——一个分布:假如旅程顺利,那么时间分别是15分钟,10分钟,5分钟。但如果火车发生故障,那么时间分别是30分钟,25分钟,以及最后一段是20分钟。
在这个新角度下,所有的强化学习都可以重新解释,其应用已经带来一些惊人的理论成果。预测结果的分布也启发了各种算法的可能性,例如:
-
解除随机性的来源:一旦观察到通勤时间呈现双峰形,即采取两个可能的值,那么我们可以针对这些信息采取行动,例如在离家之前检查火车时刻表是否有更新;
-
将安全和有风险两种选择分开:当两个选择的平均结果相同(例如,步行或乘火车所需时间相同)时,我们可能倾向于风险小的选择(步行);
-
自然辅助预测:预测多个结果,例如通勤时间的分布,已经被证明有利于更快地训练深度网络。
我们在DQN(Deep Q-Network)智能体实施我们的新想法,并以51个可能值的分布代替单一的平均奖励。另一个变化是新的学习规则,反映了从贝尔曼(平均)方程到它对应的分布式方程的转变。结果证明,从平均值转变为分布的方法超越了其他所有类似方法的表现,并且是大幅度的超越。下图显示,我们的方法只用25%的时间获得了已训练好的DQN的75%的性能,并且其性能远超人类表现。
一个令人惊讶的结果是,我们观察到在Atari 2600 游戏中有一些随机性,尽管底层游戏模拟器Stella本身是完全可预测的。这种随机性的出现部分是由于“部分可观察性”(partial observability):由于模拟器的内部编程,智能体在玩乒乒球游戏时无法预测得分的准确时间。通过可视化智能体对连续帧的预测(如下图),我们观察到两个单独的结果(低和高),反映了可能的时间。虽然这种内在的随机性并没有直接影响性能,但我们的结果突出了智能体在理解上的局限性。
随机性的出现是由于智能体自己的行为不确定。在“太空侵略者”(Space Invader)游戏中,智能体学习预测未来可能会发生失误并输掉游戏的可能性(零奖励)。
就像火车旅行那个例子一样,对这些不同的结果分别进行预测是有意义的,而不是将它们总计为一个不现实的平均值。实际上,我们认为这一改进的结果很大程度上是由于智能体自身具有对随机性建模的能力。
我们的实证结果表明,分布视角能带来更好、更稳定的强化学习。由于每个强化学习概念都可能有一个对应的分布式方法,这可能是这一方法的开端。