为什么会出现Q值高估?
为什么会存在高估(低估现象)
TL;DR
在带噪声的 Q 估计上做最大化,会更容易选中被误差偶然抬高的动作,从而产生系统性正偏差。
一切的起源
零均值假设:
从 Q-Learning 的角度看每次都会选去哪些最大的 Q 值,而这里的 Q 值是估计的,所以自然会选择哪些 \(\epsilon_a>0\) 的,进过 booststrap 误差一步步积累 :
这时必有
也就是说 max 算子更容易选中 恰好被噪声抬高的那个动作,所以造成了Q高估。
一般的 Actor-Critic
上面仅仅讲了 Q-Learning 的情况,这是因为取 max(min) 算法造成的高估(低估),那一般的AC是否也存在高估或者低估呢,答案是肯定呢,AC算法本质上也是在做同样的优化,即最大化或者最小化某一个全局的(长时域的)目标函数,但 AC 的高估或者低估与 Q-learning 中的不同,主要的原因是 Actor 倾向于选择 Critic 高估的动作,Actor 会让更新朝着
的方向走,再加上 critic 是 booststrap 更新,这个高估会通过 TD Target 往前传播,
所以一般的解决方法是使用备份的 Q, 也就是两套 Q-net(包含 Critic和Target critic)。
综上,AC的高估机制总结如下:
高估或低估并非绝对的坏
Q高估和低估并非只有绝对的好坏,这是双面性的。
从探索方面看,高估抑制探索,低估鼓励探索。对于安全强化学习,其目标可以理解为两个:a. 最大化奖励 b. 最小化安全cost,由此可以理由偏差来鼓励探索或者抑制探索,再高cost区域可以对cost critic的低估做处理提高Q值抑制探索。
高估(低估) 和采样的关系
从直觉上来说,如果某些区域采样很少,那么Q估计的方差会很大,一旦某个cost被偶然低估策略就更愿意去那里,于是增加对这些区域的探索,
本文来自博客园,作者:boerduo,转载请注明原文链接:https://www.cnblogs.com/boerduo/p/23213563

浙公网安备 33010602011771号