Deep Q

阅读数:5 2019 年 12 月 2 日 16:23

Deep Q

Deep Q

[公式] 表示状态值函数:在当前状态 s 下使用策略 [公式] ,期望获得的累计奖赏。比如上图游戏中左图当前还有很多怪可以打,期望奖赏就会很高,而右图只剩很少的怪可以打,期望奖赏就比较低。

那么怎么估计 [公式] 的值呢?第一种方式是 MC 方法:

Deep Q
第二种方法是基于 TD 的方法:

Deep Q
MC 和 TD 的差别是什么呢?MC 方法的缺点是方差较大,因为每个情节的差别可能会很大,有时候游戏玩的好,有时候玩的不好。所以累计奖赏 [公式] 会有很大的方差。

而 TD 方法预估 V 值的时候,只是用了一个时刻的奖赏 r,方差较小,但是也用到了下一个时间的 [公式] 的值,该值在训练的一开始可能存在估计不准确的问题。实际中,MC 用的较少。
Deep Q

上面讨论的是 V 值,和动作无关,下面开始介绍 Q 值:

Deep Q
当 action 的数量特别大时,应该采取第一种方法,即输入状态 s 和动作 a,输出对应的 Q 值。
Deep Q
Deep Q
上图最左边一张图表示,当前状态下采取每个动作的 Q 值差不多,因为这个时候采取上移、下移或者不动都不太会影响能否接住回来的球。而左二表示当前状态下上移才能得到较大的奖赏值,因此此时下移或者不动可能就来不及接住球了。
Deep Q

[公式] ’是根据 Q 值来决定的:当前状态下最大 Q 值对应的动作。另外,该方法不适合联系动作的情景。因为有 argmax 操作。
Deep Q

上面一个投影片是对: [公式] 的证明。
Deep Q

上面介绍了 Target Network 的技巧。Target 网络一开始的权重和主网络是一样,每隔 N 步,再将主网络的权重赋值给 target 网络,这样 target 网络在一段时间内输出是固定的,增加了训练的稳定性。(因为实际上这就是个回归问题,回归的 target 值必须在一段时间内保持固定)
Deep Q

介绍了动作探索的必要性。

Deep Q
replay buffer 中存了很多个样本 transition 序列,这些训练样本不要求来自于同一个策略 [公式] 产生,而当前的 Q 值则是依赖于当前的策略 [公式] 的,因此是属于 off-policy。另外 replay buffer 打乱了样本之间的顺序,保证了训练的稳定性(因为深度神经网络的训练需要训练样本之间是无关联的)。

Deep Q
参考文献:

https://www.bilibili.com/video/av24

本文转载自 Alex-zhai 知乎账号。

原文链接: https://zhuanlan.zhihu.com/p/72954432

评论

发布