1. 前言
由于Q-learning将最大值作为动作的价值,因此就难免出现过于乐观的情况,但是有时候乐观有助于更多的探索。作者为了测试overestimation是否会在实际情况中出现,调查了DQN算法的结果。发现,即使在一些相对很好的条件下,DQN依旧会过于放大一些动作的value值。
2. 介绍
在增强学习算法中,我们将动作的价值定义为:
![](https://img.haomeiwen.com/i13613701/abd8c4c19e47453e.png)
最优的value值为:
![](https://img.haomeiwen.com/i13613701/d1dab715caaa5b4d.png)
2.1 Deep Q Network
deep q-learning就是使用一个神经网络作为估计函数来估计,DQN使用了两个关键的方法来增加效果,一是:使用一个target network,二是使用了experience replay,目的都是为了增强会价值函数拟合的稳定性。
2.2 Double Q-learning
在Q-learning中使用的最大值操作,使用相同的value来进行选择动作和估计动作,因此估计的价值会偏大,导致选择的动作高估了这个选择。为了防止这种情况,可以将选择和评估分开。在之前的double q-learning算法,使用agent的经验来随机地更新两个价值函数,它们的参数分别是:和
,对比如下:
Q-learning
![](https://img.haomeiwen.com/i13613701/58b31d7f29deed84.png)
Double Q-learning
![](https://img.haomeiwen.com/i13613701/69298b5cecdb1b3f.png)
可以看到,使用
![](https://img.haomeiwen.com/i13613701/6e8bbe5ff8fd0b0c.png)
橘黄色的条表示了bias。
作者还考察了函数估计的情况。如下图:
![](https://img.haomeiwen.com/i13613701/5cc70c84cadcda24.png)
最左边一列,用紫色曲线表示真实的
![](https://img.haomeiwen.com/i13613701/493bfd94be290f80.png)
类似于Double Q-learning,作者使用一个online network来进行greedy policy,使用一个target network来估计它的价值
note:我不是特别清楚Double DQN的算法和DQN有什么区别。。。
参考了 https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow/blob/master/contents/5.1_Double_DQN/RL_brain.py
在代码实现中,Double Q-learning中是由当前online network的最大值来决定的,而Q-learning中
是由target network的最大值来决定的。
这体现了target网络在两种算法中的区别。在DQN中,我认为目标网络是我们的拟合结果,online网络是为了sampling,当我sample 了一个样本后,由于目标网络才是那个agent,我使用目标网络来计算下一个状态的最大的Q值。然后使用online网络得到的Q值和最大的Q值,来计算error来更新现在的online网络。这个更新在一定的步骤后,将它作为真实的一个估计,替代目标网络的参数。
而在Double Q-learning中,我们使用了两个网络,目标网络用于action的选择,online网络用于value的估计。那么,在计算error的时候,就应该使用online网络得到的最大的Q(因为它用于估计value)。
网友评论