揭秘深度强化学习-7DQN的一些小技巧

看完觉得深受启发的一篇文章,根据自己的理解翻译过来留以后再次翻看

原文地址http://neuro.cs.ut.ee/demystifying-deep-reinforcement-learning/

经验回放(Experience Replay)

至今我们已经知道如何通过Q-learning和近似Q函数的CNN来评估任一状态的未来奖励。但是关于Q值的渐近使用的是非线性函数并不稳定。这里有一些小技巧来帮助它收敛。即便如此,强化学习仍需要花费很长的时间,一个独立的GPU用一周也是常事。

最重要的技巧是经验回放(experience replay)。游戏过程中,我们会形如<s,a,r,s′>存储过往经验在缓存中 。当训练NN时,我们不使用最近获得的经验,而是从缓存中随机取样。这就打破了相似的连续训练样本。为什么要打破呢?因为连续相似样本可能会导致NN只能获得局部最优解。同样的经验回放使训练任务与普通的监督学习更相似,这简化了调试和测试算法。我们可以从人们玩游戏的样本中取得同样的数据并且以此训练网络

探索利用两难(Exploration-Exploitation)

Q-learning试图解决信用分配问题——及时传播回预期奖励信息,直到真的拿到分数。但是我们还没有解决探索-利用两难问题(Exploration-Exploitation)。

首先看一下,当一个Q表或者Q网络被随机初始化,它的预测值也是随机的。如果我们通过行动选择最高Q值,这个行动会是随机的而且智体会严格执行“利用”,即每次都选择最高值。这种探索时贪婪的,它总是停在找到的第一个有效策略那里,对于其他的行动不屑一顾。

对于上述难题有一个简单的补救方法,就是ε-贪婪探索——选择行动时有ε的可能性是选择随机行动,否则选择最高Q值的“贪婪”行动。DeepMind采取的方法是随着训练时间逐步降低ε,从最开始的1到后来的0.1——在最开始的时候系统完全随机移动来最大的探索整个状态空间,之后逐渐调整这个比率。

DQN算法

这两个小技巧补充了我们的DQN算法如下

DeepMind还应用了许多其它技巧——比如目标网络,误差剪裁,回报剪裁,但是这些都不在本篇范围之列。

这个算法最让人惊奇的是它可以学习任何东西。因为我们的Q函数是随机初始化的,它最开始生成的输出是完全无用的,而我们用这些无用信息(下一状态最大Q值)作为网络的目标,只偶尔加入一些微小回报。这听起来疯狂,这就能学习任意有意义的东西?事实确实如此。

最后的最后

深度Q网络(DQN)出现至今,人们提出了许多的改进方法,比如说:Double Q-learningPrioritized Experience ReplayDueling Network Architecture ,extension to continuous action space 。 

从以下地址可以看看它最近的发展: NIPS 2015 deep reinforcement learning workshop 和 ICLR 2016 (以 “reinforcement”进行搜索)。但是请注意,Google持有DQN的专利权。

通常来说,我们还未完全实现人工智能。只要我们知道它的实现原理,我们不会觉得它很智能了。但是DQN依然震惊了我。它们实现一个新的游戏智能就像野外的动物观察周围的环境——只需要它们获取的奖励经验。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值