type
status
password
date
slug
summary
category
URL
tags
icon
在本章中,我们将继续研究时序差分(temporal - difference)学习算法。然而,我们将使用一种不同的方法来表示状态/动作价值。到目前为止,在本书中,状态/动作价值都是通过表格来表示的。表格法易于理解,但在处理大型的状态空间或动作空间时效率低下。为了解决这个问题,本章引入函数近似(function approximation)方法,该方法已成为表示值的标准方法。这也是将人工神经网络作为函数近似器融入强化学习的地方。函数近似的思想也可以从表示值扩展到表示策略,这将在第9章介绍。
8.1 价值表示:从表格到函数
接下来我们用一个例子来说明表格法和函数近似法之间的差异。
假设存在个状态,其状态价值为。这里,是一个给定的策略。令表示真实状态价值的估计值。如果我们使用表格法,估计值可以保存在如下表格中。这个表格可以作为数组或向量存储在内存中。为了检索或更新任何值,我们可以直接读取或重写表格中相应的条目。
state | ||||
Estimated value |
接下来我们表明上述表格中的值可以用一个函数来近似。
特别地,在图8.2中表示为个点。这些点可以被一条曲线拟合(逼近)。最简单的曲线是一条直线,其可被描述为
这里,是一个用于逼近的函数。它由状态和参数向量共同确定。有时被写为。这里,被称为的特征向量。
表格法和函数近似法之间第一个显著的差异涉及它们如何检索和更新一个值。
- 如何获取一个值:当值由表格表示时,如果我们想要获取一个值,可以直接读取表格中相应的条目。然而,当值由函数表示时,获取值就变得稍微复杂一些。特别是,我们需要将状态指标输入到函数中并计算函数值(图8.3)。对于(8.1)中的示例,我们首先需要计算特征向量,然后计算。如果这个函数是一个人工神经网络,则需要从输入到输出的前向传播。

由于获取状态价值的方式,函数近似法在存储方面更高效。具体来说,表格法需要存储个值,而现在我们只需要存储一个低维的参数向量。因此,存储效率能得到显著提高。然而,这种好处并非没有代价:状态价值可能无法被函数精确表示。例如,一条直线无法精确拟合图8.2中的点。这就是为什么这种方法被称为近似法。从根本上讲,当我们使用低维向量来表示高维数据集时,必然会丢失一些信息。因此,函数近似法通过牺牲精度来提高存储效率。
- 如何更新一个值:当值由表格表示时,如果我们想要更新一个值,可以直接重写表格中相应的条目。然而,当值由函数表示时,更新值的方式则完全不同。具体来说,我们必须更新以间接改变值。如何更新以找到最优状态价值将在后面详细阐述。 由于状态价值的更新方式,函数近似法还有另一个优点:其泛化能力比表格法更强。原因如下:当使用表格法时,如果在一个回合(episode)中访问到相应的状态,我们才能更新一个值。未被访问的状态的值无法被更新。然而,当使用函数近似法时,我们需要更新来更新一个状态的值。的更新也会影响一些其他状态的值,即便这些状态未被访问。因此,一个状态的经验样本能够泛化以帮助估计其他一些状态的值。
上述分析如图8.4所示,图中有三个状态。假设我们有一个关于的经验样本,并且想要更新。
当使用表格法时,我们只能更新,而不会改变或者,如图8.4(a)所示。当使用函数近似法时,更新不仅能够更新,而且还会改变和,如图8.4(b)所示。因此,的经验样本能够有助于更新其相邻状态的值。

我们可以使用比直线具有更强近似能力的更复杂的函数。例如,考虑一个二阶多项式:
我们甚至可以使用更高阶的多项式曲线来拟合这些点。随着曲线阶数的增加,近似精度可以提高,但参数向量的维度也会增加,这就需要更多的存储和计算资源。
注意,无论是(8.1)还是(8.2)中的关于都是线性的(尽管它关于可能是非线性的)。这种方法被称为线性函数近似,它是最简单的函数近似方法。为了实现线性函数近似,我们需要选择一个合适的特征向量。也就是说,例如,我们必须决定是应该使用一阶直线还是二阶曲线来拟合这些点。合适特征向量的选择并非易事。它需要给定任务的先验知识:我们对任务理解得越好,就能选择越好的特征向量。例如,如果我们知道图8.2中的点大致位于一条直线上,我们就可以使用一条直线来拟合这些点。然而,在实际中这种先验知识通常是未知的。如果我们没有任何先验知识,一种流行的解决方案是使用人工神经网络作为非线性函数近似器。
另一个重要的问题是如何找到最优的参数向量。如果我们知道,这就是一个最小二乘问题。最优参数可以通过优化以下目标函数得到:
其中
可以验证,这个最小二乘问题的最优解是
关于最小二乘问题的更多信息可在[47,3.3节]和[48,5.14节]中找到。
本节给出的曲线拟合示例阐释了价值函数近似的基本思想。这一思想将在下一节中正式介绍。
8.2 基于函数近似的状态价值时序差分(TD)学习
在本节中,我们将展示如何把函数近似法融入时序差分学习,以估计给定策略的状态价值。在8.3节,这个算法将被扩展用于学习动作价值和最优策略。
本节包含很多小节以及许多连贯的内容。在深入细节之前,我们最好先回顾一下这些内容。
- 函数近似法被构建为一个优化问题。这个问题的目标函数将在8.2.1节介绍。用于优化此目标函数的时序差分学习算法将在8.2.2节介绍。
- 为了应用时序差分(TD)学习算法,我们需要选择合适的特征向量。8.2.3节将讨论这个问题。
- 8.2.4节将给出示例以展示TD算法以及不同特征向量的影响。
- 8.2.5节将对TD算法进行理论分析。本小节涉及较多数学内容。读者可根据自身兴趣有选择地阅读。
8.2.1 目标函数
设和分别为的真实状态价值和近似状态价值。需要解决的问题是找到一个最优的,使得对于每个,能够最好地近似。特别地,目标函数为
其中,期望是关于随机变量计算的。虽然是一个随机变量,但它的概率分布是什么呢?这个问题对于理解这个目标函数很重要。有几种方法来定义的概率分布。
- 第一种方法是使用均匀分布。即通过将每个状态的概率设为,把所有状态视为同等重要。在这种情况下,(8.3)中的目标函数变为
这是所有状态近似误差的平均值。然而,这种方法没有考虑给定策略下马尔可夫过程的实际动态性。由于某些状态可能很少被一个策略访问到,将所有状态视为同等重要可能是不合理的。
- 第二种方法(也是本章的重点)是使用平稳分布。平稳分布描述了马尔可夫决策过程的长期行为。更具体地说,在智能体执行给定策略足够长的时间后,智能体处于任何状态的概率都可以用这种平稳分布来描述。感兴趣的读者可以查看8.1 box中的详细内容。
设表示在策略下马尔可夫过程的平稳分布。也就是说,经过很长一段时间后智能体访问的概率是。根据定义,。然后,(8.3)中的目标函数可以重写为
这是近似误差的加权平均值。被访问概率较高的状态被赋予更大的权重。
值得注意的是,要得到的值并非易事,因为这需要知道状态转移概率矩阵(见框8.1)。幸运的是,如下一小节所示,为了使这个目标函数最小化,我们不需要计算的具体值。此外,当我们引入(8.4)和(8.5)时,假设状态的数量是有限的。当状态空间是连续的时,我们可以用积分来代替求和运算。
box 8.1:马尔可夫决策过程的平稳分布用于分析平稳分布的关键工具是,它是给定策略下的概率转移矩阵。如果将状态标记为,那么被定义为智能体从转移到的概率。的定义可在2.6节找到。
- 的解释。
首先,有必要研究中元素的含义。智能体恰好经过步从转移到的概率记为其中和分别为初始时刻和第个时刻。首先,根据的定义,我们有这意味着是单步从转移到的概率。其次,考虑。可以验证由于是从转移到,然后再从转移到的联合概率,我们知道是恰好经过两步从转移到的概率。即同样地,我们知道这意味着是恰好经过步从转移到的概率。
- 平稳分布的定义。
设是一个表示初始时刻状态概率分布的向量。例如,如果总是选择作为起始状态,那么,而的其他分量为。设是表示从出发恰好经过步后得到的概率分布的向量。那么,我们有该等式表明,智能体在第步访问的概率等于智能体恰好经过步从转移到的概率之和。(8.6)式的矩阵 - 向量形式为当我们考虑马尔可夫过程的长期行为时,在某些条件下有:其中,并且是一个所有行都等于的常数矩阵。(8.8)式成立的条件将在后面讨论。将(8.8)代入(8.7)得到:其中最后一个等式成立是因为。等式(8.9)意味着状态分布收敛到一个常数值,这被称为极限分布。极限分布取决于系统模型和策略。有趣的是,它与初始分布无关。也就是说,无论智能体从哪个状态开始,经过足够长的时间后,智能体的概率分布总是可以用极限分布来描述。的值可以通过以下方式计算。对两边取极限,得到,因此结果,是与特征值相关联的的左特征向量。(8.10)式的解被称为平稳分布。对于所有,满足且。(而非)的原因将在后面解释。
- 平稳分布唯一性的条件。
(8.10)式的解通常被称为平稳分布,而(8.9)式中的分布通常被称为极限分布。注意,(8.9)式蕴含(8.10)式,但反之可能不成立。具有唯一平稳(或极限)分布的一类一般的马尔可夫过程是不可约(或正则)马尔可夫过程。下面给出一些必要的定义。更多细节可在[49,第四章]中找到。- 如果存在一个有限整数,使得[,则称状态可从状态到达,这意味着从出发的智能体经过有限次转移后有可能到达。
- 如果两个状态和相互可到达,则称这两个状态是相通的。
- 如果一个马尔可夫过程的所有状态都相互相通,那么这个马尔可夫过程就被称为不可约的。换句话说,从任意一个状态出发的智能体在有限步数内有可能到达任何其他状态。从数学上讲,这意味着对于任意的和,存在,使得(对于不同的、,的值可能不同)。
- 如果存在,使得对于所有的、都有,那么这个马尔可夫过程就被称为正则的。等价地说,存在使得,这里的>是按元素比较的。因此,在至多步内,每个状态都有可能从任何其他状态到达。一个正则的马尔可夫过程也是不可约的,但反之不成立。然而,如果一个马尔可夫过程是不可约的,并且存在使得,那么它也是正则的。此外,如果,那么对于任何都有,因为。由(8.9)式可知,对于每个都有。
- 可能导致唯一平稳分布的策略
一旦策略给定,马尔可夫决策过程就变成了一个马尔可夫过程,其长期行为由给定策略和系统模型共同决定。那么,一个重要的问题是,什么样的策略能产生正则马尔可夫过程呢?一般来说,答案是探索性策略,如-贪婪策略。这是因为探索性策略在任何状态下采取任何行动都有一个正的概率。因此,当系统模型允许时,各状态之间能够相互连通。
- 图8.5给出了一个示例来说明平稳分布。此示例中的策略是的-贪婪策略。状态标记为、、、,它们分别对应网格中的左上角、右上角、左下角和右下角单元格。
我们比较两种计算平稳分布的方法。第一种方法是求解(8.10)式以得到的理论值。第二种方法是数值估计:我们从任意初始状态开始,按照给定策略生成一个足够长的序列(episode)。然后,可以通过序列中每个状态被访问的次数与序列总长度的比率来估计。序列越长,估计结果越准确。接下来我们比较理论结果和估计结果。- 的理论值:可以验证,由该策略所诱导的马尔可夫过程既是不可约的又是正则的。原因如下:首先,由于所有状态都是相通的,所以得到的马尔可夫过程是不可约的。其次,由于每个状态都能转移到其自身,所以得到的马尔可夫过程是正则的。从图8.5中可以看出:
的特征值可计算为。对应于特征值的单位长度(右)特征向量为。将这个向量进行缩放,使其所有元素之和等于后,我们得到的理论值如下:的第个元素对应于智能体在长期运行中访问的概率。- 的估计值:接下来,我们通过在模拟中执行足够多步的策略来验证上述的理论值。具体来说,我们选择作为起始状态,并按照该策略运行1000步。在此过程中每个状态被访问的比例如图8.5所示。可以看出,在数百步之后,这些比例收敛于的理论值。
8.2.2 优化算法
为了最小化(8.3)式中的目标函数,我们可以使用梯度下降算法:
其中
因此,梯度下降算法为:
其中,不失一般性,前面的系数可被合并到中。(8.11)式中的算法需要计算期望。根据随机梯度下降的思想,我们可以用随机梯度代替真实梯度。于是,(8.11)式变为:
其中是在时刻时(状态空间)的一个样本。
值得注意的是,(8.12)式是不可实现的,因为它需要真实的状态价值,而是未知的,必须进行估计。我们可以用一个近似值来代替以使该算法可实现。可以使用以下两种方法来做到这一点。
- 蒙特卡罗方法:假设我们有一个序列。令为从开始的折扣回报(discounted return)。那么,可被用作的一个近似值。(8.12)式中的算法变为:
这就是带函数近似的蒙特卡洛学习算法。
- 时间差分法:根据TD学习的思想,可被用作的一个近似值。(8.12)式中的算法变为:
这是带函数近似的时间差分(TD)学习算法。该算法在算法8.1中进行了总结。
理解(8.13)式中的TD算法对于学习本章中的其他算法非常重要。值得注意的是,(8.13)式只能学习给定策略的状态价值。在8.3.1节和8.3.2节中,它将被扩展为能够学习动作价值的算法。
8.2.3 函数近似器的选择
为了应用(8.13)式中的TD算法,我们需要选择合适的。有两种方法可以做到这一点。第一种是使用人工神经网络作为非线性函数近似器。神经网络的输入是状态,输出是,网络参数是。第二种是简单地使用线性函数:
其中是的特征向量。和的长度等于,通常远小于状态的数量。在线性情况下,梯度为:
将其代入(8.13)式得到
这就是带线性函数近似的时间差分(TD)学习算法。我们简称其为线性TD(TD - Linear)。
从理论上讲,线性情况比非线性情况更容易理解。然而,其近似能力是有限的。为复杂任务选择合适的特征向量也并非易事。相比之下,人工神经网络作为黑箱式的通用非线性近似器能够近似数值,使用起来更加友好。
尽管如此,研究线性情况仍然是有意义的。更好地理解线性情况有助于读者更好地掌握函数近似方法的思想。此外,对于解决本书所考虑的简单网格世界任务而言,线性情况已经足够了。更重要的是,从表格法可被视为一种特殊线性情况的意义上讲,线性情况仍然是很有效的。更多信息可在box 8.2中找到。
box 8.2:表格型TD学习是线性TD(TD - Linear)的一种特殊情况接下来我们将表明,第7章(7.1)式中的表格型TD算法是(8.14)式中的线性TD算法的一种特殊情况。考虑针对任意的如下特殊特征向量:其中是这样一个向量:其对应于的分量等于,而其他分量等于。在这种情况下:其中是中与相对应的元素。将上述等式代入(8.14)式可得:由于的定义,上述等式仅仅更新了这一项。受此启发,在等式两边乘以得到:这正是(7.1)式中的表格型TD算法。总之,通过选择特征向量,线性TD算法就变成了表格型TD算法。
8.2.4 示例
接下来我们给出一些示例,用于演示如何使用(8.14)式中的线性TD算法来估计给定策略的状态价值。同时,我们将演示如何选择特征向量。

网格世界(grid world)示例如图8.6所示。给定策略在一个状态下采取任何行动的概率为0.2。我们的目标是估计在此策略下的状态价值。总共有25个状态价值。真实的状态价值如图8.6(b)所示。真实的状态价值在图8.6(c)中被可视化为一个三维曲面。
接下来我们将表明,可以使用少于25个参数来近似这些状态价值。模拟设置如下:由给定策略生成500个回合(episode)。每个回合有500步,且从均匀分布随机选择的一个状态 - 动作对开始。此外,在每次模拟试验中,参数向量被随机初始化,即每个元素都从均值为0、标准差为1的标准正态分布中抽取。我们设定,,以及。
为了实现线性TD算法,我们首先需要选择特征向量。如下所示,有多种不同的方法来进行选择。
- 第一种类型的特征向量基于多项式。在网格世界示例中,一个状态对应于一个二维位置。设和分别表示的列索引和行索引。为避免数值问题,我们对和进行归一化处理,以使它们的值在区间内。为了简便(稍微滥用一下符号),归一化后的值仍用和表示。那么,最简单的特征向量为:
在这种情况下,我们有
当给定时,表示一个过原点的二维平面。由于状态价值的曲面可能不过原点,我们需要给这个二维平面引入一个偏差(bias)以更好地近似状态价值。为此,我们考虑如下的三维特征向量:
在这种情况下,近似的状态价值为:
当被给定后,对应一个可能不过原点的平面。值得注意的是,也可被定义为,其中元素的顺序无关紧要。
当我们使用(8.15)式中的特征向量时,估计结果如图8.7(a)所示。可以看出,估计出的状态价值形成一个二维平面。尽管随着使用更多的回合(episode),估计误差会收敛,但由于二维平面的近似能力有限,误差无法降至零。
为了提高近似能力,我们可以增加特征向量的维度。为此,考虑:
在这种情况下,,它对应一个二次三维曲面。我们可以进一步增加特征向量的维度:
当我们使用(8.16)式和(8.17)式中的特征向量时,估计结果如图8.7(b) - (c)所示。可以看出,特征向量越长,状态价值就能被越精确地近似。然而,在这三种情况中,估计误差都不能收敛到零,因为这些线性近似器的近似能力仍然有限。

- 除了多项式特征向量之外,还有许多其他类型的特征可用,例如Fourier basis和tile coding[3,第9章]。首先,将每个状态的和值归一化到区间。得到的特征向量为:
其中表示圆周率,即3.1415······,而不是策略。在这里,或者可被设置为中的任意整数,其中是用户指定的整数。因此,这一对数有种可能的取值。于是,的维度为。例如,在的情况下,特征向量为:
当我们使用、、的傅里叶特征时所得到的估计结果如图8.8所示。这三种情况下特征向量的维度分别为、、。可以看出,特征向量的维度越高,状态价值就能够被越精确地近似。

8.2.5理论分析
到目前为止,我们已经完成了带有函数近似的TD学习(时序差分学习)相关内容的阐述。这个内容始于(8.3)式中的目标函数。为了优化这个目标函数,我们引入了(8.12)式中的随机算法。后来,算法中未知的真实值函数被一个近似函数所取代,从而得到了(8.13)式中的TD算法。尽管这个阐述有助于理解值函数近似的基本思想,但它在数学上并不严谨。例如,(8.13)式中的算法实际上并没有最小化(8.3)式中的目标函数。
接下来,我们对(8.13)式中的TD算法进行理论分析,以揭示该算法为何有效以及它解决了哪些数学问题。由于一般的非线性近似器难以分析,这部分内容只考虑线性情况。由于这部分内容数学性较强,建议读者根据自己的兴趣有选择地阅读。
8.2.5.1 收敛性分析
为了研究(8.13)式的收敛性质,我们首先考虑如下确定性算法:
其中期望是关于随机变量、、计算的。假设的分布为平稳分布。(8.19)式中的算法是确定性的,因为在计算期望之后,随机变量、、都消失了。
我们为什么要考虑这个确定性算法呢?首先,这个确定性算法的收敛性分析起来更容易(尽管并非轻而易举)。其次,也是更重要的一点,这个确定性算法的收敛性意味着(8.13)式中的随机TD算法的收敛性。这是因为(8.13)式可被视为(8.19)式的随机梯度下降(SGD)实现。因此,我们只需要研究确定性算法的收敛性质。
虽然乍一看(8.19)式的表达式可能看起来很复杂,但它可以被大大简化。为此,定义:
其中是包含所有特征向量的矩阵,D是一个对角矩阵,其对角元素为平稳分布。这两个矩阵将会经常被用到。
引理8.1:(8.19)式中的期望可重写为
其中
在此,、是贝尔曼方程中的两项,而是具有适当维度的单位矩阵。
证明见Box 8.3。利用引理8.1中的表达式,式(8.19)中的确定性算法可重写为
这是一个简单的确定性过程。下面对其收敛性进行分析。
首先,的收敛值是多少?假设当时,收敛到一个常数,那么(8.22)式意味着,这表明,因此
关于这个收敛值有如下几点说明。
- A是可逆的吗?答案是肯定的。实际上,A不仅可逆而且是正定的。也就是说,对于任何具有适当维度的非零向量,。证明见Box 8.4。
- 的含义是什么?它实际上是使投影贝尔曼误差最小化的最优解。细节将在8.2.5节介绍。
- 表格法是一种特殊情况。一个有趣的结果是,当的维数等于且(其中与对应的元素为1)时,我们有
该等式表明,待学习的参数向量实际上就是真实的状态价值。这个结论与表格型TD算法是TD - 线性算法的一个特例这一事实相符,如Box 8.2所述。下面给出(8.23)式的证明。可以验证,在这种情况下,因此,并且。于是,。
其次,我们证明(8.22)式中的在时收敛于。由于(8.22)式是一个简单的确定性过程,所以可以用多种方法证明。我们给出如下两个证明。
- 证明1:将收敛误差定义为。我们只需证明收敛到零。为此,将代入(8.22)式可得:
于是有:
考虑所有都有这种简单情况。那么,我们有
当足够小时,我们有,因此当时。成立的原因是是正定的,因此对于任何,都有。
- 证明2:考虑。由于是的根,该任务实际上是一个求根问题。(8.22)式中的算法实际上是一种Robbins-Monro(RM)算法。虽然原始的RM算法是为随机过程设计的,但它也可应用于确定性情况。RM算法的收敛性有助于理解的收敛性。也就是说,当时,收敛到。
Box 8.3:引理8.1的证明 利用全期望定律,我们有在此,假定服从平稳分布。首先,考虑(8.24)式中的第一项。注意到其中。于是,(8.24)式中的第一项可重写为其中。其次,考虑(8.24)式中的第二项。由于(8.24)式中的第二项变为将(8.25)式和(8.26)式相结合得到其中且。
Box 8.4:证明是可逆且正定的。如果对于任何具有适当维度的非零向量,都有,那么矩阵就是正定的。如果是正定(或负定)的,则记为(或)。这里,和应与表示按元素比较的>和<区分开来。注意A可能不是对称的。尽管正定矩阵通常指的是对称矩阵,但非对称矩阵也可以是正定的。接下来我们证明,从而是可逆的。证明的思路是要表明显然,意味着,因为是列满秩的高矩阵(假设选取的特征向量是线性无关的)。注意由于是反对称矩阵,因此对于任何,都有,我们知道当且仅当时。为了证明,我们利用严格对角占优矩阵是正定矩阵这一事实[4]。首先,有其中。(8.29)式的证明如下。由于,我们有。此外,,其中最后一个等式成立是因为。总之,我们有由于的所有元素都是正数(见框8.1),我们有。其次,(8.29)式的按元素形式为其可进一步写为根据(8.28)式中的表达式可以验证,的对角元素为正,非对角元素为非正。因此,上述不等式可重写为上述不等式表明,中第个对角元素的绝对值大于同一行中非对角元素绝对值之和。因此,是严格对角占优的,证明完毕。
8.2.5.2 TD学习最小化投影贝尔曼误差。
虽然我们已经表明TD - 线性算法收敛于,但接下来我们要表明是使投影贝尔曼误差最小化的最优解。为此,我们回顾三个目标函数。
- 第一个目标函数是
它已在(8.3)式中被引入。根据期望的定义,可以用矩阵 - 向量形式重新表示为
其中是真实的状态价值向量,是近似的状态价值向量。这里,是一个加权范数:,其中在(8.20)式中给出。
这是我们在讨论函数逼近时能想到的最简单的目标函数。然而,它依赖于未知的真实状态。为了得到一个可实现的算法,我们必须考虑其他目标函数,如贝尔曼误差和投影贝尔曼误差[50 - 54]。
- 第二个目标函数是贝尔曼误差。特别地,由于满足贝尔曼方程,所以期望估计值也应尽可能最大程度地满足这个方程。因此,贝尔曼误差为
这里,是贝尔曼算子。特别地,对于任意向量,贝尔曼算子定义为
最小化贝尔曼误差是一个标准的最小二乘问题。这里省略该解决方案的细节。
- 第三,值得注意的是,由于逼近器的逼近能力有限,(8.30)式中的可能无法最小化为零。相比之下,一个可以最小化为零的目标函数是投影贝尔曼误差:
其中是正交投影矩阵,它在几何上把任何向量投影到所有近似值(函数)的空间上。
实际上,式(8.13)中的时序差分(TD)学习算法旨在最小化投影贝尔曼误差,而非或者。原因如下。为简单起见,考虑线性情况,即。这里的定义如式(8.20)所示。的值域空间是所有可能的线性近似的集合。于是,
是将任何向量几何投影到值域空间上的投影矩阵。由于在的值域空间内,我们总能找到一个值,使最小化为零。可以证明使最小化的解为。即
证明见Box 8.5 接下来我们证明是使最小化的最优解。由于,所以我们只需要研究下式的根:在线性情况下,将以及的表达式代入上述方程可得:由于具有满列秩,所以对于任意的,有。因此,(8.31)意味着:其中A,b在(8.21)中给出。因此,是使最小化的最优解。
由于 TD 算法旨在最小化而非,自然会问到估计值与真实状态价值有多接近。在线性情况下,使投影贝尔曼误差最小化的估计值是。它与真实状态价值的偏差满足:
这个不等式的证明在框 8.6 中给出。不等式(8.32)表明与之间的差异由的最小值从上方界定。然而,这个界限是宽松的,特别是当接近 1 时。因此它主要具有理论价值。
Box 8.6:(8.32)中误差界限的证明其中最后一个等式是由于以及。将代入(8.33)可得。以及的证明推迟到Box的末尾。认识到上述不等式可得到:其中最后一个等式是因为是与其在所有可能近似空间中的正交投影之间的误差。因此,它是与任何之间误差的最小值。接下来我们证明一些有用的事实,这些事实已经在上述证明中被使用过。矩阵加权范数的性质。根据定义,。诱导的矩阵范数是。对于具有适当维度的矩阵、,我们有。为了看到这一点,证明。这是有效的,因为,其中最后一个等式是有效的,因为范数中的矩阵是一个正交投影矩阵,并且任何正交投影矩阵的范数等于 。证明对于任何,有。首先重新整理上述方程可得。
最小二乘 TD
接下来我们介绍一种称为最小二乘 TD(Least-squares TD,LSTD)的算法[57]。与 TD 线性算法一样,LSTD 的目标是最小化投影贝尔曼误差。然而,它与 TD 线性算法相比有一些优势。
回想一下,最小化投影贝尔曼误差的最优参数是,其中且。实际上,从(8.27)可以看出,和也可以写成:
上述两个方程表明和是、、的期望。LSTD 的思想很简单:如果我们可以使用随机样本直接获得和的估计值,分别记为和,那么最优参数可以直接估计为。
特别地,假设是遵循给定策略得到的一条轨迹。令和分别是在时间t时对和的估计值。它们是通过对样本取平均来计算的:
那么,估计的参数是
读者可能会想,在(8.34)的右侧是否缺少一个系数。实际上,为了简单起见它被省略了,因为当它被省略时的值保持不变。由于在较小时可能不可逆,所以通常用一个小的常数矩阵对进行偏置,其中是单位矩阵,是一个小的正数。
LSTD 的优点是它比 TD 方法更有效地利用经验样本并且收敛得更快。这是因为该算法是基于最优解表达式的知识专门设计的。我们对一个问题理解得越好,就能设计出越好的算法。
LSTD 的缺点如下。首先,它只能估计状态价值。相比之下,TD 算法可以扩展以估计动作价值,如下一节所示。此外,虽然 TD 算法允许非线性逼近器,但 LSTD 不可以。这是因为该算法是专门基于的表达式设计的。其次,LSTD 的计算成本比 TD 高,因为 LSTD 在每个更新步骤中更新一个的矩阵,而 TD 更新一个m维向量。更重要的是,在每一步中,LSTD 需要计算的逆,其计算复杂度为。解决这个问题的常用方法是直接更新的逆而不是更新。特别地,可以递归地计算如下:
上述表达式将分解为两个矩阵的和。它的逆可以计算为[58]。
因此,我们可以直接存储和更新以避免计算矩阵的逆。这个递归算法不需要步长。然而,它需要设置的初始值。这种递归算法的初始值可以选择为,其中是一个正数。在[59]中可以找到关于递归最小二乘法的一个很好的教程。
8.3 基于函数逼近的动作价值 TD 学习
虽然第 8.2 节介绍了状态价值估计的问题,但本节介绍如何估计动作价值。将表格型 Sarsa 算法和表格型 Q-learning 算法扩展到值函数逼近的情况。读者将会看到这种扩展是很直接的。
8.3.1 带函数逼近的 Sarsa
通过用动作价值替换状态价值,可以很容易地从(8.13)得到带函数逼近的 Sarsa 算法。特别地,假设由逼近。用替换(8.13)中的,可得:
对(8.35)的分析与(8.13)类似,这里省略。当使用线性函数时,我们有:
其中是一个特征向量。在这种情况下,。
(8.35)中的值估计步骤可以与策略改进步骤结合起来学习最优策略。该过程总结在算法 8.2 中。应该注意的是,准确估计给定策略的动作价值需要(8.35)运行足够多次。然而,在切换到策略改进步骤之前,(8.35)仅执行一次。这与表格型 Sarsa 算法类似。此外,算法 8.2 中的实现旨在解决从预先指定的起始状态找到通往目标状态的良好路径的任务。因此,它不能为每个状态找到最优策略。但是,如果有足够的经验数据可用,实现过程可以很容易地调整为为每个状态找到最优策略。
一个说明性的例子如图 8.9 所示。在这个例子中,任务是找到一个从左上角状态开始时能引导智能体到达目标的良好策略。总奖励和每一集的长度都逐渐收敛到稳定值。在这个例子中,线性特征向量被选择为 5 阶傅里叶函数。傅里叶特征向量的表达式在(8.18)中给出。


8.3.2 带函数逼近的 Q-learning
表格型 Q-learning 也可以扩展到函数逼近的情况。更新规则为:
上述更新规则与(8.35)类似,除了(8.35)中的被替换。
与表格型情况类似,(8.36)可以以在线策略或离线策略的方式实现。在线策略版本在算法 8.3 中给出。一个用于演示在线策略版本的例子如图 8.10 所示。在这个例子中,任务是找到一个从左上角状态能引导智能体到达目标状态的良好策略。


可以看出,具有线性函数逼近的 Q-learning 可以成功地学习到一个最优策略。在这里,使用了五阶线性傅里叶基函数。离线策略版本将在 8.4 节我们介绍Deep Q-learning 时进行演示。
人们可能会在算法 8.2 和算法 8.3 中注意到,尽管值被表示为函数,但策略仍然被表示为一个表格。因此,它仍然假设状态和动作的数量是有限的。在第 9 章中,我们将看到策略可以被表示为函数,以便可以处理连续的状态和动作空间。
8.4 Deep Q-learning
我们可以将深度神经网络集成到 Q-learning中,从而得到一种称为Deep Q-learning或Deep Q-network(DQN)的方法[22,60,61]。Deep Q-learning是最早且最成功的深度强化学习算法之一。值得注意的是,神经网络不一定非得是深度的。对于像我们的网格世界示例这样的简单任务,具有一两个隐藏层的浅层网络可能就足够了。
Deep Q-learning可以被看作是(8.36)中算法的扩展。然而,它的数学公式和实现技术有很大的不同,值得特别关注。
8.4.1 算法描述
从数学角度来说,Deep Q-learning旨在最小化以下目标函数:
其中分别是表示一个状态、一个动作、即时奖励和下一个状态的随机变量。这个目标函数可以被看作是平方贝尔曼最优性误差。这是因为:
是贝尔曼最优方程(证明在框 7.5 中给出)。因此,当能够准确地逼近最优动作价值时,在期望意义下应该等于零。
为了最小化(8.37)中的目标函数,我们可以使用梯度下降算法。为此,我们需要计算关于的梯度。需要注意的是,参数不仅出现在中,还出现在中。因此,计算梯度并非易事。为了简单起见,假设中的的值在短时间内是固定的,这样计算梯度就变得容易得多。特别地,我们引入两个网络:一个是表示的主网络,另一个是目标网络。在这种情况下,目标函数变为:
其中是目标网络的参数。当固定时,的梯度为:
为了使用(8.38)中的梯度来最小化目标函数,我们需要注意以下技术。
其中一些常数系数在不影响一般性的情况下被省略了。
- 第一种技术是使用两个网络,即主网络和目标网络,正如我们在计算(8.38)中的梯度时所提到的。下面解释其实现细节。令和分别表示主网络和目标网络的参数。它们最初被设置为相同的值。
在每次迭代中,我们从回放缓冲区(稍后将解释回放缓冲区)中抽取一个小批量的样本。主网络的输入是和。输出是估计的值。输出的目标值是。主网络被更新以最小化样本上的 TD 误差(也称为损失函数)。
在主网络中更新并不显式地使用(8.38)中的梯度。相反,它依赖于现有的用于训练神经网络的软件工具。因此,我们需要一个小批量的样本来训练网络,而不是基于(8.38)使用单个样本来更新主网络。这是深度和非深度强化学习算法之间的一个显著区别。
主网络在每次迭代中都被更新。相比之下,目标网络每隔一定数量的迭代被设置为与主网络相同,以满足在计算(8.38)中的梯度时是固定的这一假设。
- 第二种技术是经验回放[22,60,62]。也就是说,在我们收集了一些经验样本后,将它们存储在一个称为回放缓冲区的数据集中。每次我们更新主网络时,我们可以从回放缓冲区中抽取一个小批量的经验样本。样本的抽取,或称为经验回放,应该遵循均匀分布。
为什么在Deep Q-learning中经验回放是必要的,以及为什么回放必须遵循均匀分布呢?
答案在于(8.37)中的目标函数。具体来说,为了很好地定义目标函数,我们必须指定、、、的概率分布。一旦给定,和的分布就由系统模型确定。描述状态-动作对分布的最简单方法是假设它是均匀分布的。
Deep Q-learning的实现过程总结在算法 8.3 中。这个实现是离线策略的。如果需要,它也可以被调整为在线策略。
8.4.2 说明性示例

图 8.11 给出了一个示例来演示算法 8.3。这个示例旨在为每个状态-动作对学习最优动作价值。一旦获得最优动作价值,就可以立即得到最优贪心策略。
如图 8.11(a)所示的行为策略生成一个单独的情节。这个行为策略具有探索性,因为在任何状态下采取任何动作的概率都相同。如图 8.11(b)所示,这个情节只有 1000 步。尽管只有 1000 步,但由于行为策略具有很强的探索能力,在这个情节中几乎所有的状态-动作对都被访问到了。回放缓冲区是一组 1000 个经验样本。小批量大小为 100,这意味着每次获取样本时,我们从回放缓冲区中均匀抽取 100 个样本。
主网络和目标网络具有相同的结构:一个具有 100 个神经元的隐藏层的神经网络(层数和神经元的数量可以调整)。该神经网络有三个输入和一个输出。前两个输入是状态的归一化行索引和列索引。第三个输入是归一化动作索引。这里,“归一化”意味着将一个值转换到[0,1]区间。网络的输出是估计值。我们将输入设计为状态的行和列而不是状态索引的原因是我们知道一个状态对应于网格中的一个二维位置。在设计网络时我们使用的关于状态的信息越多,网络的性能就越好。此外,神经网络也可以用其他方式设计。例如,它可以有两个输入和五个输出,其中两个输入是状态的归一化行和列,输出是针对输入状态的五个估计动作价值[22]。
如图 8.11(d)所示,损失函数定义为每个小批量的平均平方 TD 误差,它收敛到零,这意味着网络可以很好地拟合训练样本。如图 8.11(e)所示,状态价值估计误差也收敛到零,表明最优动作价值的估计变得足够准确。然后,相应的贪心策略是最优的。
这个例子展示了Deep Q-learning的高效性。特别是,在这里一个 1000 步的短情节就足以获得一个最优策略。相比之下,如图 7.4 所示,表格型 Q-learning需要一个 100000 步的情节。高效的一个原因是函数逼近方法具有很强的泛化能力。另一个原因是经验样本可以被重复使用。

接下来,我们通过考虑一个经验样本更少的场景来故意挑战Deep Q-learning算法。图 8.12 展示了一个仅有 100 步的情节的例子。在这个例子中,尽管从损失函数收敛到零的意义上来说网络仍然可以被很好地训练,但状态估计误差不能收敛到零。这意味着网络可以适当地拟合给定的经验样本,但经验样本太少,无法准确估计最优动作价值。
8.5 高级技巧
经验回放
把智能体的划分成这样的四元组,存入一个数组。需要人为指定数组的大小(记作)。数组中只保留最近条数据;当数组存满之后,删除掉最旧的数据。数组的大小是个需要调的超参数,会影响训练的结果。通常设置为。
在实践中,要等回放数组中有足够多的四元组时,才开始做经验回放更新DQN。根据论文〔48〕 的实验分析,如果将DQN用于Atari游戏,最好是在收集到20万条四元组时才开始做经验回放更新DQN;如果是用更好的RainbowDQN,收集到8万条四元组时就可以开始更新DQN。在回放数组中的四元组数量不够的时候,DQN只与环境交互,而不去更新DQN参数,否则实验效果不好。
经验回放的优点
- 打破序列的相关性:训练DQN的时候,每次我们用一个四元组对DQN的参数做一次更新,我们希望相邻两次使用的四元组是独立的。然而当智能体收集经验的时候,相邻两个四元组 和 有很强的相关性。依次使用这些强关联的四元组训练DQN,效果往往会很差。经验回放每次从数组里随机抽取一个四元组,用来对DQN参数做一次更新。这样随机抽到的四元组都是独立的,消除了相关性。
- 重复利用收集到的经验:这样可以用更少的样本数量达到同样的表现。

经验回放的局限性
在收集经验同时,我们也在不断地改进策略。策略的变化导致收集经验时用的行为策略是过时的策略,不同于当前我们想要更新的策略——即目标策略(targetpolicy)。经验回放适用于off-policy。
优先经验回放
优先经验回放(prioritizedexperience replay)是一种特殊的经验回放方法,它比普通的经验回放效果更好:既能让收敛更快,也能让收敛时的平均回报更高。经验回放数组里有个四元组,普通经验回放每次均匀抽样得到一个样本——即四元组,用它来更新DQN的参数。优先经验回放给每个四元组一个权重,然后根据权重做非均匀随机抽样。
抽样权重
如果DQN对的价值判断不准确,即离较远,则四元组应当有较高的权重。
如果TD误差的绝对值大,说明DQN对的真实价值的评估不准确,那么应该给设置较高的权重。
学习率调整
优先经验回放做非均匀抽样,四元组被抽到的概率是。抽样是非均匀的,不同的样本有不同的抽样概率,这样会导致DQN的预测有偏差。应该相应调整学习率,抵消掉不同抽样概率造成的偏差。
此处的是学习率,是损失函数关于的梯度,是经验回放数组中样本的总数,是样本的抽样概率,是个需要调的超参数。
如果样本很重要,它被抽到的概率 很大,可是它的学习率却很小。当时,如果抽样概率变大10倍,则学习率减小10倍。抽样概率、学习率两者岂不是抵消了吗,那么优先经验回放有什么意义呢?
- 设置学习率为,使用样本计算一次梯度,更新一次参数;
- 设置学习率为,使用样本计算十次梯度,更新十次参数。
乍看起来两种方式区别不大,但其实第二种方式是对样本更有效的利用。第二种方式的缺点在于计算量大了十倍,所以第二种方式只被用于重要的样本。
高估问题
Q学习算法有一个缺陷:用Q学习训练出的DQN会高估真实的价值,而且高估通常是非均匀的。这个缺陷导致 DQN的表现很差。高估问题并不是 DON模型的缺陷,而是Q学习算法的缺陷。Q学习产生高估的原因有两个:第,自举导致偏差的传播;第最大化导致TD目标高估真实价值。
为了缓解高估,需要从导致高估的两个原因下手,改进Q学习算法。双Q学习算法是一种有效的改进,可以大幅缓解高估及其危害
自举导致偏差的传播
在强化学习中,自举意思是“用一个估算去更新同类的估算”。下面回顾Q-Learning中的自举问题:
让去拟合。这就意味着我们用了DQN自己做出的估计去更新DQN自己,这属于自举。
自举导致偏差的传播
如果是对真实价值的低估(或高估),就会导致低估(或高估)价值)。也就是说低估(或高估)从传播到,让更多的价值被低信(或高估)。
最大化导致高估
假设对于所有的动作和状态,DQN的输出是真实价值加上均值为零的随机噪声:
显然是对真实价值的无偏估计()。然而有这个不等式:
复习一下,TD目标是这样算出来的:
这说明TD目标通常是对真实价值的高估。
高估的危害
如果高估是均匀的,则高估没有危害;如果高估非均匀,就会有危害。举个例子,动作空间是。给定当前状态,每个动作有一个真实价值如下:
假如高估是均匀的,所有的价值都被高估了100,那么动作“上”仍然有最大的价值,智能体会选择“上”。这说明如果高估是均匀的,则高估没有危害。
但实践中,高估是非均匀的。每当取出一个四元组用来更新一次DQN,就很有可能加重 DQN对的高估。对于同一个状态,三种组合、、出现在经验回放数组中的频率是不同的,所以三种动作被高估的程度是不同的。比如
综上所述,用Q学习算法训练DQN总会导致DQN高估真实价值 高估本身不是问题,真正的麻烦在于DQN的高估往往是非均匀的。如果DQN有非均匀的高估,那么用DQN做出的决策是不可靠的。
高估问题解决方法
目标网络
上文已经讨论过,切断“自举”可以避免偏差的传播,从而缓解 DQN 的高估。所以我们使用另一个神经网络计算TD目标,切断自举。这个神经网络被称作目标网络。
它的神经网络结构与DQN完全相同,但是参数不同于。
算法流程
- 对DQN做正向传播,得到:
- 对目标网络做正向传播,得到
- 计算TD目标和TD误差:
- 对DQN做反向传播,得到梯度。
- 做梯度下降更新DQN的参数:
- 设是需要手动调的超参数。做加权平均更新目标网络的参数:
双Q学习算法
造成DQN高估的原因不是DQN模型本身的缺陷,而是学习算法有不足之处:第一,自举造成偏差的传播;第二,最大化造成 TD目标的高估。在Q学习算法中使用目标网络,可以缓解自举造成的偏差,但是无助于缓解最大化造成的高估。本小节介绍双Q学习(double Q learning)算法,它在目标网络的基础上做改进,缓解最大化造成的高估。
为什么双Q学习缓解最大化造成的高估
为了解释原始的Q学习、用目标网络的Q学习、以及双Q学习三者的区别,我们再回顾一下TD目标:
ㅤ | 选择(选择最大值) | 估计(目标值) | 主网络 | 损失函数 |
Q学习 | ||||
目标网络 | ||||
双Q学习 | ||||
截断双Q学习 |
为什么双Q学习可以缓解最大化造成的高估呢?不难证明出这个不等式:
这个公式说明双Q学习得到的TD目标更小。也就是说,与用目标网络的Q学习相比,双Q学习缓解了高估。
算法流程双Q学习算法的流程如下。每次随机从经验回放数组中取出一个四元组,记作。设DQN和目标网络当前的参数分别为和,执行下面的步骤对参数做一次更新:
- 对DQN做正向传播,得到:
- 选择:
- 求值:
- 计算TD目标和TD误差:
- 对DQN做反向传播,得到梯度。
- 做梯度下降更新DQN的参数:
- 设是需要手动调整的超参数。做加权平均更新目标网络的参数:
对决网络(DuelingNetwork)
本节介绍对决网络(duelingnetwork),它是对DQN的神经网络结构的改进。它的基本想法是将最优动作价值分解成最优状态价值加最优优势。对决网络的训练与DQN完全相同,可以用Q学习算法或者双Q学习算法。
最优优势函数
- 动作价值函数是回报的期望:
- 最优动作价值的定义是:
- 状态价值函数是关于的期望:
- 最优状态价值函数的定义是
- 最优优势函数(optimaladvantage function) 的定义是:
定理6.1
对决网络
对决网络由两个神经网络组成。一个神经网络记作,它是对最优优势函数的近似。另一个神经网络记作,它是对最优状态价值函数的近似。把定理6.1中的和替换成相应的神经网络,那么最优动作价值函数就被近似成下面的神经网络:
注意与A2C模型的区别
对抗网络输出结果是动作价值函数;A2C模型输出结果是优势函数。

解决不唯一性
读者可能会有下面的疑问。对决网络是由定理6.1推导出的,而定理中最右的一项恒等于零,那么可以把最优动作价值写成两种等价形式:
之前我们根据第二种形式实现对决网络。我们可否根据第一种形式,实现对决网络呢?
答案是不可以这样实现对决网络,因为这样会导致不唯一性。假如这样实现对决网络,那么V 和D可以随意上下波动,比如一个增大100,另一个减小100:
这样的上下波动不影响最终的输出:
这就意味着 和 的参数可以很随意地变化,却不会影响输出的。因此很有必要在对决网络中加入这一项。它使得 和 不能随意上下波动。假如让 变大100,让 变小100,则对决网络的输出会增大100,而非不变:
8.5 总结
本章继续介绍时差学习算法。然而,它从表格法转向了函数逼近法。理解函数逼近法的关键是要知道它是一个优化问题。最简单的目标函数是真实状态价值与估计值之间的平方误差。也有其他目标函数,如贝尔曼误差和投影贝尔曼误差。我们已经表明,TD-Linear 算法实际上最小化了投影贝尔曼误差。介绍了几种优化算法,如带值逼近的 Sarsa 和 Q-learning。
值函数逼近方法之所以重要的一个原因是它允许将人工神经网络与强化学习相结合。例如,Deep Q-learning是最成功的深度强化学习算法之一。尽管神经网络已被广泛用作非线性函数逼近器,但本章全面介绍了线性函数的情况。充分理解线性情况对于更好地理解非线性情况很重要。感兴趣的读者可以参考[63]以全面分析带函数逼近的时差学习算法。关于Deep Q-learning的更理论性的讨论可以在[61]中找到。
本章引入了一个名为平稳分布的重要概念。平稳分布在值函数逼近方法中定义合适的目标函数时起着重要作用。在第 9 章我们使用函数来逼近策略时,它也起着关键作用。关于这个主题的精彩介绍可以在[49,第四章]中找到。本章的内容在很大程度上依赖于矩阵分析。一些结果在没有解释的情况下被使用。关于矩阵分析和线性代数的优秀参考文献可以在[4,48]中找到。
8.6 问答
- 问题:表格法和函数逼近法有什么区别? 回答:一个重要的区别在于值是如何更新和检索的。 如何检索一个值:当值由一个表格表示时,如果我们想要检索一个值,可以直接读取表格中的相应条目。然而,当值由一个函数表示时,我们需要将状态索引输入到函数中并计算函数值。如果这个函数是一个人工神经网络,就需要一个从输入到输出的前向传播过程。 如何更新一个值:当值由一个表格表示时,如果我们想要更新一个值,可以直接重写表格中的相应条目。然而,当值由一个函数表示时,我们必须更新函数参数以间接改变值。
- 问题:函数逼近法相对于表格法有什么优势? 回答:由于状态价值的检索方式,函数逼近法在存储方面更高效。特别是,表格法需要存储个值,而函数逼近法只需要存储一个维度通常远小于的参数向量。 由于状态价值的更新方式,函数逼近法还有另一个优点:它的泛化能力比表格法更强。原因如下。在表格法中,更新一个状态价值不会改变其他状态价值。然而,在函数逼近法中,更新函数参数会影响许多状态的值。因此,一个状态的经验样本可以泛化以帮助估计其他状态的值。
- 问题:我们能统一表格法和函数逼近法吗? 回答:可以。表格法可以看作是函数逼近法的一种特殊情况。相关细节可以在Box 8.2 中找到
- 问题:什么是平稳分布?为什么它很重要? 回答:平稳分布描述了马尔可夫决策过程的长期行为。更具体地说,在智能体执行给定策略足够长的时间后,智能体访问一个状态的概率可以由这个平稳分布来描述。更多信息可以在Box 8.1 中找到。 这个概念在本章中出现的原因是它对于定义一个有效的目标函数是必要的。特别是,目标函数涉及状态的概率分布,通常选择平稳分布。平稳分布不仅对值逼近方法很重要,对将在第 9 章介绍的策略梯度方法也很重要。
- 问题:线性函数逼近法有哪些优点和缺点? 回答:线性函数逼近是最简单的情况,其理论性质可以被彻底分析。然而,这种方法的逼近能力是有限的。对于复杂任务,选择合适的特征向量也并非易事。相比之下,人工神经网络可以作为黑箱通用非线性逼近器来逼近值,使用起来更方便。不过,研究线性情况仍然有意义,以便更好地掌握函数逼近法的思想。此外,从表格法可以被看作是一种特殊的线性情况(Box 8.2)这个意义上来说,线性情况是很强大的。
- 问题:为什么Deep Q-learning需要经验回放? 回答:原因在于(8.37)中的目标函数。具体来说,为了很好地定义目标函数,我们必须指定、、、的概率分布。一旦给定,和的分布就由系统模型确定。描述状态-动作对分布的最简单方法是假设它是均匀分布的。然而,在实际中,状态-动作样本可能不是均匀分布的,因为它们是由行为策略作为一个序列生成的。有必要打破序列中样本之间的相关性,以满足均匀分布的假设。为此,我们可以使用经验回放技术,从回放缓冲区中均匀抽取样本。经验回放的一个好处是每个经验样本可以被多次使用,这可以提高数据效率。
- 问题:表格型 Q-learning能使用经验回放吗? 回答:虽然表格型 Q-learning不需要经验回放,但它也可以使用经验回放而不会遇到问题。这是因为 Q-learning由于其离线策略的属性,对样本如何获得没有要求。使用经验回放的一个好处是样本可以被重复使用,因此更有效率。
- 问题:为什么Deep Q-learning需要两个网络? 回答:根本原因是为了简化(8.37)的梯度计算。具体来说,参数w不仅出现在中,还出现在中。因此,计算关于的梯度并非易事。一方面,如果我们在中固定,如(8.38)所示,梯度可以很容易地计算出来。这个梯度表明应该维护两个网络。主网络的参数在每次迭代中更新。目标网络的参数在一定时期内是固定的。另一方面,目标网络的参数不能永远固定。它应该每隔一定数量的迭代进行更新。
- 问题:当人工神经网络被用作非线性函数逼近器时,我们应该如何更新它的参数? 回答:必须注意的是,我们不应该例如通过(8.36)直接更新参数向量。相反,我们应该遵循网络训练过程来更新参数。这个过程可以基于目前成熟且广泛可用的神经网络训练工具包来实现。