在整理自己的学习笔记的时候突然看到了这个问题,这个问题是我多年前刚接触强化学习时候想到的问题,之后由于忙其他的事情就没有把这个问题终结,这里也就正好把这个问题重新的规整一下。
其实,这个DQN算法作为off-policy的强化学习算法为啥不需要重要性采样这个问题,真的是个神奇的问题,对于新入手强化学习的人来说这个问题就是个死活也搞不清、弄不懂的问题,但是对于强化学习的老手来说这个问题又显得十分的弱智、可笑,那我就用我当年从一个老家伙那得到的回到来作为这个post的答案:
DQN的收敛性不需要重要性采样来保证。
惊不惊喜,意不意外,这个好像奇难无比的问题,答案却是如此的简单。
----------------------------------
对于这个问题,网上也是充斥着不少的错误答案,这个也没什么,毕竟这种问题却是好像蛮不好回答的,而且这种问题也和发paper、搞项目没有多大关系的,能提出这个问题并且还能研究出一个所谓“答案”的人也是挺不容易的了,为此也找了些网上给出的常见错误答案:
https://blog.csdn.net/weixin_37895339/article/details/84881169
https://blog.csdn.net/qq_40081208/article/details/127268489
https://www.zhihu.com/question/394866647/answer/1264965104
总结一下这些错误答案,大致可以分为下面几类错误:
1. 对target Q-value进行估计时使用1-step的方法,此时的动作选择为greedy策略,因此无法使用重要性采样;
2. 对target Q-value进行估计时使用n-step的方法,此时的动作选择除最后一步为greedy策略其他步均为epsilon-greedy策略,因此无法使用重要性采样;
3. Q-leaning和DQN的公式中没有使用期望公式,因此不能使用重要性采样;
4. 因为DQN中使用了replay buffer因此无法使用重要性采样;
5. DQN的公式从数学上就使它没有必要使用重要性采样;
可以看出,这个问题对于新手来说还是蛮有难度的,而我当年刚接触这个领域的时候也是同样的晕头转向,在给出正确解释之前针对网上的大量错误分析给出一些说明:
基础知识:
Q-learning的相关论文中指出在q-value可以使用tabular表示的情况下Q-learning可以收敛到全局最优解;
在使用线性函数近似表示q-value的情况下(使用函数近似了,就说明不少tabular的形式了)q-learning可以收敛到局部最优解(注意,这里也是在理论上保证了收敛);
在使用非线性函数近似表示q-value的情况下(使用函数近似了,就说明不少tabular的形式了)q-learning无法在理论上保证收敛;
根据Q-learning的相关理论可以知道,DQN是无法在理论上保证收敛的,而且现在从大量实验中也可以清楚的empirical表明DQN是存在不收敛的情况的(大量实验中会遇到,该问题往往和特定游戏环境和神经网络的随机种子有关,尤其深度神经网络的性能有时和随机种子还是有很大关系的,一次没有收敛往往换个随机种子再跑一次就收敛了)
Q-learning论文中数学证明了其不同情况下的收敛性,但是要注意这里的收敛只是理论上证明的收敛,而理论上收敛就说明只能保证在时间足够长的情况下可以收敛,而由于问题的不同往往这里需要的足够长的时间在现实中也是难以接受的,而超出现实中可以接受的收敛时长往往和不收敛也是差不大多的,这里需要理解的就是理论收敛指的是无限长时间内的收敛性。
从Q-learning的公式可以看到,当Q-learning达到理论上的收敛时target policy和behavior policy为同一策略,此时的epsilon也由逐渐减小变为了0值,而此时的target policy和behavior policy也就自然成了greedy策略。但是在Q-learning没有达到理论上的收敛时,训练过程中的epsilon减小到0值,也就是说epsilon在Q-learning未达到理论上的收敛时时不为0的,此时的behavior policy自然是epsilon-greedy策略;而target policy虽然在评估时的最后一步用greedy策略选择max值,由于target policy的训练数据都是从behavior policy中获得的(即使不适用replay buffer也是如此,使用其他策略的数据来训练),可以说target policy是介于behavior policy基础之上的epsilon-greedy策略和greedy策略之间的一种策略看,其本质依旧为epsilon-greedy策略。
引申解释:
1. 我们常见的使用重要性采样的off-policy算法往往都是behavior policy是epsilon-greedy策略或其他形式的随机策略,而target policy是greedy策略,但是这里需要注意的是,不论DQN还是Q-learning,它的target policy是epsilon greedy策略,而它的behavior policy也是epsilon greedy策略。这里比较难以理解的是target policy为什么也是epsilon greedy策略,这就需要看Q-learning的原始论文以及关于Q-learning收敛性证明的论文了,而且实验表明对DQN进行性能评估时实验epsilon-greedy可以得到更好的result。
2. 相关论文在数学理论上证明了线性函数近似q-value时的收敛性,因此我们可以从非理论的角度预估到DQN也可以到达比较好的收敛情况,但是实际上不使用replay buffer和target network的DQN往往得不到很好的收敛表现,不过也正是DQN引进了这两项技术使DQN在实验中empirical证明了很好的收敛性,于是才有了DQN算法。
最终答案:
之前的那些网上错误答案虽然错的蛮远的,不过也说对了一个事情,那就是DQN是无法使用类似off-policy n-step SARSA算法的方式来加入重要性采样的(dqn和q-learning硬要加重要性采样确实没有简单的现成方法来实现),不过这个问题的真正答案是在线性函数近似的DQN是已经证明收敛性的,而即使使用神经网络的DQN无法在理论上保证其收敛,但是使用了replay buffer和target network后在实验上empirical证明其较好的收敛性(存在一定情况下不收敛),于是就用了最终的答案:
DQN的收敛性不需要重要性采样来保证。
off-policy的强化学习算法使用重要性采样还是蛮常见的,比如IMPALA算法,而且即使DQN中无法使用也没有必要使用重要性采样,但是也有一些形式上比较像的DQN变种,如:experience priority DQN,不过这里需要注意experience priority并不是重要性采样,从理论上来说就不是一个事情,不过就是计算形式上比较像罢了。
强化学习算法的公式都比较简单,但是理论却是十分的复杂、难懂,往往没有多少人会深挖这种算法理论,大家现在还是比较喜欢搞模型构建和模型理论,毕竟这样会显得更加务实,不过这样的话最好直接把强化学习的一些理论无视掉,就不要碰了,不然半懂不懂的去分析强化学习的理论只会走到岔路上去。
---------------------------------------------------
相关资料:
DQN(深度神经网络拟合的情况下)对于一些特定游戏在特定随机种子下难以收敛,也就是说会有一定概率出现类似下面这样的训练表现: