美文网首页
Deep Reinforcement Learning with

Deep Reinforcement Learning with

作者: Junr_0926 | 来源:发表于2018-09-15 16:27 被阅读0次

1. 前言

由于Q-learning将最大值作为动作的价值,因此就难免出现过于乐观的情况,但是有时候乐观有助于更多的探索。作者为了测试overestimation是否会在实际情况中出现,调查了DQN算法的结果。发现,即使在一些相对很好的条件下,DQN依旧会过于放大一些动作的value值。

2. 介绍

在增强学习算法中,我们将动作的价值定义为:

Q
最优的value值为: Q

2.1 Deep Q Network

deep q-learning就是使用一个神经网络作为估计函数来估计Q,DQN使用了两个关键的方法来增加效果,一是:使用一个target network,二是使用了experience replay,目的都是为了增强会价值函数拟合的稳定性。

2.2 Double Q-learning

在Q-learning中使用的最大值操作,使用相同的value来进行选择动作和估计动作,因此估计的价值会偏大,导致选择的动作高估了这个选择。为了防止这种情况,可以将选择和评估分开。在之前的double q-learning算法,使用agent的经验来随机地更新两个价值函数,它们的参数分别是:\theta\theta ',对比如下:
Q-learning

Q-learning

Double Q-learning

Double Q-learning
可以看到,使用 bias
橘黄色的条表示了bias。

作者还考察了函数估计的情况。如下图:

Figure 2
最左边一列,用紫色曲线表示真实的 DDQN
类似于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中Q_*是由当前online network的最大值来决定的,而Q-learning中Q_*是由target network的最大值来决定的。
这体现了target网络在两种算法中的区别。在DQN中,我认为目标网络是我们的拟合结果,online网络是为了sampling,当我sample 了一个样本后,由于目标网络才是那个agent,我使用目标网络来计算下一个状态的最大的Q值。然后使用online网络得到的Q值和最大的Q值,来计算error来更新现在的online网络。这个更新在一定的步骤后,将它作为真实的一个估计,替代目标网络的参数。
而在Double Q-learning中,我们使用了两个网络,目标网络用于action的选择,online网络用于value的估计。那么,在计算error的时候,就应该使用online网络得到的最大的Q(因为它用于估计value)。

相关文章

网友评论

      本文标题:Deep Reinforcement Learning with

      本文链接:https://www.haomeiwen.com/subject/dcezgftx.html