智能单元
首发于智能单元
DQN从入门到放弃6 DQN的各种改进

DQN从入门到放弃6 DQN的各种改进

1 前言

在上一篇文章DQN从入门到放弃5 深度解读DQN算法中,我们深入地介绍了基本的DQN算法,也就是NIPS 2013版本的算法。那么在这之后,DeepMind不断对DQN进行改进,首先在2015年初发布了Nature文章,提出了Nature版本的DQN,然后接下来在2015年一年内提出了Double DQN,Prioritied Replay,还有Dueling Network三种主要方法,又极大的提升了DQN的性能,目前的改进型DQN算法在Atari游戏的平均得分是Nature版DQN的三倍之多。因此,在本文中,我们将介绍一下各个改进的方法。

2 Nature DQN

NIPS DQN在基本的Deep Q-Learning算法的基础上使用了Experience Replay经验池。通过将训练得到的数据储存起来然后随机采样的方法降低了数据样本的相关性。提升了性能。接下来,Nature DQN做了一个改进,就是增加Target Q网络。也就是我们在计算目标Q值时使用专门的一个目标Q网络来计算,而不是直接使用预更新的Q网络。这样做的目的是为了减少目标计算与当前值的相关性。

如上面的损失函数公式所示,计算目标Q值的网络使用的参数是w-,而不是w。就是说,原来NIPS版本的DQN目标Q网络是动态变化的,跟着Q网络的更新而变化,这样不利于计算目标Q值,导致目标Q值和当前的Q值相关性较大。因此提出单独使用一个目标Q网络。那么目标Q网络的参数如何来呢?还是从Q网络中来,只不过是延迟更新。也就是每次等训练了一段时间再将当前Q网络的参数值复制给目标Q网络。

这个做的效果还是很明显的,效果见下表(引用自Nature 论文):

这就是Nature DQN的改进。

3 DQN有什么问题?还可以如何改进?

在Nature DQN出来之后,肯定很多人在思考如何改进它。那么DQN有什么问题呢?

  • 目标Q值的计算准确吗?全部通过max Q来计算有没有问题?
  • 随机采样的方法好吗?按道理不同样本的重要性是不一样的
  • Q值代表状态,动作的价值,那么单独动作价值的评估会不会更准确?
  • DQN中使用\epsilon-greedy的方法来探索状态空间,有没有更好的做法?
  • 使用卷积神经网络的结构是否有局限?加入RNN呢?
  • DQN无法解决一些高难度的Atari游戏比如Montezuma's Revenge,如何处理这些游戏?
  • DQN训练时间太慢了,跑一个游戏要好几天,有没有办法更快?
  • DQN训练是单独的,也就是一个游戏弄一个网络进行训练,有没有办法弄一个网络同时掌握多个游戏,或者训练某一个游戏后将知识迁移到新的游戏?
  • DQN能否用在连续动作输出问题?

那么现在的事实发现DeepMind确实在思考解决上面的几个问题,并且基本上每一个问题都有一定的解决方法。下面罗列一下各个问题的解决文章:

除了上面的问题,其他的就是将DQN应用到其他领域比如文字理解,目标定位等等,也就是DQN的拓展研究,这里就不罗列相关文章了。上面的这些成果基本出自DeepMind之手,只有一两篇出自其他大牛,比如Pieter AbbeelRuslan Salakhutdinov

4 Double DQN,Prioritised Replay,Dueling Network三大改进

大幅度提升DQN玩Atari性能的主要就是Double DQN,Prioritised Replay还有Dueling Network三大方法。

David Silver在ICML 2016中的Tutorial上做了介绍:深度增强学习Tutorial 下图引用其PPT:

简单说明一下:

  • Double DQN:目的是减少因为max Q值计算带来的计算偏差,或者称为过度估计(over estimation)问题,用当前的Q网络来选择动作,用目标Q网络来计算目标Q。
  • Prioritised replay:也就是优先经验的意思。优先级采用目标Q值与当前Q值的差值来表示。优先级高,那么采样的概率就高。
  • Dueling Network:将Q网络分成两个通道,一个输出V,一个输出A,最后再合起来得到Q。如下图所示(引用自Dueling Network论文)。这个方法主要是idea很简单但是很难想到,然后效果一级棒,因此也成为了ICML的best paper。


5 小结

本文为大家分享了DQN之后的各种改进,简单介绍了Double DQN,Prioritised replay,Dueling Network的方法。由于到这个程度需要阅读的论文的量就比较大了,所以也想听听知友们的意见。如果有很多知友到了这里,那么接下来我会继续分析一些DQN相关的改进,要不然DQN 从入门到放弃系列也将到此为止了,虽然我们的实战篇部分还会继续跟大家分享如何实打实的实现算法。接下来,我们将进入深度增强学习的另外一种解决方法:Policy Gradient策略梯度方法的分析,感谢大家的关注!

本文为原创文章,未经作者允许不得转载!

编辑于 2016-07-10

文章被以下专栏收录

    面向通用人工智能和机器人学习,聚焦深度增强学习,可微神经计算机和生成对抗模型。