【论文笔记】强化学习DQN专题经典论文6篇

论文列表详见:openAI spinning-up key paper list

引子

在这里插入图片描述

DQN是使用深度神经网络估计Q值的Q-learning。
属于 无模型、TD、基于价值、off-policy 的强化学习算法。

在这里插入图片描述
在 DQN 中将状态和动作作为神经网络的输入值,并得到相应的输出——对应的 Q 值 。认为大家都是熟悉Q-Learning的,所以只做简要描述。

假定策略Π固定,如果输入的是当前的状态和选择的动作,输出就是动作在该策略下的价值。如果只输入当前的状态,输出就是所有可选择动作的价值向量。

个人认为,Q-learning的思想朴素且自然:先估计每一个动作的价值,方便根据价值选择动作。

现在来看一个例子,以便更好地理解:
在这里插入图片描述
图为一个简单的MDP,椭圆表示各个状态及到达状态时的reward,选择的策略是随机选择路径。绿色的方框内是对每个状态、在策略Π下的价值估计。浅红的方框内是对各个动作基于Q-learning的价值估计。第一步只有一个动作,第二部会从两个动作中随机选择一个。

这里有一个要注意的是第一个Q=36,在Sarsa中,该动作价值为30,更符合当前策略下的价值。

此处Q = 36的估计其实高于该步真实的价值30。这也体现出了DQN在最大化估计的时候容易出现最大化偏差的问题。

接下来开始介绍论文。

Playing Atari with Deep Reinforcement Learning, Mnih et al, 2013. Algorithm: DQN.

在这里插入图片描述
该论文是DQN的开山文,率先将深度神经网络与Q-learning相结合(DQN)
利用了DNN强大的拟合能力来估计动作的Q值。

下图为改论文的网络架构:
在这里插入图片描述
因为该论文的计算基于像素,因此采用了3层的卷积层。不需要调整架构就可以在各种游戏上取得较好的结果。

顺带一提,本文使用了DQN的秘技之一:replay buffer。
Replay buffer有以下作用:
[1]交互得到的序列存在一定相关性。打破了这种独立同分布特性,因此效果不太好。
[2]交互样本使用的效率过低。因为每次要使用一定的时间获取一个batch的样本才能完成一次训练,所以对样本的获取是有些慢的,而且在线学习方式往往会将学习后的样本直接丢弃,这样下来利用的效率不高。 主要就包括样本收集和样本采样两个过程,一种有限量的保存和 均匀随机的采样。

Deep Recurrent Q-Learning for Partially Observable MDPs, Hausknecht and Stone, 2015. Algorithm: Deep Recurrent Q-Learning.

在这里插入图片描述
该论文提出,使用LSTM使得网络能够“记忆”一些画面。因为保留“记忆”可以在POMDP的时候提供帮助。

有一些游戏单靠一帧是没有办法获得全部信息的(如小球的运动方向)。

当在正常游戏 (MDP) 上训练, 然后在闪烁的游戏 (POMDPs) 上进行评估时, DRQN 下降比 DQN 更少。
在没有闪现的游戏中其实没有系统性的提升,只有在认为增加“意外”的时候才会有明显的提高。
(在我看来,这其实只是稍稍提高了一点点鲁棒性罢了。)

使用LSTM解决了传统DQN的两点局限性:

  • 不能记住所有过去经验
  • 需要完整的观测信息

在这里插入图片描述
本文的网络结构和之前的DQN相似,仅仅把最后一层全连接层替换为LSTM。

本文还比较了两种LSTM参数更新方式

  • 序列化更新
  • 随机化更新

前者是从观察并记忆到的特征中随机选择,并在开始时进行更新,直至一幕结束,LSTM隐藏状态被一直保留并不断更新;后者则是在一幕的随机点开始进行更新并直至一次训练迭代结束,LSTM隐藏状态初始值在每次开始更新时被置零(不再保留)。
前者更善于保留信息,而后者更符合随机采样的原则。效果两者差不多。

Dueling Network Architectures for Deep Reinforcement Learning, Wang et al, 2015. Algorithm: Dueling DQN.

在这里插入图片描述
dueling network 将状态价值评估和动作价值评估“分离”。
通过修改第一篇文章最后一层全连接层的输出,将之分为两个输出

  • 当前状态的价值V
  • 各个动作的价值向量A
    在这里插入图片描述
    将网络输出分为V和A,其中A中各个分量之和为0。使得对V、A的估计更加准确,更好地评价当前局面的状态价值和动作价值。

在这里插入图片描述
《Sutton》上没有收录这种方法。
Dueling Network的输入和输出与DQN完全一样,Dueling Network与DQN的功能也完全一样,两者唯一的区别就是神经网络的结构。

训练方式:e-greedy ,e is chosen to be 0:001. 使用和原来DQN一样的网络,只把最后一层全连接层一分为二,一部分输出V,一部分输出A。V值就是当前的Q值。
论文在实验中发现,动作选择越多,效果越好。

Dueling直译是决斗,我想知道为什么这个网络的命名者为它取了这个名字。

Deep Reinforcement Learning with Double Q-learning, Hasselt et al 2015. Algorithm: Double DQN.

我之前有一篇文章专门讲了这个:胜者的诅咒与double DQN
在这里插入图片描述
将选择与评估分离。使得对于“最优”动作的估计是无偏的。

在这里插入图片描述
架构参考上图,将挑选最优动作的资格交给了update network,然后再交给target network对其进行评估。double-Q 几乎引入额外的计算,并且大幅度地解决了过估计的问题。

在看一个《Sutton》上的算法:
在这里插入图片描述
这其实就是随机选择两个网络,其中一个作为target network,另外一个当作 update network。

这两种算法都可以算作是Double DQN,我个人更喜欢Sutton书上的那种。

Prioritized Experience Replay, Schaul et al, 2015. Algorithm: Prioritized Experience Replay (PER).

在这里插入图片描述
在抽取经验池中过往经验样本时,采取按优先级抽取的方法。传统随机抽取经验忽略了经验之间的重要程度。
思想很朴实。用二八定律解释的话,就是百分之二十的行为带来了百分之八十的收益。应该重点学习那百分之二十的行为。
在这里插入图片描述
在上面这个例子中,如果一开始是随即策略,那么只有很少的时候能够到达节点n,也就是说buffer中几乎都是价值为0的经历。使用PER后,网络会更加乐意去学习那些能够带来收益的经历。在稀疏奖励强化中,这应该是非常重要的手段。(这让我想起了gyn库里的小游戏mountain car)

最基础的方法就是用TD-error来表示优先级。然后根据把归一化后的优先级当作被pick的概率。
并且使用PER算法更快收敛,效果更好。
文章中提出,优化后的PER方法总体耗时提高2%-4%。这几乎没有增加额外的计算负担。
在这里插入图片描述
这篇论文一直在存在问题、解决方法的循环讨论。是值得借鉴的思想。
比如最初的直接将TD(0)误差作为权重时:

论文提出TD(0)作为权重的算法存在问题:
1、为了避免由于扫描整个经验池带来的昂贵代价,只会更新被重放的transition的TD-error值,这样会造成:第一次见到过的一个有很小的TD-error的transition存放到经验池后,在很长时间都不会被回放
2、TD-error对于噪声很敏感,容易将源于噪声的估计误差加入。
3、这个算法专注于经验的一小部分,TD-error减小慢,特别是在使用函数近似(Function approximation,有linear函数估计,例如线性回归,以权重作为参数;有non-linear函数估计,例如NN),高的TD-error由于重放频繁会使得丧失多样性造成过拟合。

论文提出解决方法:
1.第一种变体 proportional prioritization,用sumtree结构(更常用),与普通的二进制堆结构不同,每个节点是其子节点的和
2.第二种变体 rank-based prioritization ,基于二进制堆结构用优先队列直接存储各个transition

Rainbow: Combining Improvements in Deep Reinforcement Learning, Hessel et al, 2017. Algorithm: Rainbow DQN.

DQN还有很多方法不再展开了:
在这里插入图片描述
来看彩虹:
在这里插入图片描述
DQN集之前7种所有方法的大乘之作。

实验曲线非常好看:
性能比较
当采用其中不冲突的方法后,训练以后的结果自然一骑绝尘。
并且团队还进行了消融实验:看看在彩虹中有没有哪种方法在滥竽充数:
消融实验

欸嘿嘿,是DDQN(double-dqn)在滥竽充数(紫色线)。在去掉它之后曲线并没有什么下降。其实不难理解,因为有了Multi-step后其实几乎已经不会有过估计的问题了。DDQN主要解决的问题已经不存在了,所以去掉以后没有产生不良影响也是可以理解的。

Deepmind团队在2017年做的实验。总结应用了互相不冲突的各种DQN方法,是DQN的大杂烩。

七种方法,互不冲突。品一品,颇有七剑下天山的滋味。也断绝了后续很多所谓改进DQN的“水论文”行为。

结语

DQN是一个很广阔的领域,很多科研爱好者都在这个领域奋斗。我也属于刚接触RL,水平有限,如有错漏烦请指点。

都看到这里了,就顺手点个赞吧~

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邵政道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值