高斯过程动态规划(GPDP)
1. 引言
强化学习(RL)基于经验驱动、目标导向的学习原理。与由外部监督者提供标签的监督学习不同,RL 算法必须能够通过与周围环境的交互收集的经验进行学习。RL 的目标是找到一种策略,以优化长期性能指标,例如累积奖励或成本。RL 与最优控制领域相似,尽管这两个领域传统上是分开的。与最优控制不同,RL 不一定假设对问题有特定的先验知识或对世界有复杂的理解。然而,如果我们将 RL 算法称为“控制器”,并将动作等同于“控制信号”,那么在周围世界完全已知的情况下,RL 与最优控制之间就存在一一对应关系。
RL 的设置要求自动从收集到的数据中提取信息并学习结构。当数据集非常复杂或规模过大,难以手动找到潜在结构时,学习尤为重要。学习到的结构以统计模型的形式捕捉数据的潜在特征,从而简洁地表示数据。贝叶斯数据分析旨在通过使用基于观测数据的概率模型来推断我们希望了解的量。贝叶斯方法的核心特征是明确使用概率理论来量化基于统计数据的推理中的不确定性。
如果没有不确定性的概念,RL 算法将过于自信,并声称拥有其实际并未掌握的精确知识。在 RL 的早期阶段,当数据集仍然非常稀疏时,表示和结合不确定性尤为重要。基于过度自信模型的算法可能由于模型偏差而无法获得良好的结果,正如 Atkeson 和 Santamaría [2] 以及 Atkeson 和 Schaal [3] 所报道的那样。因此,量化当前知识尤为重要。然而,贝叶斯方法的一个主要缺点是计算成本高昂,且后验分布通常无法进行解析处理。
动态规划(DP)是一种解决不确定序优化问题的通用且高效的方法。由于 Bellman [4]、Howard [19]、Kalman [22] 等人的工作,DP 成为了解决最优控制问题的标准方法。然而,对于非线性最优控制或 RL 问题,在连续值状态和动作空间中求解通常具有挑战性,通常需要近似技术。
在连续值状态和动作领域,离散化通常用于近似,如果所需计算不再具有解析可处理性。然而,离散化空间中的单元格数量不仅依赖于维度和问题的难度,还依赖于采样频率。采样率越高,所需的单元格数量就越大。因此,即使对于低维问题,在离散化空间中求解也可能变得不可行。函数逼近器解决了离散化问题,并推广到连续值领域,如 Bertsekas 和 Tsitsiklis [7] 或 Sutton 和 Barto [53] 所描述的那样。其基本思想是在函数空间中建模 DP 值函数,而不是将该函数表示为离散输入位置处的值表。参数化函数逼近器(如多项式或径向基函数网络)通常用于此目的,但它们只能在其对应的模型类中建模未知函数。参数化函数逼近器的一个根本问题是模型类在观察任何数据之前就已经固定。通常,在观察数据之前很难知道哪种函数类是合适的。一般来说,如果限制在错误的函数类中,可能会导致 RL 算法发散,正如 Gordon [18] 和 Ormoneit 以及 Sen [38] 所证明的。
非参数回归技术通常比参数模型更灵活。“非参数”并不意味着模型没有参数,而是参数的数量和性质是灵活的,而不是预先固定的。高斯过程(GPs)结合了灵活的非参数建模和可处理的贝叶斯推断,如 Rasmussen 和 Williams [48] 所描述的。非参数推断的基本思想是基于一般先验假设使用数据推断未知量。通常,这意味着使用无限维的统计模型 [55]。Matheron [33] 和其他人几十年前在地质统计学中引入了 GPs,名称为 kriging。它们在 20 世纪 90 年代通过 Williams 和 Rasmussen [56] 以及 Rasmussen 的论文 [44] 被机器学习界所熟知。最近,它们通过 Murray-Smith 和 Sbarbaro [35]、Murray-Smith 等人 [36] 或 Kocijan 等人 [26] 被引入控制界。
GP 回归允许在 RL 中用适当的不确定性处理来近似未知函数。关于值函数和模型学习,GP 在 RL 中的使用例如在 Engel 等人 [13,14] 的无模型策略迭代中、Rasmussen 和 Kuss [47]、Murray-Smith 和 Sbarbaro [35]、Rasmussen 和 Deisenroth [45] 的基于模型的控制中、Deisenroth 等人 [10,11] 的基于模型的值迭代中进行了讨论。此外,Ghavamzadeh 和 Engel [16] 在演员 - 批评家方法的背景下讨论了 GP。
在本文中,我们介绍并分析了高斯过程动态规划(GPDP)算法。GPDP 是一种基于值函数的 RL 算法,将 DP 推广到连续状态和动作空间,属于拟合值迭代算法家族 [18]。GPDP 的核心思想是利用非参数的贝叶斯 GP 模型来描述 DP 递归中的值函数。我们将考虑一个经典最优控制问题,其中可以使用大量特定于问题的先验知识,以及一个经典 RL 问题,其中只能做出非常一般的假设。特别是,转移动态将未知。为了解决 RL 问题,我们引入了一种新颖的在线算法,该算法交替进行动态学习和值函数学习。此外,我们利用贝叶斯主动学习来有效探索状态空间。本文的结构如下:第 2 节简要介绍最优控制、RL 和 GP。第 3 节在最优控制设置中介绍 GPDP,其中转移动态完全已知。此外,还将讨论如果可以使用大量特定于问题的知识,如何学习不连续的全局最优策略。GPDP 将应用于具有挑战性的非线性最优控制问题 —— 欠驱动摆的摆动控制。第 4 节考虑一般的 RL 设置,其中只能使用非常一般的先验假设。我们介绍了一种非常数据高效的快速学习 RL 算法,该算法即时构建转移动态和值函数的概率模型。我们利用贝叶斯主动学习来有效探索状态空间,并将这种新颖的算法与 Riedmiller [50] 的神经拟合 Q 迭代(NFQ)进行比较。第 5 节总结了本文。
2. 背景
本文考虑离散时间系统:
x k + 1 = f ( x k , u k ) + w , x_{k+1} = f(x_k, u_k) + w, xk+1=f(xk,uk)+w,
其中, x x x 表示状态, u u u 表示控制信号(动作), w ∼ N ( 0 , R w ) w \sim \mathcal{N}(0, R_w) w∼N(0,Rw) 是高斯分布的噪声随机变量, R w R_w Rw 为对角矩阵。此外, k k k 为离散时间索引。转移函数 f f f 将状态 - 动作对映射到后续状态,并假设其随时间平滑变化。
2.1. 最优控制与强化学习
最优控制和强化学习(RL)的目标都是找到一个能优化长期性能指标的策略。策略 π \pi π 是一个将状态空间 R n x \mathbb{R}^{n_x} Rnx 映射到控制空间 R n u \mathbb{R}^{n_u} Rnu 的映射,为每个状态分配一个控制信号。在许多情况下,性能指标被定义为在特定时间间隔内的预期累积成本。对于初始状态 x 0 ∈ R n x x_0 \in \mathbb{R}^{n_x} x0∈Rnx 和策略 π \pi π,有限 N N N 步优化时间范围内的(折扣)预期累积成本为:
V π ( x 0 ) : = E [ g N term ( x N ) + ∑ k = 0 N − 1 γ k g ( x k , u k ) ] , V^\pi(x_0) := \mathbb{E} \left[ g_N^{\text{term}}(x_N) + \sum_{k=0}^{N-1} \gamma^k g(x_k, u_k) \right], Vπ(x0):=E[gNterm(xN)+k=0∑N−1γkg(xk,uk)],
其中, k k k 索引离散时间。这里, u : = π ( x ) u := \pi(x) u:=π(x) 是策略 π \pi π 分配的控制信号。 g term g_{\text{term}} gterm 是与控制无关的终端成本,发生在最后的时间步 N N N。 g ( x k , u k ) g(x_k, u_k) g(xk,uk) 表示即时成本。折扣因子 γ ∈ ( 0 , 1 ) \gamma \in (0, 1) γ∈(0,1) 对未来成本进行加权。对于 N N N 步问题,最优策略 π ∗ \pi^* π∗ 最小化方程(2)对于任何初始状态 x 0 x_0 x0。 π ∗ \pi^* π∗ 对应的状态价值函数 V ∗ V^* V∗ 满足贝尔曼方程:
V ∗ ( x ) = min u ( g ( x , u ) + γ E [ V ∗ ( x ′ ) ∣ x , u ] ) , V^*(x) = \min_u \left( g(x, u) + \gamma \mathbb{E}[V^*(x') | x, u] \right), V∗(x)=umin(g(x,u)+γE[V∗(x′)∣x,u]),
其中,给定状态 - 动作对 ( x , u ) (x, u) (x,u),后续状态记为 x ′ x' x′。状态 - 动作价值函数 Q ∗ Q^* Q∗ 定义为:
Q ∗ ( x , u ) = g ( x , u ) + γ E [ V ∗ ( x ′ ) ∣ x , u ] , Q^*(x, u) = g(x, u) + \gamma \mathbb{E}[V^*(x') | x, u], Q∗(x,u)=g(x,u)+γE[V∗(x′)∣x,u],
因此,对于所有 x x x, V ∗ ( x ) = min u Q ∗ ( x , u ) V^*(x) = \min_u Q^*(x, u) V∗(x)=minuQ∗(x,u)。一般来说,找到导致方程(3)的最优策略 π ∗ \pi^* π∗ 是困难的。假设成本随时间累加且转移具有马尔可夫性,可以通过动态规划(DP)计算最小预期累积成本。DP 通过贝尔曼方程确定最优状态价值函数 V ∗ V^* V∗,如下所示:
V k ∗ ( x ) = min u ( g ( x , u ) + γ E [ V k + 1 ∗ ( x ′ ) ∣ x , u ] ) , V^*_k(x) = \min_u \left( g(x, u) + \gamma \mathbb{E}[V^*_{k+1}(x') | x, u] \right), Vk∗(x)=umin(g(x,u)+γE[Vk+1∗(x′)∣x,u]),
其中,对于所有状态 x x x 和 k = N − 1 , … , 0 k = N-1, \ldots, 0 k=N−1,…,0,状态价值函数 V k ∗ ( x ) V^*_k(x) Vk∗(x) 表示从时间步 k k k 开始,在状态 x x x 处的 N − k N - k N−k 步优化时间范围内的最小预期成本。与方程(5)类似,可以通过递归方式定义 Q ∗ Q^* Q∗ 的近似值。经典 DP 算法如算法 1 所示。对于已知转移动态 f f f、有限动作集 U DP U_{\text{DP}} UDP 和有限状态集 X DP X_{\text{DP}} XDP,DP 递归计算最优控制 π ∗ ( X DP ) \pi^*(X_{\text{DP}}) π∗(XDP)。从终端时间 N N N 开始,DP 利用贝尔曼最优性原理确定价值函数 V 0 ∗ ( X DP ) V^*_0(X_{\text{DP}}) V0∗(XDP) 和相应的最优控制 π 0 ∗ ( X DP ) \pi^*_0(X_{\text{DP}}) π0∗(XDP)。终端成本 g term g_{\text{term}} gterm 初始化价值函数 V N ∗ V^*_N VN∗。在算法 1 的第 6 行中,对于任何状态 - 动作对 ( x , u j ) (x, u_j) (x,uj),递归计算 Q ∗ Q^* Q∗ 值。对于确定性转移动态,第 6 行中对所有后续状态的期望是不必要的。当前递归步骤中的最优控制 p k ∗ ( x i ) p^*_k(x_i) pk∗(xi) 是 Q ∗ Q^* Q∗ 值的最小化参数,对应的状态价值函数 V k ∗ ( x i ) V^*_k(x_i) Vk∗(xi) 是相应的最小值。
与最优控制不同,强化学习通常不假设转移动态和成本是先验已知的。因此,通用的 RL 算法必须将这些量视为随机变量。然而,当 RL 算法应用于完全已知的马尔可夫决策过程(MDP)时,RL 问题可以视为与最优控制等价。DP 递归及其所有相关算法都可以用来解决这个问题。RL 和最优控制都旨在解决一个优化问题,其中当前决策的效果可能被延迟。例如,我们可以考虑国际象棋游戏。当前的走法将影响所有后续的情况、走法和决策,但只有在最后才能清楚比赛是否获胜。有关最优控制、DP 和 RL 的更多详细信息,请参阅 Bryson 和 Ho [8]、Bertsekas [5]、Bertsekas [6]、Bertsekas 和 Tsitsiklis [7]、Sutton 和 Barto [53] 的书籍。
2.2. 高斯过程
基于 MacKay [31] 和 Rasmussen 和 Williams [48] 的书籍,以下是对高斯过程(GPs)的简要介绍。给定数据集 { X , y } \{X, y\} {X,y},其中包含输入向量 x i x_i xi 和相应的观测值 y = h ( x i ) + ϵ y = h(x_i) + \epsilon y=h(xi)+ϵ, ϵ ∼ N ( 0 , σ ϵ 2 ) \epsilon \sim \mathcal{N}(0, \sigma_\epsilon^2) ϵ∼N(0,σϵ2),我们希望推断出生成数据的未知函数 h h h。这里, X = [ x 1 , … , x n ] X = [x_1, \ldots, x_n] X=[x1,…,xn] 是训练输入矩阵, y = [ y 1 , … , y n ] T y = [y_1, \ldots, y_n]^T y=[y1,…,yn]T 是相应的训练目标(观测值)向量。在贝叶斯框架下,函数 h h h 的推断由后验概率描述:
p ( h ∣ X , y ) = p ( y ∣ h , X ) p ( h ) p ( y ∣ X ) , p(h | X, y) = \frac{p(y | h, X) p(h)}{p(y | X)}, p(h∣X,y)=p(y∣X)p(y∣h,X)p(h),
其中, p ( y ∣ h , X ) p(y | h, X) p(y∣h,X) 是似然函数, p ( h ) p(h) p(h) 是模型假设的函数先验。术语 p ( y ∣ X ) p(y | X) p(y∣X) 被称为证据或边际似然。在使用 GPs 建模时,我们在函数空间上直接放置一个 GP 先验 p ( h ) p(h) p(h),而无需考虑函数 h h h 的显式参数化。该先验通常反映了对 h h h 的光滑性的假设。类似于高斯分布由均值向量和协方差矩阵完全确定,GP 由均值函数 m ( ⋅ ) m(\cdot) m(⋅) 和协方差函数 k ( ⋅ , ⋅ ) k(\cdot, \cdot) k(⋅,⋅)(也称为核函数)确定。可以将 GP 视为函数分布。然而,将函数视为无限长向量,所有必要的推断和预测计算都可以分解为对已知高斯分布的操控。如果潜在函数 h h h 服从 GP 分布,我们写作 h ∼ GP ( m , k ) h \sim \text{GP}(m, k) h∼GP(m,k)。给定 GP 模型的潜在函数 h h h,我们感兴趣的是预测任意输入 x ∗ x^* x∗ 处的函数值。GP 回归允许在强化学习中以适当的方式处理不确定性,当近似未知函数时。关于值函数和模型学习,例如在无模型策略迭代中使用 GP 的情况,可参考 Engel 等人 [13,14],在基于模型的控制中可参考 Rasmussen 和 Kuss [47]、Murray-Smith 和 Sbarbaro [35]、Rasmussen 和 Deisenroth [45],以及在基于模型的价值迭代中可参考 Deisenroth 等人 [10,11]。此外,Ghavamzadeh 和 Engel [16] 讨论了 GP 在演员 - 批评家方法中的应用。在本文中,我们介绍并分析高斯过程动态规划(GPDP)算法。GPDP 是一种基于值函数的强化学习(RL)算法,将 DP 推广到连续状态和动作空间,并属于拟合值迭代算法家族 [18]。GPDP 的核心思想是利用非参数的贝叶斯 GP 模型来描述 DP 递归中的值函数。我们考虑一个经典最优控制问题,其中可以使用大量特定于问题的先验知识,以及一个经典 RL 问题,其中只能做出非常一般的假设。特别是,转移动态将是未知的。为了解决 RL 问题,我们引入了一种新颖的在线算法,该算法交替进行动态学习和值函数学习。此外,我们利用贝叶斯主动学习来处理探索 - 开发权衡。本文的结构如下:第 2 节简要介绍最优控制、RL 和 GP。在第 3 节中,在转移动态完全已知的最优控制设置中介绍 GPDP。此外,还将讨论如果可以使用大量特定于问题的知识,如何学习不连续的全局最优策略。GPDP 将被应用于欠驱动摆的摆动控制,这是一个由 Atkeson [1] 引入的非线性最优控制问题。在第 4 节中,我们考虑一个通用的 RL 设置,其中只能使用非常一般的先验假设。我们介绍了一种非常数据高效的快速学习 RL 算法,该算法即时构建转移动态和值函数的概率模型。我们利用贝叶斯主动学习来有效探索状态空间。我们将这种新颖的算法与 Riedmiller [50] 的神经拟合 Q 迭代(NFQ)进行比较。第 5 节总结了本文。
3. 高斯过程动态规划
GPDP 是一种将 DP/值迭代推广到连续状态和动作空间的算法,它使用完全概率 GP 模型 [10]。在本节中,我们考虑离散时间最优控制问题,其中方程(1)中的转移函数 f f f 是精确已知的。为了确定连续值状态和动作空间的解决方案,GPDP 在函数空间中直接描述值函数 V k ∗ V^*_k Vk∗ 和 Q k ∗ Q^*_k Qk∗,通过使用完全概率 GP 模型来表示它们。为此目的而使用的 GP 模型具有直观的意义,因为它们利用可用数据来确定通常未知的值函数的潜在结构。此外,它们还提供了关于模型置信度的信息。与经典 DP(见算法 1)类似,我们选择状态的有限集合 X X X 和动作的有限集合 U U U。但是,这些集合不是用来表示状态和动作空间,而是作为两个值函数 GP 模型的支持点(训练输入):
- V k ∗ ( ⋅ ) ∼ GP V ( m V , k V ) V^*_k(\cdot) \sim \text{GP}_V(m_V, k_V) Vk∗(⋅)∼GPV(mV,kV)
- Q k ∗ ( x , ⋅ ) ∼ GP Q ( m Q , k Q ) Q^*_k(x, \cdot) \sim \text{GP}_Q(m_Q, k_Q) Qk∗(x,⋅)∼GPQ(mQ,kQ)
GPDP 的训练目标(观测值)是通过自身递归确定的。对于已知确定性转移动态 f f f 的 GPDP 算法的示意图如算法 2 所示。使用 GPV 建模状态值函数 V k ∗ V^*_k Vk∗ 的优势在于,GP 可以通过方程(6)和(7)为任何状态 x ∗ x^* x∗ 提供 V k ∗ ( x ∗ ) V^*_k(x^*) Vk∗(x∗) 的预测分布。这一特性在计算 Q ∗ Q^* Q∗ 值(第 7 行)时被利用:由于 GPV 的泛化特性,在确定 $ \mathbb{E}[V^_{k+1}(f(x, u))] $ 时,我们不受限于有限的后续状态集合。然而,尽管我们考虑的是一个确定性系统,我们仍然需要对潜在函数 V k + 1 ∗ V^*_{k+1} Vk+1∗ 的不确定性进行期望,该函数通过 GPV 进行概率建模。因此,$ \mathbb{E}[V^{k+1}(f(x, u))] $ 就是 $ \mathbb{E}[V^*{k+1}(f(x, u))] $,即由方程(6)给出的 V k + 1 ∗ ( f ( x , u ) ) V^*_{k+1}(f(x, u)) Vk+1∗(f(x,u)) 的预测均值。算法第 9 行中的 Q k ∗ Q^*_k Qk∗ 的 GP 模型将 Q ∗ Q^* Q∗ 函数推广到连续值动作域。第 7 行中的即时奖励 g g g 假设是带有附加独立高斯噪声 w g ∼ N ( 0 , σ g 2 ) w_g \sim \mathcal{N}(0, \sigma_g^2) wg∼N(0,σg2) 的测量值,其中 σ g 2 \sigma_g^2 σg2 是先验未知的方差。 Q k ∗ Q^*_k Qk∗ 的 GP 模型将此方差作为要优化的超参数。需要注意的是,GPQ 仅对 u u u 建模,因为 x i x_i xi 是固定的。因此, min u Q k ∗ ( x , u ) ≈ min u m Q ( u ) \min_u Q^*_k(x, u) \approx \min_u m_Q(u) minuQk∗(x,u)≈minumQ(u),即 GPQ 均值函数的最小值。第 10 行中的最小化控制 p k ∗ ( x ) p^*_k(x) pk∗(x) 不限于有限集合 U U U,而是可以从连续值控制域 R n u \mathbb{R}^{n_u} Rnu 中选择,因为对于任意控制,GPQ 都会提供相应 Q ∗ Q^* Q∗ 值的预测分布。为了最小化 Q k ∗ Q^*_k Qk∗,我们必须使用数值方法。
算法 2:已知确定性系统动态的 GPDP。
1: 输入: f , X , U f, X, U f,X,U
2: V N ∗ ( X ) ← g term ( X ) + w g V^*_N(X) \leftarrow g_{\text{term}}(X) + w_g VN∗(X)←gterm(X)+wg(终端成本)
3: V N ∗ ( ⋅ ) ∼ GP V V^*_N(\cdot) \sim \text{GP}_V VN∗(⋅)∼GPV(GP 模型用于 V N ∗ V^*_N VN∗)
4: 对 k ← N − 1 k \leftarrow N-1 k←N−1 到 0 进行循环(递归):
5: 对所有 x ∈ X x \in X x∈X 进行循环(所有支持状态):
6: 对所有 u ∈ U u \in U u∈U 进行循环(所有支持动作):
7: Q k ∗ ( x i , u j ) ← g ( x , u ) + w g + γ E [ V k + 1 ∗ ( f ( x , u ) ) ] Q^*_k(x_i, u_j) \leftarrow g(x, u) + w_g + \gamma \mathbb{E}[V^*_{k+1}(f(x, u))] Qk∗(xi,uj)←g(x,u)+wg+γE[Vk+1∗(f(x,u))]
8: 结束循环
9: Q k ∗ ( x i , ⋅ ) ∼ GP Q Q^*_k(x_i, \cdot) \sim \text{GP}_Q Qk∗(xi,⋅)∼GPQ(GP 模型用于 Q k ∗ Q^*_k Qk∗)
10: p k ∗ ( x ) ← arg min u ∈ R n u Q k ∗ ( x i , u ) p^*_k(x) \leftarrow \arg\min_{u \in \mathbb{R}^{n_u}} Q^*_k(x_i, u) pk∗(x)←argminu∈RnuQk∗(xi,u)
11: V k ∗ ( x ) ← Q k ∗ ( x p k ∗ ( x ) ) V^*_k(x) \leftarrow Q^*_k(x_{p^*_k(x)}) Vk∗(x)←Qk∗(xpk∗(x))
12: 结束循环
13: V k ∗ ( ⋅ ) ∼ GP V V^*_k(\cdot) \sim \text{GP}_V Vk∗(⋅)∼GPV(GP 模型用于 V k ∗ V^*_k Vk∗)
14: 结束循环
15: 返回 G P V , X , p ∗ ( X ) ← p 0 ∗ ( X ) GP_V, X, p^*(X) \leftarrow p^*_0(X) GPV,X,p∗(X)←p0∗(X)
需要注意的是,对于所有 x i ∈ X x_i \in X xi∈X,我们分别为 Q k ∗ ( x i , ⋅ ) Q^*_k(x_i, \cdot) Qk∗(xi,⋅) 使用独立的 GP 模型,而不是在联合状态 - 动作空间中建模 Q k ∗ ( ⋅ , ⋅ ) Q^*_k(\cdot, \cdot) Qk∗(⋅,⋅)。这一想法主要基于以下三个观察结果:
- 最终我们只关心 V ∗ V^* V∗ 函数 GP 在支持点处的最小预期累积成本 V k ∗ ( x i ) V^*_k(x_i) Vk∗(xi),因此,联合状态 - 动作空间中的 Q k ∗ Q^*_k Qk∗ 模型并非必要。
- 良好的联合状态 - 动作空间 Q k ∗ Q^*_k Qk∗ 模型需要大量的训练点,并且会使标准 GP 模型计算成本非常高昂。
- Q ∗ Q^* Q∗ 函数在 x x x 和 u u u 中都可能出现不连续性。我们通过对 Q k ∗ ( x , ⋅ ) Q^*_k(x, \cdot) Qk∗(x,⋅) 和 Q k ∗ ( x j , ⋅ ) Q^*_k(x_j, \cdot) Qk∗(xj,⋅) 进行独立处理来消除其中一个可能的不连续性来源。
总结来说,通过 Q ∗ Q^* Q∗ 函数模型实现对 DP 到连续动作的推广,通过 V ∗ V^* V∗ 函数模型实现对连续状态的推广。
3.1. 计算和内存需求
如算法 2 所述,GPDP 每个时间步需要进行 O ( ∣ X ∣ ∣ U ∣ 3 + ∣ X ∣ 3 ) O(|X||U|^3 + |X|^3) O(∣X∣∣U∣3+∣X∣3) 次计算,因为 GP 的训练在训练点数量上具有立方复杂度,详见第 2.2 节。经典的确定性设置中的 DP 需要进行 O ( ∣ X DP ∣ ∣ U DP ∣ ) O(|X_{\text{DP}}||U_{\text{DP}}|) O(∣XDP∣∣UDP∣) 次计算:对于任何状态 - 动作对 ( x , u ) (x, u) (x,u),都必须计算 Q ∗ Q^* Q∗ 值。需要注意的是,DP 所使用的状态集合 X DP X_{\text{DP}} XDP 和动作集合 U DP U_{\text{DP}} UDP 通常包含的元素远多于 GPDP 中的对应集合。因此,GPDP 能够比离散化 DP 更高效地利用数据。在内存需求方面,GPDP 最具挑战性的部分是存储逆核矩阵 K V − 1 K_V^{-1} KV−1 和 K Q − 1 K_Q^{-1} KQ−1,它们分别包含 ∣ X ∣ 2 |X|^2 ∣X∣2 和 ∣ U ∣ 2 |U|^2 ∣U∣2 个元素。与经典 DP 不同,GPDP 不依赖于时间采样频率,因为集合 X X X 包含的是 GP 值函数模型的支持点,而不是状态空间的表示。较高的时间采样频率将导致经典 DP 设置中单元格数量增加和单元格尺寸减小,其中状态空间本身由 X X X 定义。
3.2. 策略学习
为了在整个状态空间中学习一个最优的连续值策略,我们必须基于有限数量的评估来建模策略。我们将策略视为从状态到动作的确定性映射。虽然可以使用任何函数逼近器来进行策略建模,但我们使用 GP(策略 GP)来近似策略。我们将 GPDP 返回的最优控制 p ∗ ( X ) p^*(X) p∗(X)(算法 2 的第 15 行)解释为最优策略的噪声测量。我们假设存在噪声测量以考虑模型误差和即时成本函数 g g g 的噪声。为了将这些有限的最优控制推广到整个状态空间上的连续值全局最优策略 p ∗ p^* p∗,我们必须解决一个回归问题。所提出的策略 GP 的训练输入是位置 X X X,即值函数 GP 的训练输入位置。训练目标是值 p ∗ ( X ) p^*(X) p∗(X)。如果我们缺乏特定于问题的先验知识,这种通用方法是适用的。让我们考虑一个存在特定于问题的先验知识的例子,并讨论如何学习不连续的最优策略。不连续策略在欠驱动系统中经常出现。传统的策略学习方法(如 Peters 和 Schaal [39-41] 所讨论的)或标准 GP 模型(如 Rasmussen 和 Deisenroth [45] 所使用的平滑核函数)不适合建模不连续性。
在接下来的内容中,我们假设存在一个近似的最优策略,该策略在某些状态处可能是分段光滑的,并且在控制信号符号变化的状态处可能出现不连续性。基于这些考虑,我们尝试通过在两个 GP 之间切换来建模策略 p ∗ p^* p∗。主要思想如图 1 所示。GPDP 返回的最优控制 p ∗ ( X ) p^*(X) p∗(X) 被分为两个子集的训练目标:正号控制和负号控制。一个 GP 仅在正号控制的子集 p + ∗ ( X ) ⊆ p ∗ ( X ) p^*_+(X) \subseteq p^*(X) p+∗(X)⊆p∗(X) 及其对应输入位置上进行训练,另一个 GP 则使用剩余的集合 p − ∗ ( X ) p^*_-(X) p−∗(X)。由于每个 GP 模型的训练输入仅限于整个训练集的一部分,我们将它们称为“局部训练的”。我们分别将对应的 GP 称为 GP+ 和 GP-。需要注意的是,值 p ∗ ( X ) p^*(X) p∗(X) 是从 GPDP 算法中已知的。两个 GP 模型在其训练集区域内充当局部专家。训练后,给定测试输入 x ∗ x^* x∗,需要选择一个 GP 模型。在这种情况下,这一决策由二元(GP)分类器做出,该分类器选择最有可能预测最优控制的局部 GP 模型。分类器的训练输入是状态 X X X,对应的训练目标是标签“+”或“-”,这取决于 p ∗ ( X ) p^*(X) p∗(X) 的值。这个分类器在 Jacobs 等人 [20] 引入的专家混合设置中扮演了类似门控网络的角色。与 Jacobs 等人 [20] 的工作不同,我们贪婪地选择具有更高类别概率的 GP 模型来预测要应用的最优控制。我们始终应用局部训练的 GP 策略模型的预测均值,尽管我们分别获得了策略 p ( p + ∗ ) p(p^*_+) p(p+∗) 和 KaTeX parse error: Undefined control sequence: \- at position 7: p(p^*_\̲-̲) 的分布。需要注意的是,根据类别概率对 GP+ 和 GP- 的预测进行凸组合并不会产生所需的不连续策略。相反,策略将在决策边界附近被平滑。二元分类将潜在函数 f f f 的结果映射到两个不同的类别。在 GP 分类(GPC)中,一个 GP 先验被置于 f f f 上,然后通过一个 sigmoid 函数将其挤压以获得类别的先验。与 GP 回归不同,GPC 中的似然 p ( c i ∣ f ( x i ) ) p(c_i|f(x_i)) p(ci∣f(xi)) 不是高斯分布。类标签 c i ∈ { − 1 , + 1 } c_i \in \{-1, +1\} ci∈{−1,+1}。对于测试输入的类别标签的后验分布的积分无法进行解析计算。
期望传播(EP)算法用于近似非高斯似然以获得近似高斯后验。关于更多细节,我们参考 Minka [34] 的工作或 Rasmussen 和 Williams [48] 的书籍。将 GPDP 与策略学习方法相结合,得到了本文所述的完整 RL 算法。该算法确定了一个连续值(概率)值函数模型和一个连续值策略模型。
算法 3:完整 RL 算法。
1: ( V ∗ , X , p ∗ ( X ) ) ← GPDP (V^*, X, p^*(X)) \leftarrow \text{GPDP} (V∗,X,p∗(X))←GPDP(学习值函数)
2: p ∗ ← learn_policy ( X , p ∗ ( X ) ) p^* \leftarrow \text{learn\_policy}(X, p^*(X)) p∗←learn_policy(X,p∗(X))(学习策略)
3.3. 评估
我们通过将 GPDP 应用于一个易于理解但仍然具有挑战性的非线性控制问题——欠驱动摆的摆动控制来分析 GPDP。该算法使用 Rasmussen 和 Williams [48] 一书中的 gpml 工具箱实现。在 http://mlg.eng.cam.ac.uk/marc/,我们将公开提供额外的代码。
3.3.1. 通用设置:我们考虑连续时间摆动力学的离散时间近似,该动力学由下述常微分方程(ODE)控制:
θ ¨ ( t ) = − m θ ˙ ( t ) + m g l sin ( θ ( t ) ) + u ( t ) m l 2 \ddot{\theta}(t) = -\frac{m \dot{\theta}(t) + mgl \sin(\theta(t)) + u(t)}{ml^2} θ¨(t)=−ml2mθ˙(t)+mglsin(θ(t))+u(t)
其中, m = 0.05 kg ⋅ m 2 / s m = 0.05 \, \text{kg} \cdot \text{m}^2/\text{s} m=0.05kg⋅m2/s 是摩擦系数, l = 1 m l = 1 \, \text{m} l=1m 是摆长, m = 1 kg m = 1 \, \text{kg} m=1kg 是摆的质量, g = 9.81 m / s 2 g = 9.81 \, \text{m}/\text{s}^2 g=9.81m/s2 是重力加速度常数。施加的扭矩限制在 u ∈ [ − 5 , 5 ] N ⋅ m u \in [-5, 5] \, \text{N} \cdot \text{m} u∈[−5,5]N⋅m,并且不足以直接摆动起来。摆的特征频率大约为 0.5 赫兹。角度和角速度分别用 θ \theta θ 和 θ ˙ \dot{\theta} θ˙ 表示。控制信号是分段常数的,每 200 毫秒可以修改一次。从任意状态开始,任务是将摆摆动起来并使其在目标状态 [ 0 ; 0 ] T [0; 0]^T [0;0]T 附近的倒立位置保持平衡。Atkeson 和 Schaal [3] 表明,这个任务并非易事。此外,尽管维度较低,Doya [12] 指出离散化可能变得非常昂贵。为了避免离散化,我们将 GPDP 应用于直接在函数空间中工作,并在 2 秒的时间范围内最小化未折现的预期总成本(2)。我们选择饱和的即时成本函数 g g g:
g ( x , u ) = 1 − exp ( − x ⊤ diag ( [ 1 ; 0.2 ] ) x ) ∈ [ 0 ; 1 ] , g(x, u) = 1 - \exp\left(-x^\top \text{diag}\left(\begin{bmatrix}1; 0.2\end{bmatrix}\right) x\right) \in [0; 1], g(x,u)=1−exp(−x⊤diag([1;0.2])x)∈[0;1],
该函数不对施加的动作进行惩罚,而仅惩罚状态。即时成本(10)受到方差为 s w = 0.001 s_w = 0.001 sw=0.001 的加性高斯噪声 w g w_g wg 的影响,这需要由 GPQ 考虑,并且控制器事先并不知道这一点。对于值函数模型 GPV 和 GPQ,我们选择协方差函数:
k ( x i , x ) : = k SE ( x i , x j ) + k N ( x i , x j ) , k(x_i, x) := k_{\text{SE}}(x_i, x_j) + k_{\text{N}}(x_i, x_j), k(xi,x):=kSE(xi,xj)+kN(xi,xj),
其中 k SE k_{\text{SE}} kSE 是方程(8)中定义的 SE 核。噪声核:
k N ( x i , x ) : = s e 2 δ i j k_{\text{N}}(x_i, x) := s_e^2 \delta_{ij} kN(xi,x):=se2δij
平滑了先前计算的模型误差。这里, δ i j \delta_{ij} δij 是克罗内克δ函数。我们在状态空间超立方体 [ − π ; π ] rad × [ − 7 ; 7 ] rad/s [-π; π]^\text{rad} \times [-7; 7]^\text{rad/s} [−π;π]rad×[−7;7]rad/s 中随机选择了 400 个状态作为 GPV 的支持点集合 X X X。在第 k k k 次迭代中,我们将先验均值函数 m v : = k : = m q m_v := k := m_q mv:=k:=mq 定义为常数。这使得远离训练集 X X X 的状态变得不利。这种设置是合理的,因为我们假设值函数 GP 的相关部分已经通过支持点得到了充分覆盖。对于 GPQ,一个线性网格的 25 个动作在允许范围 [5,5] N·m 内定义了 GPQ 的训练输入 U,适用于任何特定状态 x ∈ X x \in X x∈X。训练目标是算法 2 第 7 行中确定的 Q ∗ Q^* Q∗ 值。我们通过在两个 GP 模型之间切换(如第 3.2 节所述)来建模不连续的策略。由于我们假设局部光滑的潜在近似最优策略,我们使用有利于平滑性的 SE 核来分别训练策略模型 GP+ 和 GP-。
GP+ 和 GP- 的先验均值函数在任何地方都设置为零。尽管我们不期望正负策略的平均值为零,但我们希望策略在“不确定”的情况下保持保守。如果最优控制信号的预测分布具有高方差,保守策略将不会向系统添加更多能量。由于假设确定性转移动态 f f f 是先验已知的,所考虑的学习问题几乎对应于经典最优控制问题。唯一的区别是感知到的即时成本(10)是嘈杂的。为了评估所学策略的质量,我们将其与最优解决方案进行比较。通常,对于连续值状态和控制域,无法确定最优策略。因此,我们依赖于经典的 DP,通过繁琐的状态和控制空间离散化来设计基准控制器。在这里,我们使用了大约 6.2 × 1 0 5 6.2 \times 10^5 6.2×105 个状态和 121 个可能的控制值的规则网格。我们考虑这个 DP 控制器是最优的。
3.3.2. 值函数和策略模型:图 2(a) 显示了由 DP 确定的最优值函数。坐标轴定义了摆的相空间,即角度和角速度。由于摆系统是欠驱动的,值函数在中央对角带附近不连续。边界由那些状态给出,在这些状态中,适用的扭矩刚好足以完成摆动,从而导致总成本较低。在邻近状态中,无论施加何种扭矩,摆都会倒下,导致累积成本较高。目标状态位于图中心的 [ 0 ; 0 ] T [0; 0]^T [0;0]T。GPDP 确定的值函数模型的均值函数如图 2(b) 所示。尽管 GPV 在原点处的值函数模型的均值为负,但其形状对应于图 2(a) 中的最优值函数。不连续的边界被平滑了。除了模型中的小负区域外,值与图 2(a) 中的最优值函数的值非常接近。所学策略的均值如图 3 所示。由于选择了相应的局部训练 GP(第 3.2 节),我们可以对策略的不连续边界进行建模。图 3 中的白色圆圈是 GP- 的训练输入位置,黑色叉号是 GP+ 的训练输入位置。图中的颜色编码了要施加的平均预测扭矩的强度。尽管某些预测扭矩可能超过了 [ − 5 ; 5 ] N ⋅ m [-5; 5] \, \text{N} \cdot \text{m} [−5;5]N⋅m 的允许范围,但在与摆系统交互时,我们仅施加最大允许扭矩。
3.3.3. 性能分析:图 4 给出了状态和所应用控制信号的示例轨迹。在所考虑的特定轨迹中,GPDP 控制器的总成本比 DP 控制器的总成本大约高出 9%。相应的即时成本如图 5 所示。为了分析所学策略的全局性能,我们随机选择了 1000 个初始状态 [ θ 0 ; θ ˙ 0 ] T ∈ [ − π ; π ] rad × [ − 7 ; 7 ] rad/s [\theta_0; \dot{\theta}_0]^T \in [-π; π]^\text{rad} \times [-7; 7]^\text{rad/s} [θ0;θ˙0]T∈[−π;π]rad×[−7;7]rad/s。归一化均方根误差(NRMSE)为 0.0566,量化了与繁琐的最优 DP 解相比 GPDP 引入的预期误差。DP 的平均总成本约为 4.6 单位,GPDP 的平均总成本约为 5.3 单位。两种控制器通常非常相似,如图 4 所示,但在少数情况下,当 GPDP 控制器需要额外的泵送动作来摆动摆时,它会导致更多的总成本。然而,GPDP 总是解决了任务,发生的最大总成本为 13.6。
3.3.4. 单一 GP 策略:到目前为止,我们通过在局部训练的 GP 模型之间切换来建模策略。这种特定于问题的方法只有在有足够的关于良好解决方案的先验知识时才适用。否则,一种更通用的方法是使用单一 GP 来建模策略。单一策略的全局性能接近我们报告的在两个局部训练的 GP 模型之间切换的情况下的性能。单一 GP 策略的 NRMSE 为 0.0686(切换 GP 时为 0.0566),而 5 秒内的平均成本为 5.5(切换 GP 时为 5.3)。尽管全局性能几乎相同,但在某些情况下,单一 GP 策略的性能可能较差,即使切换 GP 的策略表现良好。特别是,当状态轨迹撞到不连续边界时会发生这种情况。图 6 展示了这样一个例子,初始状态接近这样的边界。
3.4. 讨论
训练 GPQ 的计算复杂度与用于训练的动作数量呈立方关系。如果动作空间无法轻易通过训练点覆盖,可以通过采样动作来加速训练:假设 Q 函数中与最优解最相关的部分是接近最优解的部分,并选择那些在状态 xi 中预期成本最低的 M 个动作。这些 M 个动作定义了 U,并作为算法 2 中 GPQ 的训练输入。然后,我们在动作空间中更有可能获得围绕 Q 函数最优解的良好近似性能的部分中获得更多的训练点。Martinez-Cantin 等人 [32] 提到了这种局部函数近似的观点。在算法 2 的第 10 行,我们最小化 GPQ 的均值函数,即我们没有考虑 GPQ 的方差。除了简单地最小化预测均值函数外,还可以添加预测方差的一部分。这种方法将青睐那些预期预测成本较低但会惩罚不确定预测的动作。通过使用两个不同的 GP 来学习不连续策略的建议方法似乎适用于许多动态系统,并且比训练具有特定于问题的核函数的单一 GP 更有效。尽管特定于问题的核函数可能表现更好,但它们很难确定。然而,选择切换标准可能因情况而异。在所考虑的情况下,区分正负具有直观和实际意义。未来需要讨论的一个问题是高维输入的可扩展性。一般来说,寻找全局最优策略是非常困难的。此外,它需要大量的数据点,特别是在高维空间中。在实际应用中,并不需要全局最优策略,而是一个能够解决特定任务的策略。到目前为止,我们在状态空间中随机放置了值函数模型 GPV 的支持点 X。我们认为这是一种次优策略,可能非常数据低效。在下一节中,我们将描述如何结合这两个问题,即解决特定任务并高效利用数据。
4. 在线学习
强化学习(RL)算法的一个核心问题是学习速度,即完成任务所需的试验次数。许多学习算法需要大量试验才能成功。然而,在实际应用中,由于时间或物理限制,实际试验的次数非常有限。在接下来的内容中,我们将详细讨论一种旨在加速学习的 RL 算法。一般来说,加速人工系统学习的方法主要有两种。一种方法是通过各种方式限制任务以简化学习。这种方法的问题在于它高度依赖于具体问题,并且依赖于对任务特征的先验理解。另一种方法是通过从现有经验中提取更多有用信息来加速学习。这可以通过仔细建模观测数据来实现。在实际应用中,通常会结合这两种方法。在接下来的内容中,我们仅关注第二种方法:在对任务只有非常有限的先验理解的情况下,如何尽可能快地学习。在后续部分中,我们将推广之前部分所做的假设,并假设方程(1)中的转移动态 f f f 是先验未知的,并且我们感知到的是带有噪声的即时奖励。我们的目标是找到一个最优策略,使系统从初始状态转移到目标状态,只需要与真实系统进行少量交互。这一限制还意味着蒙特卡洛采样以及因此经典的无模型 RL 算法通常是不可行的。因此,构建动态模型变得有价值,因为基于模型的方法通常能更好地利用现有信息,如 Bertsekas 和 Tsitsiklis [7, 第 378 页] 所述。如 Rasmussen 和 Deisenroth [45] 所讨论的,概率模型能够恰当地量化知识,减轻模型偏差,并可能导致非常数据高效的学习算法。在后续内容中,我们将构建转移动态的概率模型,并将其纳入 GPDP 算法。我们区分离线和在线训练模型。离线训练模型是指在确定最优策略的整个规划算法之前进行训练。这需要对状态空间有一个良好的覆盖,或者对任务有足够的先验知识,以便我们将状态空间限制在动态相关的部分。我们在之前的工作 [11] 中采用了这种方法。在本文中,我们将采用更通用的方法,在线训练动态模型。这里的“在线”是指动态模型和值函数模型交替构建。仅基于收集到的经验,算法的想法是自动探索状态空间的相关区域,同时仅使用一般的先验假设。在广义 DP 框架内解决上述问题需要处理探索 - 开发权衡、在线动态学习和一步预测。我们将在本节中讨论所有这些问题。为了执行特定任务,我们将调整 GPDP(算法 2),以便只探索与任务相关的状态空间部分。
4.1. 学习动态
我们试图基于与真实动态系统的交互来建模短期转移动态。我们假设动态随时间平滑变化。此外,我们隐式地假设动态是时不变的(平稳的)。我们利用 GP 模型(动态 GP)来描述动态 f f f。对于每个输出维度 i i i,我们分别训练一个 GP 模型:
x k + 1 − x i ∼ GP ( m f , k f ) . x_{k+1} - x_i \sim \text{GP}(m_f, k_f). xk+1−xi∼GP(mf,kf).
该模型暗示在给定输入条件下,输出维度是条件独立的。需要注意的是,当我们观察到状态和后续状态的配对时,状态变量之间的相关性被隐式考虑。动态 GP 的训练输入是状态 - 动作对,目标是后续状态与应用动作的状态之间的差异。对于任何测试输入 ( x ∗ , u ∗ ) (x^*, u^*) (x∗,u∗), f ( x ∗ , u ∗ ) f(x^*, u^*) f(x∗,u∗) 的预测分布是高斯分布,均值向量为 l ∗ l^* l∗,协方差矩阵为 R ∗ R^* R∗。后验动态 GP 揭示了关于潜在函数 f f f 的剩余不确定性。对于确定性系统,其中方程(1)中的噪声项 w w w 被视为测量噪声,关于潜在转移函数 f f f 的不确定性在无限数据的极限下趋于零,动态 GP 收敛于确定性转移函数,即 GP f → f \text{GP}_f \rightarrow f GPf→f。对于随机系统,系统方程(1)中的噪声项 w w w 是过程噪声。在这种情况下,我们获得了潜在随机转移函数 f f f 的动态模型 GP,它包含两种不确定性来源。首先,与确定性情况一样,关于潜在系统函数本身的不确定性;其次,由过程噪声引起的不确定性。在无限数据的极限下,第一种不确定性源趋于零,而由于过程噪声 w w w 引起的随机性始终存在。这意味着只有关于模型的不确定性消失了。在实践中,确定性 GP 模型只包含一种不确定性,因为附加测量噪声可以从总不确定性(测量噪声加上关于潜在函数的不确定性)中减去。在随机情况下,过程噪声永远不能减去,因为它属于转移动态的一部分。在接下来的内容中,我们仅考虑未知确定性转移动态带有附加测量噪声的情况。具有附加过程噪声的随机动态可以类似地处理。
4.2. 一步预测
让我们重新审视 GPDP 算法(算法 2)。在一般的 RL 设置中,确定性的转移动态 f f f 不再已知,而是由动态 GP 建模。假设这个模型是已知的。动态仅在确定 Q ∗ Q^* Q∗ 值时起作用。在这里,方程(11)中涉及动态的地方是当 Q ∗ Q^* Q∗ 值被确定时。具体来说,对于任何状态 - 动作对 ( x , u ) ∈ X × U (x, u) \in X \times U (x,u)∈X×U,必须计算后续状态分布处的 V ∗ V^* V∗ 的预期值:
E V , f [ V k ( x k + 1 ) ∣ x i , u j , GP ] = ∬ V ( f ( x , u j ) ) p ( V ∣ f ) p ( f ( x , u j ) ) d f d V . \mathbb{E}_{V, f} [V_k(x_{k+1}) | x_i, u_j, \text{GP}] = \iint V(f(x, u_j)) p(V | f) p(f(x, u_j)) df dV. EV,f[Vk(xk+1)∣xi,uj,GP]=∬V(f(x,uj))p(V∣f)p(f(x,uj))dfdV.
系统函数 f f f 和值函数 V ∗ V^* V∗ 都是潜在的,并分别由 GP_f 和 GP_v 建模。在方程(11)中明确考虑动态模型的不确定性对于鲁棒和自适应控制是重要的。以贝叶斯的方式,我们通过对 f f f 和 V ∗ V^* V∗ 进行平均来考虑这两个潜在函数的不确定性。因此,我们必须预测 V ∗ V^* V∗ 在不确定输入 f ( x , u ) f(x, u) f(x,u) 处的值。我们使用 Rasmussen 和 Ghahramani [46] 以及 O’Hagan [37] 描述的贝叶斯蒙特卡洛方法。简而言之, V ∗ ( f ( x , u ) ) V^*(f(x, u)) V∗(f(x,u)) 的预测分布的均值和方差可以进行解析计算。均值由下式给出:
∫ m v ( f ( x i , u j ) ) p ( f ( x , u j ) ) d f = b T l , \int m_v(f(x_i, u_j)) p(f(x, u_j)) df = b^T l, ∫mv(f(xi,uj))p(f(x,uj))df=bTl,
其中 b : = ( K + s w 2 I ) − 1 y b := (K + s_w^2 I)^{-1} y b:=(K+sw2I)−1y,而:
l i = ∫ k v ( x , f ( x i , u j ) ) p ( f ( x i , u j ) ) d f ( x i , u j ) l_i = \int k_v(x, f(x_i, u_j)) p(f(x_i, u_j)) df(x_i, u_j) li=∫kv(x,f(xi,uj))p(f(xi,uj))df(xi,uj)
是关于 f ( x i , u j ) f(x_i, u_j) f(xi,uj) 的 k v ( x i , f ( x i , u j ) ) k_v(x_i, f(x_i, u_j)) kv(xi,f(xi,uj)) 的期望。这里, y y y 是 GPV 的训练目标。更多细节,包括当 k v k_v kv 为 SE 协方差函数时的最终表达式以及预测方差的相应表达式,请参见 Girard 等人 [17] 的论文和附录 A。
表 1 总结了对于确定性动态,根据已知函数的不同情况,求解方程(11)中的积分的四种情况。所有未知函数都被假设为由 GP 建模。为了提高可读性,我们省略了 x x x 和 u u u 中的索引 i i i 和 j j j。在第一种情况下,我们假设值函数 V ∗ V^* V∗ 和动态 f f f 是确定性的且已知的。即, p ( x j ∣ x , u ) = δ ( x 0 = f ( x , u ) ) p(x_j | x, u) = \delta(x_0 = f(x, u)) p(xj∣x,u)=δ(x0=f(x,u)) 是狄拉克δ函数,方程(11)的解直接由 V ∗ ( f ( x , u ) ) V^*(f(x, u)) V∗(f(x,u)) 给出。在第二种情况下,我们考虑已知的值函数,但未知的动态 f f f。动态由 GP_f 建模,我们获得高斯预测 p ( f ( x , u ) ) p(f(x, u)) p(f(x,u)),因为对于任何输入对 ( x , u ) (x, u) (x,u), x = f ( x , u ) x = f(x, u) x=f(x,u) 呈高斯分布。均值和方差分别由方程(6)和(7)给出。与非线性值函数结合时,方程(11)中的积分只有在特殊情况下才能解析求解,即使值函数是精确已知的。在第三种情况下,我们假设动态是确定性的且已知的,但值函数未知并由 GP_v 建模。这种情况对应于我们在之前工作 [10] 中提出的标准 GPDP 设置(算法 2)。关于 x x x 的期望消失。然而,必须关于值函数 V ∗ V^* V∗ 进行期望,以平均值函数模型的不确定性。因此,方程(11)的解由 m v ( f ( x , u ) ) m_v(f(x, u)) mv(f(x,u)) 给出,即 GP_v 在 f ( x , u ) f(x, u) f(x,u) 处的均值函数的评估值。在第四种情况下,值函数和动态都不确切已知,而是分别由 GP_v 和 GP_f 建模。因此,我们必须同时考虑关于值函数和动态的不确定性。由于这些不确定性来源,求解方程(11)的积分对应于具有不确定输入 f ( x , u ) f(x, u) f(x,u) 的 GP 预测。解由方程(12)给出。
4.3. 贝叶斯主动学习
还有两个未解决的问题:如何在线学习转移动态以及如何应对探索 - 开发权衡?我们利用贝叶斯主动学习(最优设计)来回答这两个问题。主动学习可以被视为一种策略,用于选择最优数据以提高学习效率。在我们的情况下,根据效用函数选择训练数据。效用函数通常对标量结果或实验的信息增益进行评分。在实际运行实验之前,这些量是不确定的。因此,在贝叶斯主动学习中,通过平均可能的结果来考虑预期效用。MacKay [29]、Krause 等人 [27] 和 Pfüngsten [42] 提出的基于信息的标准,或者 Verdinelli 和 Kadane [54] 以及 Chaloner 和 Verdinelli [9] 讨论的预期结果与信息增益的结合,通常用于定义效用函数。仅最大化预期信息增益往往会选择远离当前状态集的状态。MacKay [29] 将这种现象称为这些方法的“阿喀琉斯之踵”,如果假设空间不恰当的话。为了找到引导系统从初始状态到目标状态的最优策略,我们将贝叶斯主动学习纳入 GPDP,以便只探索状态空间的相关部分。动态 GP 和值函数 GP 将在飞行中构建。事前,哪些状态空间部分是相关的并不清楚。因此,“相关性”在贝叶斯主动学习框架中由效用函数评估,其中值函数模型 GP_v 的后验分布将发挥核心作用。这种新颖的在线算法充分利用了 GPDP 中已计算的信息。主动学习与 GPDP 的结合在下文中被称为 ALGPDP。与全局足够精确的值函数模型不同,ALGPDP 旨在在从初始状态到目标状态的最有希望的轨迹附近找到局部合适的值函数模型。在 RL 中,自然的设置是最终目标是获得信息和高回报。因此,我们将预期信息增益和预期总回报的期望结合起来,以在状态空间中找到具有良好值函数模型的有希望的状态。在参数设置中,这样的效用函数已在 Verdinelli 和 Kadane [54] 中讨论过。我们将在本文中讨论非参数情况。
4.4. ALGPDP 算法
算法 4 描述了整个 ALGPDP 算法。与算法 2 中的 GPDP 不同,ALGPDP 中的集合 X X X 是时变的。因此,在下文中,我们将它们表示为 X k X_k Xk,其中 N N N 是优化时间范围的长度。ALGPDP 从一组小的初始输入位置 X N X_N XN 开始。使用贝叶斯主动学习(第 5 行),在任何时间步 k k k 向当前集合 X k X_k Xk 中添加新位置(状态)。集合 X k X_k Xk 作为动态 GP 和值函数 GP 的训练输入位置。在每个时间步,动态模型 GP_f 被更新(第 6 行)以纳入最新信息。此外,动态 f f f 和值函数 V ∗ V^* V∗ 及 Q ∗ Q^* Q∗ 的 GP 模型也被更新。表 2 概述了相应的训练集,其中 x i ∈ X k x_i \in X_k xi∈Xk 且 u ∈ U u \in U u∈U。这里, x x x 表示状态 - 动作对 ( x , u ) (x, u) (x,u) 的观测后续状态。
4.5. 训练集的扩充
ALGPDP 从一组小的初始输入位置 X N X_N XN 开始。接下来,我们定义标准和描述用于找到训练输入位置 X k X_k Xk( k = N − 1 , … , 0 k = N-1, \ldots, 0 k=N−1,…,0)的标准和程序。假设在算法 4 的每次迭代中,在训练 GP_v 后,向当前输入位置 X k X_k Xk 中添加 l l l 个新状态。注意, X k X_k Xk 是值函数 GP 的训练输入。新状态在算法 4 的第 5 行添加。
4.5.1. 效用函数
考虑一组给定的可能输入位置 X ~ \tilde{X} X~,出于效率原因,只有最佳候选者应添加到 X k X_k Xk 中。在 RL 中,我们自然期望一个“好”的状态 x ~ ∈ X ~ \tilde{x} \in \tilde{X} x~∈X~ 能够同时提供有关潜在值函数的信息和高回报。因此,我们选择一个效用函数 U U U 来捕捉这两个目标,以评估候选状态的质量。我们的目标是找到最有可能的 x ~ ∗ \tilde{x}^* x~∗ 以最大化效用函数。由于值函数 GP 的概率模型,我们考虑需要贝叶斯平均的预期效用。在 GPDP 的背景下,我们定义预期效用为:
U ( x ~ ) : = r E [ V k ∗ ( x ~ ) ∣ X k ] + b ⋅ 2 log ( var V [ V k ∗ ( x ~ ) ∣ X k ] ) U(\tilde{x}) := r \mathbb{E}[V^*_k(\tilde{x}) | X_k] + b \cdot 2 \log(\text{var}_V[V^*_k(\tilde{x}) | X_k]) U(x~):=rE[Vk∗(x~)∣Xk]+b⋅2log(varV[Vk∗(x~)∣Xk])
其中, r r r 和 b b b 是权重因子。我们明确地基于已经训练的当前值函数的输入位置 X k X_k Xk 进行条件化。此效用要求我们对 V k ∗ ( x ~ ) V^*_k(\tilde{x}) Vk∗(x~) 的分布有所了解。幸运的是, V k ∗ ( x ~ ) V^*_k(\tilde{x}) Vk∗(x~) 的预测均值和方差直接由方程(6)和(7)给出。效用(13)表达了从 x ~ \tilde{x} x~ 预期获得的总回报(第一项)以及在给定当前训练输入 X k X_k Xk 的情况下, V k ∗ ( x ~ ) V^*_k(\tilde{x}) Vk∗(x~) 的预期意外性(第二项)。如 Chaloner 和 Verdinelli [9] 所述,第二项可以源于预测分布 V k ∗ ( x ~ ) V^*_k(\tilde{x}) Vk∗(x~) 的期望香农信息(熵)或预测分布 V k ∗ ( x ~ ) ∣ X k V^*_k(\tilde{x}) | X_k Vk∗(x~)∣Xk 与 V k ∗ ( X k ) V^*_k(X_k) Vk∗(Xk) 之间的 Kullback-Leibler 散度。参数 r r r 和 b b b 权衡预期回报和预期信息增益。较大的正值 r r r 偏向高预期回报,而较大的正值 b b b 偏向基于预测方差的信息增益。追求高预期回报利用了由概率值函数模型表示和提供的当前知识。获取信息意味着探索训练点较少的区域。通过添加具有高预期回报和高信息增益的状态,我们将状态轨迹从初始点引导至目标状态。因此,方程(13)中的参数 r r r 和 b b b 可以被视为控制探索 - 开发权衡的参数。
4.5.2. 添加多个状态
我们不仅仅寻找单一的有希望的状态 x ~ ∗ \tilde{x}^* x~∗,而是对候选集 X ~ = { x ~ i : i = 1 , … , L } \tilde{X} = \{\tilde{x}_i: i = 1, \ldots, L\} X~={x~i:i=1,…,L} 中最佳的 l l l 个状态 x ~ j ∗ \tilde{x}^*_j x~j∗( j = 1 , … , l j = 1, \ldots, l j=1,…,l)感兴趣。一种直接的方法是通过将 X ~ \tilde{X} X~ 中的最佳 l l l 个预期效用(13)值代入,独立选择所有状态。然而,我们可以通过结合候选状态之间的交叉信息来改进这种方法。这种方法考虑到非常接近的状态通常不会比单个状态贡献更多的信息。为了避免在选择最佳的 l l l 个状态集时出现组合爆炸,我们依次添加状态。我们贪婪地选择第一个状态 x ~ 1 ∗ ∈ X ~ \tilde{x}^*_1 \in \tilde{X} x~1∗∈X~ 以最大化预期效用(13)。然后,根据方程(14)扩展协方差矩阵:
K v : = [ K v k v ( X k , x ~ ∗ ) k v ( x ~ ∗ , X k ) k v ( x ~ ∗ , x ~ ∗ ) ] K_v := \begin{bmatrix} K_v & k_v(X_k, \tilde{x}^*) \\ k_v(\tilde{x}^*, X_k) & k_v(\tilde{x}^*, \tilde{x}^*) \end{bmatrix} Kv:=[Kvkv(x~∗,Xk)kv(Xk,x~∗)kv(x~∗,x~∗)]
其中 x ~ ∗ = x ~ 1 ∗ \tilde{x}^* = \tilde{x}^*_1 x~∗=x~1∗, k v k_v kv 是 GP_v 的协方差函数。现在, K v K_v Kv 纳入了 V k ∗ ( X k ) V^*_k(X_k) Vk∗(Xk) 和 V k ∗ ( x ~ 1 ∗ ) V^*_k(\tilde{x}^*_1) Vk∗(x~1∗) 之间的协方差信息。更新后的协方差矩阵用于评估预期效用(13),即更新了条件于 X k X_k Xk 和 x ~ 1 ∗ \tilde{x}^*_1 x~1∗ 的 V k ∗ ( x ~ 2 ) V^*_k(\tilde{x}_2) Vk∗(x~2) 的预测方差。因此,我们明确考虑了 V k ∗ ( x ~ 1 ∗ ) V^*_k(\tilde{x}^*_1) Vk∗(x~1∗) 和 V k ∗ ( x ~ 2 ) V^*_k(\tilde{x}_2) Vk∗(x~2) 之间的交叉协方差信息。 V k ∗ ( x ~ 2 ) V^*_k(\tilde{x}_2) Vk∗(x~2) 的预测均值(方程(13)中的第一项)保持不变。执行此过程 l l l 次后,确定了有希望的 l l l 个状态 x ~ 1 ∗ , … , x ~ l ∗ ∈ X ~ \tilde{x}^*_1, \ldots, \tilde{x}^*_l \in \tilde{X} x~1∗,…,x~l∗∈X~。一个状态 x ~ i + 1 \tilde{x}_{i+1} x~i+1 取决于其在 X k ∪ x ~ p ∗ X_k \cup \tilde{x}^*_p Xk∪x~p∗ 条件下的预期总回报和预期信息增益。我们可以直接使用 x ~ i ∗ \tilde{x}^*_i x~i∗( i = 1 , … , l i = 1, \ldots, l i=1,…,l)来定义集合 X k − 1 X_{k-1} Xk−1。这种方法会引发问题,因为 x ~ ∗ \tilde{x}^* x~∗ 仅基于模拟。如果值函数模型 GP_v 或转移模型 GP_f 完全错误,可能会添加永远无法动态到达的状态。因此,我们通过与真实系统交互来寻找输入位置。到目前为止,我们讨论了如何从候选集 X ~ \tilde{X} X~ 中找到有希望的 x ~ i ∗ \tilde{x}^*_i x~i∗ 位置。然而,我们还不清楚这个集 X ~ \tilde{X} X~ 是如何定义的。此外,如何定义 GP_f 和 GP_v 的训练集(见表 2)以及如何利用通过模拟确定的有希望的 x ~ i ∗ \tilde{x}^*_i x~i∗ 状态提供的信息来扩充位置 X k X_k Xk 以获得 X k − 1 X_{k-1} Xk−1 仍有待讨论。我们将在接下来的段落中讨论这些问题。注意,位置 X k X_k Xk 作为动态 GP 和值函数 GP 的训练输入。
4.5.3. 候选状态集
虽然可以随机选择候选状态 X ~ \tilde{X} X~,但这样的选择将非常低效且不规则。因此,我们采取了不同的方法,并在 ALGPDP(算法 4)的任何递归中利用动态模型进行一步预测,这不会引导我们进入状态空间完全未探索的区域。使用动态 GP,集合 X k X_k Xk 的后续状态的预测均值(在每个状态中应用动作集 U U U)被选为候选 X ~ \tilde{X} X~。在算法 4 的第 9 行中,这些状态被表示为 x k + 1 x_{k+1} xk+1。因此,它们的预测状态分布已经从之前的计算中得知。
4.5.4. 动态和值函数模型的训练
为了在初始状态周围训练动态模型(算法 4 的第 1 行),我们观察从初始状态开始的短状态轨迹。由于我们没有一个好的策略概念,我们可能随机应用动作。在观察到的轨迹中,状态 - 动作对 ( x init i , u init ) (x_{\text{init}}^i, u_{\text{init}}) (xiniti,uinit) 定义了动态 GP 的训练输入,相应的后续状态 f ( x init , u init i ) f(x_{\text{init}}, u_{\text{init}}^i) f(xinit,uiniti) 定义了训练目标,这些目标可能是嘈杂的。我们将集合 X N : = { x init i } X_N := \{x_{\text{init}}^i\} XN:={xiniti} 定义为初始动态 GP 的训练输入位置。从 X N X_N XN 开始,我们在 ALGPDP 的每次迭代中使用贝叶斯主动学习来扩展这些位置的集合。假设接下来输入位置集合 X k X_k Xk 是已知的。我们根据以下步骤确定要用于 ALGPDP 后续步骤的输入位置 X k − 1 X_{k-1} Xk−1:
- 确定 X ~ \tilde{X} X~,即从 X k X_k Xk 开始并应用 U U U 时后续状态的预测均值, X ~ : = E f [ f ( X k , U ) ] \tilde{X} := \mathbb{E}_f [f(X_k, U)] X~:=Ef[f(Xk,U)]。动态 GP 使用方程(6)和(7)确定后续状态的分布。
- 贝叶斯主动学习确定最有希望的预测状态 x ~ ∗ ∈ X ~ \tilde{x}^* \in \tilde{X} x~∗∈X~, i = 1 , … , l i = 1, \ldots, l i=1,…,l。
- 确定 l l l 个元组 ( x 0 i , u 0 i ) ∈ X k (x_0^i, u_0^i) \in X_k (x0i,u0i)∈Xk,使得 E [ f ( x 0 i , u 0 i ) ] = x ~ i ∗ ∈ X ~ \mathbb{E}[f(x_0^i, u_0^i)] = \tilde{x}^*_i \in \tilde{X} E[f(x0i,u0i)]=x~i∗∈X~。由于 X k X_k Xk 和 U U U 是有限的,这些元组可以通过查找表确定。
- 我们与真实系统交互并在状态 x x x 中应用动作 u 0 i u_0^i u0i,并观测 f ( x , u ) f(x, u) f(x,u)。我们定义 X k − 1 : = X k ∪ { f ( x 0 i , u 0 i ) : i = 1 , … , l } X_{k-1} := X_k \cup \{f(x_0^i, u_0^i) : i = 1, \ldots, l\} Xk−1:=Xk∪{f(x0i,u0i):i=1,…,l}。
注意,我们不是通过优化效用函数(13)的 x ~ i ∗ \tilde{x}^*_i x~i∗ 来扩展 X k X_k Xk,而是与真实系统交互并在状态 x x x 中应用动作 u 0 i u_0^i u0i,使得后续状态的均值被预测为 x ~ i ∗ \tilde{x}^*_i x~i∗。我们用相应的观测值扩展 X k X_k Xk。特别是在学习的早期阶段,当可用观测值很少时,预测不一定与观测值对应。然而,概率动态模型会在下一次更新中识别并考虑任何实际观测值与预测均值之间的差异。在算法 4 的第 15 行中,我们更新值函数模型 GP_v。训练输入是状态集合 X k X_k Xk 和目标状态。起初,在时间步 N N N 处,值函数等于终端奖励函数 g term g_{\text{term}} gterm(仅取决于状态)。一般来说,相应的训练目标被定义为在位置 X k X_k Xk 和目标状态处评估的 Q 函数的最大值。目标状态作为值函数模型的附加训练输入,使学习更稳定、更快,因为它提供了一些关于任务解决方案的信息。然而,我们认为这种信息不需要强先验假设:如果奖励不是外部提供的,那么奖励函数必须内部评估。注意,最大即时奖励告诉我们目标状态的位置。效用函数(13)仅针对确定性集 X ~ \tilde{X} X~ 进行优化,这实际上由后续状态的预测均值组成。相反,可以将效用定义为后续状态分布的函数。这需要确定具有不确定输入的 V ∗ V^* V∗ 的预测分布。均值和方差可以解析计算,SE 核的相应表达式在附录 A 中给出。然而,当更新方程(14)中的矩阵时,需要计算 V ∗ ( x ~ ) V^*(\tilde{x}) V∗(x~) 和 V ∗ ( X ~ k ) V^*(\tilde{X}_k) V∗(X~k) 之间的交叉协方差,这比确定性输入的计算(基本上是核的 n n n 次计算)更复杂。然而,交叉协方差的计算也是解析可处理的。尽管基于分布 p ( x ~ ) p(\tilde{x}) p(x~) 的预期效用定义将是一个干净的贝叶斯处理,但我们不在本文中明确讨论这种情况。
4.6. ALGPDP 的计算和内存需求
首先,我们考虑离线训练的未知(确定性或随机性)动态情况。除了训练动态GP一次,其计算复杂度与训练点数呈立方关系外,我们还需要解决方程(11)中的积分问题。计算完整的积分分布可以重新表述为标准的高斯过程预测,其计算复杂度与训练点数 X X X呈平方关系。然而,如果我们仅使用均值,那么每一步的时间复杂度为 O ( ∣ X ∣ 2 ∣ U ∣ ) O(|X|^2|U|) O(∣X∣2∣U∣)。与已知确定性转移动力学的情况相比,对于未知的随机动力学,没有额外的计算负担。此外,不需要更多的内存来进行必要的计算。对于随机动力学,DP通常非常繁琐且几乎无法在没有近似的情况下应用,因为其需要 O ( ∣ U D ∣ ∣ X D ∣ 2 ) O(|U_D| |X_D|^2) O(∣UD∣∣XD∣2)的内存来存储完整的转移矩阵。此外,随机问题的DP计算复杂度也是 O ( ∣ U D ∣ ∣ X D ∣ 2 ) O(|U_D| |X_D|^2) O(∣UD∣∣XD∣2)。
现在,我们考虑ALGPDP的情况,它在线训练转移动力学和价值函数模型。扩展的协方差矩阵(方程14)可以在 O ( n 2 2 ) O(n_2^2) O(n22)的时间内求逆,其中 n 2 n_2 n2是之前 K v K_v Kv的条目数。因此,贝叶斯主动状态选择的计算成本为 O ( ∣ U ∣ ( ∣ X k ∣ 2 l + ∣ X k ∣ l 2 ) ) ∈ O ( ∣ U ∣ ∣ X k ∣ l ( ∣ X k ∣ + l ) ) O(|U|(|X_k|^2 l + |X_k| l^2)) \in O(|U| |X_k| l (|X_k| + l)) O(∣U∣(∣Xk∣2l+∣Xk∣l2))∈O(∣U∣∣Xk∣l(∣Xk∣+l))。动态GP可以重新训练为 O ( ( ∣ X k ∣ + l ) 3 ) O((|X_k| + l)^3) O((∣Xk∣+l)3),因为更新后的协方差矩阵 K f K_f Kf需要求逆。因此,ALGPDP在时间步 k k k的总计算复杂度为 O ( ∣ U ∣ ( ∣ X k ∣ l ( ∣ X k ∣ + l ) ) + ∣ X k ∣ 3 ( 1 + ∣ U ∣ ) + ∣ U ∣ 3 ∣ X k ∣ ) O(|U|(|X_k| l (|X_k| + l)) + |X_k|^3 (1 + |U|) + |U|^3 |X_k|) O(∣U∣(∣Xk∣l(∣Xk∣+l))+∣Xk∣3(1+∣U∣)+∣U∣3∣Xk∣),其中包括训练 G P f GP_f GPf、 G P v GP_v GPv、 G P q GP_q GPq,以及为所有状态 X k X_k Xk在应用 U U U时的后继状态评估积分(11)。注意到 X k ⊂ X k − 1 = X k ∪ { x ~ l p } X_k \subset X_{k−1} = X_k \cup \{\tilde{x}^p_l\} Xk⊂Xk−1=Xk∪{x~lp},标准GPDP在3节讨论的最优控制设置中,在任何时间步都使用完整的 X 0 X_0 X0。因此,ALGPDP可以显著加快GPDP的速度。
4.7 评估
我们考虑在4.7.1节中引入的欠驱动摆动任务。我们现在的目标是最大化预期累积奖励,而不是最小化预期累积成本。我们考虑饱和的即时奖励函数:
g ( x ) : = − 1 + exp ( − 1 2 d ( x ) 2 a 2 ) ∈ [ − 1 , 0 ] ; a = 1.6 m , g(x) := -1 + \exp\left(-\frac{1}{2} \frac{d(x)^2}{a^2}\right) \in [-1, 0];\ a = 1.6\ \text{m}, g(x):=−1+exp(−21a2d(x)2)∈[−1,0]; a=1.6 m,
其中
d ( x ) 2 = 2 l 2 − 2 l 2 cos ( θ ) ; l = 1 m d(x)^2 = 2l^2 - 2l^2\cos(\theta);\ l = 1\ \text{m} d(x)2=2l2−2l2cos(θ); l=1 m
是摆杆尖端与目标状态之间的平方距离。注意,即时奖励(15)仅依赖于角度,特别是不依赖于角速度或控制变量。这个奖励函数要求学习算法自动发现,在目标状态附近保持低角速度对于解决任务至关重要。奖励函数(15)在角度偏离目标位置超过17°(≈0.3弧度)时饱和。我们在2秒的时间范围内最大化(未折扣的)预期长期奖励,并假设动力学是先验未知的,除非另有说明。效用函数(13)中的探索/利用参数设置为 r : = 1 ; β : = 2 r := 1; \beta := 2 r:=1;β:=2。初始状态选择为 [ − π ; 0 ] [-\pi; 0] [−π;0],目标状态是原点 [ 0 ; 0 ] [0; 0] [0;0]。政策由一个单独的GP建模,而不是两个可以切换的GP来考虑政策中的不连续性。在一般学习方法中,我们不能假设特定的先验知识描述了良好解决方案的属性。
4.7.1 摆动
为了在初始状态周围学习动力学(算法4的第1行),我们观察了两条长度为2秒的轨迹,每200毫秒测量和控制一次。最初,由于缺乏良好的控制策略,我们随机应用动作。由此得到的集合 X N X_N XN由20个状态组成。为了执行摆动,我们总共使用了150个状态,包括 X N X_N XN中的20个初始随机轨迹上的状态。这意味着我们在每个时间步将 X k X_k Xk扩展 l = 13 l = 13 l=13个状态以定义 X k − 1 X_{k−1} Xk−1。与3.3节一样,我们将ALGPDP学习的解决方案与最优DP解决方案进行了比较。图8显示,ALGPDP提供的典型解决方案接近最优DP解决方案的质量。左图显示角度轨迹彼此接近,因此即时奖励也没有太大差异,右图显示了这一点。注意,奖励函数(15)不依赖于角速度和控制信号。对于这个特定的轨迹,ALGPDP的累积奖励比最优DP解决方案大约低7%。由于奖励函数(15),只有很小范围的角度实际上会导致显著偏离−1的奖励。
图9显示了ALGPDP迭代过程中价值函数模型的均值的典型演变。从初始的随机轨迹开始,使用贝叶斯主动学习添加输入位置。可以看到,最初添加新状态是基于探索。最后一个价值函数模型(右下图)使用更多集中在目标状态周围的输入位置进行训练,这是由于效用函数(13)认为该区域的状态非常有利。在找到高奖励区域后,算法继续探索,直到预期信息增益与低奖励之间的差距无法再弥合。ALGPDP可以可靠地执行摆动, X 0 X_0 X0的大小在75到300个状态之间,相当于与系统的交互时间不到一分钟。在2.4 GHz处理器和2 GB RAM的标准计算机上,不同 X 0 X_0 X0大小的计算时间如表3所示。数据的有效使用主要归功于涉及的动力学和价值函数的probabilistic模型。相比之下,Doya [12] 使用400到7000秒的经验解决了这个任务,这意味着ALGPDP可以非常快速地学习。
4.7.2 与NFQ迭代的比较
Riedmiller [50] 介绍了NFQ迭代,这是一种无模型的强化学习算法,使用多层感知器(MLP)来建模Q函数。MLP是一种确定性的非参数模型,因此非常适合于在先验未知潜在函数的参数形式时的非线性函数逼近。然而,与GPs不同,MLPs通常不提供关于函数模型本身的置信度。完整的NFQ算法在算法5中描述。在第 k k k次迭代中,基于整个转换经验集 P − 1 , … , P k P^{-1}, \ldots, P_k P−1,…,Pk训练 Q k Q_k Qk函数模型。MLP建模的 Q k Q_k Qk函数的训练输入是状态-动作对 ( x , u ) (x, u) (x,u),训练目标是值:
Q k ( x , u ) = g ( x , u ) + max u Q k − 1 ( x , u ) , Q_k(x, u) = g(x, u) + \max_u Q_{k−1}(x, u), Qk(x,u)=g(x,u)+umaxQk−1(x,u),
其中 x ′ x' x′是状态-动作对 ( x , u ) (x, u) (x,u)观察到的后继状态(遵循 ε \varepsilon ε-贪婪策略)。使用Riedmiller和Braun [51]的RPROP算法,离线更新Q函数模型(算法5的第5行),以提高数据效率,这在Riedmiller [49]描述的在线Q函数更新中并不具备。NFQ收集与真实系统的交互转换经验,存储它们,并重新考虑这些经验以更新Q函数逼近器。Riedmiller的NFQ是一种通用的最先进的强化学习算法,是Ernst等人[15]提出的拟合Q迭代的一个特定实现。
算法5 神经拟合Q迭代
1: 初始化 P − 1 P^{-1} P−1。初始化训练模式
2: Q − 1 = MLP ( P − 1 ) Q^{-1} = \text{MLP}(P^{-1}) Q−1=MLP(P−1)。训练初始Q函数
3: for k = 0 k = 0 k=0 to N N N do
4: P k = generate_Pattern P_k = \text{generate\_Pattern} Pk=generate_Pattern。收集新数据
5: Q k = Rprop_train ( P − 1 , … , P k ) Q_k = \text{Rprop\_train}(P^{-1}, \ldots, P_k) Qk=Rprop_train(P−1,…,Pk)。更新Q函数模型
6: end for
7: 返回 Q = Q N Q = Q_N Q=QN。返回最终Q函数模型
我们将ALGPDP在4.7.1节中的结果与具有11个离散的等距动作(从−5到5 Nm)的NFQ进行了比较。两种算法都必须从头开始解决摆动任务,即仅使用非常一般的先验知识。建模Q函数的MLP由两层组成,分别有20和12个单元。生成训练模式 P k P_k Pk的每个周期的长度为20个时间步,即8秒。Q函数模型需要 N = 64 N = 64 N=64次迭代才能收敛。因此,最终训练集由1280个元素组成,对应大约256秒的总经验。注意,这个NFQ设置旨在找到一个非常接近最优的策略。NFQ中使用的奖励函数与ALGPDP中的奖励函数(15)相似,仅惩罚与目标的距离,而不惩罚角速度或应用的动作。即时奖励的范围从−0.1到0。如果摆处于定义的目标区域内,则获得最大奖励。最大奖励区域简化了学习,尽管在这个特定情况下奖励区域非常小。与ALGPDP中的贝叶斯主动学习相比,NFQ使用 ε \varepsilon ε-贪婪策略来探索状态空间。最优动作由NFQ快速将摆带入直立位置并稳定在那里,如图10(a)所示。与ALGPDP(奖励−10.25)相比,NFQ(奖励−9.6618)甚至更接近最优DP解决方案(奖励−9.60)。在上述设置中,NFQ在2.4 GHz处理器上的计算时间约为1560秒,高于表3中不同 X 0 X_0 X0大小的ALGPDP的计算时间。在NFQ中使用更少的迭代次数,因此更少的数据,仍然可以导致一个可以解决摆动任务的控制器。例如,仅使用18次迭代(而不是64次)可以得到累积奖励约为−10.1的解决方案,这与ALGPDP确定的解决方案质量相当,ALGPDP的奖励为−10.25。整个NFQ数据集的大小减少到360个元素,而所需的交互时间减少到72秒,这也与ALGPDP解决方案所需的不到一分钟的交互时间相当。这种效率是由于ALGPDP利用价值函数和转换动力学的probabilistic模型来探索状态空间的相关区域。尽管ALGPDP和NFQ的评估设置并不完全相同,但两种算法在小数据集上都得到了相似的结果。此外,ALGPDP和NFQ都比Doya [12] 中可比的摆动解决方案显著更数据高效。
4.8 讨论
所提出的贝叶斯主动状态选择方法避免了仅考虑可以通过一步动态到达的状态的极端设计。此外,它结合了一个基于信息的标准和预期高回报,这是强化学习中的自然选择,以探索状态空间。所有需要的均值和方差信息(除了方程(14)中协方差矩阵的更新外)都直接由系统动力学、状态价值函数 V V V和状态-动作价值函数 Q Q Q的GP模型提供。利用GP模型的属性,所有需要的贝叶斯平均都可以解析地进行。我们基于价值函数GP模型提供的信息顺序添加新状态。为了探索状态空间的相关部分,有必要在每个时间步添加新状态。然而,即使在本节讨论的设置中,也有一些状态对价值函数GP(或动力学GP)的准确性贡献不大。考虑稀疏近似将很有帮助,Quinonero-Candela和Rasmussen [43] 讨论了其中的一些方法,以紧凑地表示数据集。这些稀疏方法的整合不会很困难,但留待未来工作。特别是,Snelson和Ghahramani [52] 的FITC近似将非常有趣。如果数据集变得相当大,稀疏近似也将不可避免,这是由于GP训练的缩放属性。ALGPDP中的价值函数和策略模型依赖于初始轨迹,这在我们的案例中是随机的。尽管如此,不同的初始化总是将摆引导到目标状态,暗示了该方法的稳健性。然而,可以轻松地整合特定于问题的先验知识以改进模型。例如,Ko等人[24] 评估了一种方法,将描述系统动力学的理想化常微分方程与真实系统的观测GP模型相结合。动力学GP模型可以被视为一种非参数系统识别的有效机器学习方法,它建模了一般的输入-输出行为。所有涉及的参数都是隐式确定的。这种方法的一个缺点是,通常非参数模型不会产生与机械或物理意义的可解释关系。如果系统识别中的一些参数不能确定无疑,经典稳健控制(极小极大/H∞控制)旨在最小化最坏情况下的误差。这种方法通常导致次优和保守的解决方案。可能,完全probabilistic的GP模型的系统动力学可以用于稳健控制如下。由于GP模型反映了对底层函数的不确定性,它隐式地覆盖了解释观测数据的所有转换动力学。通过平均所有这些模型,我们适当地处理了不确定性,并确定了一个稳健的控制器。在动力学学习部分处理噪声测量是另一个需要在未来处理的问题。到目前为止,我们假设我们直接测量状态而不通过测量函数被压缩。将测量地图的整合需要结合预测和测量的滤波技术,以确定隐藏状态的更新后验分布,这不再直接可访问。Ko等人[25] 和Ko和Fox [23] 在将GP动力学和观测模型整合到无迹卡尔曼滤波器[21]和扩展卡尔曼滤波器中的初步结果已经给出。所提出的ALGPDP算法与自适应控制和最优设计相关。Murray-Smith和Sbarbaro [35] 和Krause等人[27] 提出了类似的想法。
ALGPDP的一个主要缺点是它不能直接应用于动态系统:如果我们与真实的动态系统(如机器人)交互,通常不可能体验任意的状态转换。一种可能的适应真实世界问题的方法是体验遵循当前策略的最有希望的轨迹。这种方法可以基本上结合本文的想法和Rasmussen和Deisenroth [45] 的论文中的想法。
4.9 总结
我们介绍了一种用于在连续状态和动作空间中学习控制的数据高效基于模型的贝叶斯算法。在线训练转换动力学和价值函数的GP模型。我们利用贝叶斯主动学习来探索状态空间,并动态更新当前GP模型的训练集。所考虑的效用函数根据预期信息增益和预期总回报对状态进行评分,这在强化学习中似乎是一个自然的设置。我们的算法高效地利用数据,这在与系统的交互成本很高时非常重要。
5. 结论
人工学习算法中的概率模型可以显著加快学习速度,因为它们量化了基于经验的知识中的不确定性,并减轻了模型偏差。因此,它们很有希望设计数据高效的学习算法。在本文中,我们介绍了高斯过程动态规划(GPDP),一种用于连续值状态和动作空间的基于价值函数的强化学习算法。GPDP迭代地使用灵活的非参数概率GP对潜在的价值函数进行建模。在经典的最优控制问题背景下,即欠驱动摆动,我们已经表明GPDP产生了一个接近最优的解决方案。然而,在这种设置中,我们仍然需要特定于问题的知识。为了设计一个通用的快速学习算法,我们将GPDP扩展,使得如果转换动力学是先验未知的,可以在线学习一个概率动力学模型。此外,贝叶斯主动学习通过顺序找到具有高预期回报和信息增益的状态来指导探索和利用。这种灵活性的代价是不建模最终的全局策略,而只是局部足够准确。然而,当关于任务的知识很少,并且与真实系统的交互有限时,这种方法非常有用。我们提供了实验证据,表明我们的在线算法在摆动任务上表现良好。该方法相当通用,依赖于GP模型,而不是专门为摆动问题调整的。主动学习算法选择的相当有限的点数量使得学习的策略非常接近NFQ迭代确定的策略,NFQ迭代是一种最先进的无模型强化学习算法,以及使用非常精细的网格(数百万个状态)的DP。我们相信我们的算法结合了解决更具挑战性的强化学习问题的关键方面,如主动在线学习和灵活的非参数建模。特别是,与系统交互所需的数量往往是将强化学习应用于实践的一个限制因素。
致谢
我们非常感谢Roland Hafner和Martin Riedmiller进行神经拟合Q迭代实验并进行有价值的讨论。我们感谢匿名审稿人的指导性评论和建议。M.P.D.感谢德国研究基金会(DFG)通过C.E.R的RA 1030/1-3资助。
附录A. 不确定输入的GP预测
在以下部分中,我们重新陈述了Rasmussen和Ghahramani [46]、O’Hagan [37]、Girard等人[17]和Kuss [28] 的结果,说明了当测试输入不确定时如何使用高斯过程进行预测。考虑预测不确定测试输入 x ∗ x^* x∗处的函数值 h ( x ∗ ) h(x^*) h(x∗)的问题。这个问题对应于寻求分布:
p ( h ) = ∫ p ( h ( x ∗ ) ∣ x ∗ ) p ( x ∗ ) d x ∗ . (16) p(h) = \int p(h(x^*)|x^*) p(x^*) \, dx^*. \tag{16} p(h)=∫p(h(x∗)∣x∗)p(x∗)dx∗.(16)
考虑 h h h是具有SE核 k h k_h kh的GP,并且 x ∗ ∼ N ( ℓ , R ) x^* \sim \mathcal{N}(\ell, R) x∗∼N(ℓ,R)。假设预测分布 p ( h ( x ∗ ) ∣ x ∗ ) p(h(x^*)|x^*) p(h(x∗)∣x∗)由标准GP预测均值和方差(方程6和7)给出。我们可以解析地计算预测分布(16)的均值 n n n和方差 c 2 c^2 c2。我们用具有相同均值和方差的高斯分布近似精确的预测分布(矩匹配)。均值 n n n由下式给出:
n = E h [ E x ∗ [ h ( x ∗ ) ] ] = E x ∗ [ E h [ h ( x ∗ ) ] ] = E x ∗ [ m h ( x ∗ ) ] = ∫ m h ( x ∗ ) p ( x ∗ ) d x ∗ = b ⊤ ℓ (17) n = \mathbb{E}_h [\mathbb{E}_{x^*}[h(x^*)]] = \mathbb{E}_{x^*}[\mathbb{E}_h [h(x^*)]] = \mathbb{E}_{x^*}[m_h(x^*)] = \int m_h(x^*) p(x^*) \, dx^* = b^\top \ell \tag{17} n=Eh[Ex∗[h(x∗)]]=Ex∗[Eh[h(x∗)]]=Ex∗[mh(x∗)]=∫mh(x∗)p(x∗)dx∗=b⊤ℓ(17)
其中 b : = ( K + σ e 2 I ) − 1 y b := (K + \sigma_e^2 I)^{-1} y b:=(K+σe2I)−1y,并且
ℓ i = ∫ k h ( x i , x ∗ ) p ( x ∗ ) d x ∗ = a 2 ∣ R K − 1 + I ∣ − 1 / 2 exp ( − 1 2 ( x i − m ) ⊤ ( R + K ) − 1 ( x − ℓ ) ) \ell_i = \int k_h(x_i, x^*) p(x^*) \, dx^* = a^2 |R K^{-1} + I|^{-1/2} \exp\left(-\frac{1}{2}(x_i - m)^\top (R + K)^{-1}(x - \ell)\right) ℓi=∫kh(xi,x∗)p(x∗)dx∗=a2∣RK−1+I∣−1/2exp(−21(xi−m)⊤(R+K)−1(x−ℓ))
这是关于 x ∗ x^* x∗的 k h ( x , x ∗ ) k_h(x, x^*) kh(x,x∗)的期望。这里, K K K是一个对角矩阵,其条目为 ℓ 1 2 , … , ℓ n x 2 \ell_1^2, \ldots, \ell_{nx}^2 ℓ12,…,ℓnx2,其中 ℓ k , k = 1 , … , n x \ell_k, k = 1, \ldots, nx ℓk,k=1,…,nx为特征长度尺度。注意,方程(17)中的预测均值 n n n明确依赖于不确定输入 x ∗ x^* x∗的均值和协方差。预测分布 p ( h ( x ∗ ) ) p(h(x^*)) p(h(x∗))的方差表示为 c 2 c^2 c2,由下式给出:
c 2 = E x ∗ [ m h ( x ∗ ) 2 ] + E x ∗ [ s h ( x ∗ ) 2 ] − [ E x ∗ [ m h ( x ∗ ) ] ] 2 = b ⊤ L b + a 2 − tr [ ( K + σ e 2 I ) − 1 L ] − n 2 c^2 = \mathbb{E}_{x^*}[m_h(x^*)^2] + \mathbb{E}_{x^*}[s_h(x^*)^2] - [\mathbb{E}_{x^*}[m_h(x^*)]]^2 = b^\top L b + a^2 - \text{tr}[(K + \sigma_e^2 I)^{-1} L] - n^2 c2=Ex∗[mh(x∗)2]+Ex∗[sh(x∗)2]−[Ex∗[mh(x∗)]]2=b⊤Lb+a2−tr[(K+σe2I)−1L]−n2
其中
L i j = k h ( x i , ℓ ) k h ( x j , ℓ ) ∣ R K − 1 + I ∣ 1 / 2 exp [ ( z i j − ℓ ) ⊤ ( R + K ) − 1 R K − 1 ( z i j − ℓ ) ] L_{ij} = k_h(x_i, \ell) k_h(x_j, \ell) | R K^{-1} + I |^{1/2} \exp\left[(z_{ij} - \ell)^\top (R + K)^{-1} R K^{-1} (z_{ij} - \ell)\right] Lij=kh(xi,ℓ)kh(xj,ℓ)∣RK−1+I∣1/2exp[(zij−ℓ)⊤(R+K)−1RK−1(zij−ℓ)]
和 z i j : = 1 2 ( x i + x j ) z_{ij} := \frac{1}{2}(x_i + x_j) zij:=21(xi+xj)。同样,预测方差明确依赖于不确定输入 x ∗ x^* x∗的均值和协方差矩阵。