Google DeepMind在机器人强化学习中使用Vision Transformer,以图像作为状态输入,这无法用传统的表格方法表示。本章将解决此类问题。

       我们继续探讨时间差分学习算法,但采用不同的状态/动作值表示方式。此前我们使用表格法,其虽直观却不适用于大规模状态/动作空间。为此,本章引入值函数逼近方法,这已成为标准解决方案,也为神经网络作为函数逼近器进入强化学习奠定了基础。值函数的概念还可扩展至策略函数,详见第9章。

目录:

  1.     值函数表示
  2.     值函数优化的目标函数
  3.     值函数优化算法
  4.     函数近似器的选择
  5.     值函数近似例子
  6.      理论分析

一  值函数表示: From table to function

     1.1  表格型方法的局限

            早期强化学习主要采用表格型方法来表示值函数。在离散且有限的状态与动作空间中,该方法为每一个状态(或状态-动作对)分配独立的存储单元,以表格形式(如 Q 表)精确记录其对应的价值估计。智能体通过查表获取价值并做出决策。

然而,表格型方法存在显著局限:

  1. 维数灾难:随着状态或动作空间规模增大,表格维度呈指数级增长,导致存储开销剧增,内存消耗不可承受。

  2. 计算低效:大规模表格的更新与查询计算复杂度高,学习速度缓慢。

  3. 泛化缺失:表格中每个单元的值独立估计和更新,无法将已学知识推广到未访问过的相似状态,造成数据利用率极低。

  4. 无法处理连续空间:对于连续状态或高维离散空间(例如围棋,其状态空间规模约为 10^{17},几乎无法为每个可能的状态分配表项,因此表格法在计算上完全不可行。

1.2 函数逼近方法

      为克服上述局限,函数逼近被引入值函数表示中。其核心思想是使用一个参数化的函数 \hat{v}(s;w) 或 \hat q(s,a;w)来近似真实的值函数 v_{\pi}(s)或 q_{\pi}(s,a),其中 w 为可学习的参数向量。

该函数可以是:

  • 线性逼近器:基于状态的特征向量进行线性组合,简单高效。

  • 非线性逼近器:如深度神经网络,凭借其强大的非线性表征能力,能够拟合极其复杂的高维值函数,已成为解决像围棋、机器人控制等复杂问题的主流方法。

     通常有如下几种

函数逼近的优势在于

  • 存储经济:只需存储参数 w,而非整个价值表,极大节约内存。

  • 计算高效:通过梯度下降等优化方法批量更新参数,学习效率高。

  • 具备泛化能力:函数逼近器能够根据输入状态的特征自动产生输出,对未被访问过的状态也能给出合理的价值估计,从而显著加速学习进程,提升智能体在复杂环境中的适应性与决策能

  • 力。


二  值函数优化的目标函数

     令 v_{\pi}(s)\hat{v}(s,w)分别表示状态s \in S的真实状态值和近似状态值。
     待解决的问题: 是找到一个最优参数 w,使得 \hat{v}(s,w)能够最佳地逼近每个状态 s的v_{\pi}(s) 。具体而言,目标函数为:

      

     

     其中期望是关于随机变量s \in S计算的。既然 S 是一个随机变量,它的概率分布是什么?这个问题对于理解该目标函数至关重要。定义 S的概率分布有以下几种方式:

第一种方式   均匀分布(uniform distribution)   

将每个状态的概率设为 1/n,将所有状态视为同等重要。在这种情况下,式 (8.3) 中的目标函数变为:

这是所有状态近似误差的平均值。然而,这种方式没有考虑给定策略下马尔可夫过程的实际动态特性。由于某些状态可能很少被策略访问,将所有状态视为同等重要可能并不合理。

第二种方式  平稳分布(stationary distribution)

     平稳分布描述了马尔可夫决策过程的长期行为。更具体地说,在智能体执行给定策略足够长的时间后,智能体处于任何状态的概率可以用该平稳分布来描述

\begin{Bmatrix} d_{\pi}(s) \end{Bmatrix}s\in S表示策略 π下马尔可夫过程的平稳分布。即智能体在长时间后访问状态 s 的概率为 d_{\pi}(s)。根据定义,\sum_{s\in S} d_{\pi}(s)=1。那么,式 (8.3) 中的目标函数可以重写为:

这是一个加权平均的近似误差。被访问概率较高的状态被赋予更大的权重。

值得注意的是,dπ(s) 的值不易直接获得,因为它需要知道状态转移概率矩阵 Pπ

幸运的是,如下一节所示,我们无需计算 dπ(s) 的具体值来最小化该目标函数。此外,在介绍式 (8.4) 和 (8.5) 时,我们假设状态数量是有限的。当状态空间连续时,我们可以将求和替换为积分。


三 值函数优化算法

    为了求解,目标函数J(w)的最小值 ,我们通过gradient descent algorithm 求解

      

其中

   

     因此 gradient descent algorithm 为

其中,系数 2 置于 \alpha_k 前时,为不失一般性可将其并入 \alpha_k 中。(8.11)中的算法需要计算期望值。本着随机梯度下降法的思路,我们可以用随机梯度替代真实梯度。于是,(8.11)式变为w_{t+1}

其中s_t为随机变量S t时刻的采样值得注意的是,(8.12)式无法实际执行,因为它需要真实的状态值 v_{\pi},而该值未知且必须进行估计。我们可以用一个近似值来替代 v_{\pi}(s_t),以使算法能够实际执行。可采用以下两种方法来实现这一点。

方法一  蒙特卡罗方法

  •     假设我们有一个片段(序列)(s_0,r_1,s_1,r_2,s_2,...)。设 g_t​ 为从状态 s_t​ 开始的折扣回报。那么,g_t​ 可作为 v_{\pi}(s_t)的近似值。于是,(8.12)中的算法变为:​​​​​​​

  • 这就是采用函数近似法的蒙特卡罗学习算法。

 方法二  时间差分方法   

       本着时间差分(TD)学习的思路,r_{t+1}+\gamma \hat{v}(s_{t+1},w_t)可作为 v_{\pi}(s_t)的近似值。于是,(8.12)中的算法变为:

                

\hat{v}:  当前策略即神经网络预测的值

   这就是采用函数近似法的时间差分学习算法。该算法总结在算法8.1中。也可用Q-learning方式更新。 


    四   函数近似器的选择

         要应用(8.13)中的时序差分(TD)算法,我们需要选择合适的\hat{v}(s,w)。有两种方法可以实现这一点。第一种方法是使用人工神经网络作为非线性函数近似器。神经网络的输入是状态,输出是 \hat{v}(s,w),网络参数为 w。第二种方法是简单使用线性函数:

前面的TD 或者 SARSA,更新公式是一样的,少了一个梯度

其中,ϕ(s)∈Rm 是状态 s 的特征向量。ϕ(s) 和 w 的长度均为 m,通常 m 远小于状态的数量。在线性情况下,梯度为:
 


将其代入(8.13)式可得:


这就是线性函数近似的时序差分学习算法。我们将其简称为TD-线性算法。
从理论上讲,线性情况比非线性情况更容易理解。然而,其近似能力有限。对于复杂任务,选择合适的特征向量也并非易事。相比之下,人工神经网络作为黑箱通用非线性近似器,能够近似值函数,使用起来更为便捷。
     尽管如此,研究线性情况仍然颇具意义。更好地理解线性情况有助于读者更好地掌握函数近似方法的思想。此外,对于本书所考虑的简单网格世界任务,线性情况已足够应对。更重要的是,从某种意义上说,线性情况仍然具有强大的能力,因为表格型方法可被视为一种特殊的线性情况

比如


五  值函数近似例子

      网格世界的示例如图 8.6 所示。给定策略在每个状态下,以 0.25 的均匀概率选择四个可能方向中的任意动作。我们的目标是估计在该随机策略下的状态价值函数,该网格世界共有 25 个状态。真实的状态价值如图 8.6(b) 所示,并在图 8.6(c) 中以三维曲面的形式可视化。

    接下来,我们将展示如何使用少于 25 个参数来近似表示这 25 个状态价值。仿真实验设置如下:

   使用给定策略生成 500 条采样轨迹,每条轨迹包含 500 个时间步,每条轨迹的初始状态-动作对从所有可能组合中均匀随机选择。此外,在每次仿真试验中,参数向量 w 进行随机初始化,其每个元素均从均值为 0、标准差为 1 的标准正态分布中独立抽取。我们设 rforbidden=rboundary=−1, rtarget=1,以及折扣因子 γ=0.9。

要实现基于线性函数近似的 TD 算法,首先需要为每个状态设计特征向量 ϕ(s)。特征向量的构造有多种方式,如下所述。

第一种类型的特征向量基于多项式基。

    在网格世界示例中,一个状态 s 对应一个二维坐标位置。令 x 和 y 分别表示状态 s的列索引和行索引。为避免数值问题,我们将 x 和 y 归一化到 [−1,+1]区间内。在不引起歧义的情况下,归一化后的值仍用 x 和 y表示。那么,最简单的特征向量为:

当权重向量 w 给定时,状态价值估计值

                                                  

表示一个穿过原点的二维平面。由于真实状态价值曲面可能不经过原点,我们需要为该平面引入一个截距(偏置)项以提升近似能力。为此,考虑以下三维特征向量:

此时,近似状态价值为

。该表达式对应一个不一定穿过原点的平面。值得注意的是ϕ(s) 也可以定义为 [x,y,1]T,元素顺序对算法没有影响

使用式 (8.15) 中特征向量的估计结果如图 8.7(a) 所示。可以看出,估计出的状态价值构成一个二维平面。尽管随着使用更多轨迹进行学习,估计误差会逐渐收敛,但由于二维平面的表示能力有限,最终误差无法降至零。

  为了提升函数近似的表达能力,我们可以增加特征向量的维度。例如,考虑以下六维特征向量:

此时,

这是一个二次曲面。我们还可以进一步增加维度:

使用式 (8.16) 和式 (8.17) 的特征向量得到的估计结果分别如图 8.7(b) 和 (c) 所示。可以看出,特征向量维度越高,对状态价值的近似就越准确。然而,在上述所有情况下,由于线性函数近似器固有的表达能力限制,估计误差均无法收敛到零。


六  理论分析

   

至此,我们已完成对基于函数近似的时序差分(TD)学习方法的阐述。

价值函数近似的基本思想:

第一步:  确定优化的目标函数

 第二步:梯度下降求解公式8.3

    问题:的真实价值函数v_{\pi(s_t)} 未知

第三步: RM 算法求解(随机采样).从而导出了公式(8.13)中的TD算法。

但它在数学上并不完全严谨。实际上算法优化的目标并不是8.3而是另外的公式

目标函数一:均方值误差

    这是最直接的目标,旨在最小化近似值 \hat{v}(s,w)真实值v_{\pi}(s)之间的差距。

    局限在于,真实值 vπ(s)通常是未知的,因此该目标在实践中难以直接优化。

目标函数二:均方贝尔曼误差

         由于真实值未知,我们转而利用贝尔曼方程作为自洽约束。贝尔曼误差衡量的是近似值在单步时序差分上的不一致性。

最小化 BE 试图让近似值函数满足贝尔曼方程。

问题:

   然而,在函数逼近下,\hat{v}(w)  跟 T{\pi}(\hat{v}(w)) 因为函数设计的问题可能永远无法相等,

导致不稳定

目标函数三:均方投影贝尔曼误差

           为了解决 BE 的不稳定性,投影贝尔曼误差 被提出。其思想是:先计算贝尔曼算子作用后的值 然后将这个结果投影回我们函数逼近器所能表示的空间中,再计算误差。

   M 是投影矩阵

关键优势

      最小化 PBE 是许多稳定算法(如线性情况下的 TD(0))的隐含优化目标,它确保了在函数逼近空间内的最优解,从而带来可靠的学习过程。


参考:

https://www.bilibili.com/video/BV1sd4y167NS?spm_id_from=333.788.videopod.episodes&p=44

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐