DQN的overestimate

转载自 https://blog.csdn.net/OsgoodWu/article/details/78923053


谈到过估计(overestimate)问题的时候,我们需要先交代一下背景,现在训练神经网络的时候,不是一张图一张图的进行训练,我们是通过一个batch一个batch去训练,每个batch里面包含了N张图,所以经常在看到别的网络参数的时候会有一个batch size的参数。


DQN的overestimate_第1张图片

假设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

你可能感兴趣的:(DQN的overestimate)