【原文应新智元之邀所写】
点评 Dueling Network Architecture for Deep Reinforcement Learning (ICML Best paper)
DQN系列的方法用的是Reinforcement Learning中的Q-learning, 即给定状态s,给下一步的行动a打分,分数记为Q(s, a),然后选取分高者作为这一步的最优策略。Q这个函数可以很复杂,特别是当状态由当前图像的像素值直接表示的时候,所以现在流行的方法是用卷积神经网络读取图像s,得到中间特征,然后再加上若干层全相连层去预测Q(s, a)在每个a上的值。而这篇文章的主要贡献很简单,在这个神经网络上稍微改进了一下,在得到中间特征后兵分两路,一路预测估值函数V(s),另一路预测相对优势函数Advantage function A(s, a),两个相加才是最终的Q(s, a)。这样做的好处是V(s)和A(s, a)有各自的意义,V(s)是对当前状态的长远判断(Expected Return),而A(s, a)则衡量在当前状态s下,不同行为的相对好坏,一个是远期目标,另一个是近期目标,这就是所谓的Dueling Network Architecture。图2很清楚的显示了这一点,也是本文最有意思的地方。如果状态s1比状态s2总体要好,那么每个Q(s1, a)相对每个Q(s2, a)要高,而需要Q(s, a)的每项都去拟合这种“低频分量”,会在某种程度上费去神经网络的“容量”,不是最优的办法;而将Q(s, a)分解为V(s)及A(s, a)的和就没有这个问题。当然这个只是直觉印象,不一定是真实情况。实验上用了57个Atari Games,算是比较多,也是比较靠谱的,从表1看起来,新方法和老方法相比略好些,相反是各种其它的技巧,如Gradient Clip,和Prioritized Experience Replay,对结果的影响似乎更大。
点评 Continuous Deep Q-Learning with Model-based Acceleration
这篇也是用Advantage Function去做增强学习的工作,但这次对付的是变量连续的行动空间,这样就直接和自动控制及机器人相关。连续空间上的一个大问题是,即使通过训练得到了用深度网络表达的Q(s, a),但因为a可以取无穷多个值,在通常情况下无法通过穷举a得到最优的行为。对此该文将Q(s, a)先分解成V(s)和A(s, a)的和,然后将A(s, a)建模成一个关于a的二次函数,而建模这个二次函数的方法是通过建模条件均值mu(a|s)和方差P(a|s)进行的,这样可以用解析方法直接得到给定s后a的最优解。注意该文中用x代表状态,u代表行动,而非s和a,这个是控制论中的通用做法。如果大家想一想可能马上发现mu(a|s)其实就是策略函数pi(a|s)(对计算机围棋而言就是走子网络),那为啥他要这么绕?因为这样的话可以用一个模型同时建模pi(a|s), V(s)和Q(s, a),这个是比较有意思的地方。
有了这个模型之后,该文另一个大的贡献在于用卡尔曼滤波器配以局部线性模型,来加快经验的获取。在增强学习中训练深度网络是比较慢的,因为一开始深度网络的策略很糟糕,在自我模拟中得到的经验完全没有意义,用这些经验训练得到的网络也就不会太好,如此循环往复,需要很久才能走出这个圈。一个办法是用好的经验去训练策略和估值函数,这可以通过专家已有的经验来获取(如围棋),也可以像该文那样,通过简单模型来获取。局部线性模型是用来预测行动后的下一个状态的,而在有了局部线性模型之后,卡尔曼滤波则告诉你为了达成某个状态(如让猎豹达到下一个跑步的姿势),目前需要采取什么样的控制策略,这两者都是经典控制论中常用的方法。最后的测试是在开源的模拟环境中进行的。效果要比以前他们自己的方法,即使用actor-critic模型的Deep Deterministic Policy Gradient (DDPG),要好些,我很期望看到只用局部线性加卡尔曼滤波后的结果(即经典控制论的baseline),可惜似乎文章中并未给出。