读论文Dueling Network Architectures for Deep Reinforcement Learning

ICMl2016的最佳论文有三篇,其中两篇花落deepmind,而David Silver连续两年都做了 deep reinforcement learning的专题演讲,加上Alphago的划时代的表现,deepmind风头真是无与伦比。今天我想解读的这篇论文就是获奖中的一篇,Dueling Network Architectures for Deep Reinforcement Learning。

自从DQN的论文在nature发布之后,对DQN的研究的热潮一直在持续发酵,就其原因一方面在于它是把deep learning和reinforcement learning结合起来,开了从感知到决策的end to end的先河。另外一方面,DQN还是有很多问题有待解决,比如在复杂的游戏中的表现、解决连续的动作空间等问题。这篇论文也是DQN算法的一个延续。

Dueling NetworkArchitectures for Deep Reinforcement Learning提出了一种新的网络架构,在评估Q (S,A)的时候也同时评估了跟动作无关的状态的价值函数V(S)和在状态下各个动作的相对价值函数A(S,A)的值。一图胜百言。


读论文Dueling Network Architectures for Deep Reinforcement Learning_第1张图片

图的第一部分就是传统的DQN算法的网络图。下面的图就是Dueling DQN的图。DQN的输出就是Q函数的值(当然是动作空间的维度),它的前一层是全联接层。而DuelingDQN改变主要是这里,把全联接改成两条流,一条输出标量的关于状态的价值,另外一条输出关于动作的Advantage价值函数的值,就是绿色部分前面的两条流。最后通过绿色部分合成Q价值函数。


读论文Dueling Network Architectures for Deep Reinforcement Learning_第2张图片

从上面这个公式来看advantage函数的意义,V(S)这个价值函数表明了状态的好坏程度。而Q函数表明了这个状态下确定的某个动作的价值。而Advantage函数表明在这个状态下各个动作的相对好坏程度。实际上Advantage的函数的应用非常广泛,在增强学习很多算法中,用advantage函数的情况比Q或者V价值函数更广泛一点。

那么为什么这样设计网络架构,论文给出的解释是在游戏中,存在很多状态,不管你采用什么样的action对下一步的状态转变是没什么影响的。这些情况下计算动作的价值函数的意义没有状态函数的价值意义大。

特别强调的一点是DuelingDQN是一个end to end的训练网络,不存在单独训练V或者A价值函数,所以Dueling DQN网络的训练和之前DQN的没有任何区别。

另外一个问题是,因为V(S)是一个标量,所以在网络中,这个值是可以左偏或者右偏,对最后Q的值是没有影响的。这样的话,实际上通过Q是没办法解析出A和V的值,当然在实际算法中,我们是可以计算的。但是在这个端到端的训练中,这两个值有一个常数的差异是正常的,如果这个差异总是摇摆不定,显然对我们的预测和估算是不利的,所以论文的解决办法是固定一个偏差,就是下面的公式:


读论文Dueling Network Architectures for Deep Reinforcement Learning_第3张图片

这部分的算法是在网络架构中绿色部分来完成的,这样对所有状态和动作的评估就有了统一的标准。

技术部分基本上就这样的,论文的还有一部分就是效果,当然是新的state-of-the-art。不多说了,上图:


读论文Dueling Network Architectures for Deep Reinforcement Learning_第4张图片

最后,想法很奇妙但是简单,实现起来考虑的问题很多,最后的效果很好。

你可能感兴趣的:(读论文Dueling Network Architectures for Deep Reinforcement Learning)