Deep Reinforcement Learning with Double Q-learning 笔记

1. 前言

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

2. 介绍

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

Q

最优的value值为:
,增强学习为我们提供了Q-learning算法来估计optimal action values,我们可以使用一个函数来估计价值,将参数
作为该函数的参数,可以使用如下更新公式:
Q

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

Q-learning

Double Q-learning

Double Q-learning

可以看到,使用
来进行选择,使用
来进行价值的计算。

2.3 Overoptimism due to estimation errors

Q-learning会过于乐观,当action values包含了一个uniformly distributed的error时(在区间内),那么每一个target都会被高估。
作者证明了,任何形式的estimation error都会为结果增加一个正的偏置。作者证明了对于一个target的无偏估计,如果它和真实target的差存在一个大于零的方差,那么就会导致在某些情况下,。如下图:

bias

橘黄色的条表示了bias。

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

Figure 2

最左边一列,用紫色曲线表示真实的
,第一行
,第二三行
。绿色表示了估计值,绿点表示了采样,也就是样本。左边一列是无误差的。
中间一列绿色的线条是10个action的价值函数的估计,黑绿相间的是maximum action value。它一般比真实结果大。
最右边一列对比了Q-learning和Double Q-learning的结果,可以发现Double Q-learning可以有效地减少过于乐观的情况。、

Double DQN

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中是由当前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)。

你可能感兴趣的:(Deep Reinforcement Learning with Double Q-learning 笔记)