概述
谈到过估计(overestimate)问题的时候,我们需要先交代一下背景,现在训练神经网络的时候,不是一张图一张图的进行训练,我们是通过一个batch一个batch去训练,每个batch里面包含了N张图,所以经常在看到别的网络参数的时候会有一个batch size的参数。
假设N=32,就是32张图分别经过CNN网络计算,然后计算出32个Loss,然后会把这32个Loss求和或者求平均转换成1个Loss,最后才使用back propagate更新网络的参数。
然后我们开始说为什么DQN会有overestimate的问题?
在更新网络的时候,DQN求得的Q值的公式为:
每次求得的Q target都是通过取max得到的,然而我们做的是需要对计算出来的Q值取平均之后才能更新我们的网络,我们都知道
可以看出,我们把N(设为32)个Q值先通过取max操作之后,然后求平均(期望),会比我们先算出32个Q值取了期望之后再max要大。这就是overestimate的原因。
参考博客:
[1] DQN从入门到放弃6 DQN的各种改进 https://zhuanlan.zhihu.com/p/21547911
最后
以上就是干净灰狼为你收集整理的Nature DQN为什么会存在过估计?的全部内容,希望文章能够帮你解决Nature DQN为什么会存在过估计?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复