《强化学习与最优控制》学习笔记(五): 值空间近似的一般问题与方法

写在前面的

前一章链接:

《强化学习与最优控制》学习笔记(四): Model-Based 与 Model-Free Implementation以及Off-line 与 On-line Method概述

这章我们将比较详细地介绍值空间近似的一些方法,对应书中的2.1.1节和2.1.3-2.1.6节的内容。

值空间近似的一般问题(General issue of approximation in value space)

在之前的讨论中我们用值空间近似,通过下面的lookahead minimization来获取次优策略 \tilde{\mu}_k :

那么在值空间近似方案中就有两个主要问题:

(1)求lookahead functions  \tilde{J}_k ,也就是求下图的右边部分。

(2)控制的选择,也就是求下图的左边部分,如何近似期望和获取最小值。

我们首先粗略地讲计算 \tilde{J}_k 的这一部分,详细地会在后面分开介绍:

(a)问题近似(Problem approximation):这就是把优化问题给简化,让计算变得更加容易。简化可以包括,利用可分解结构,忽略各种类型的不确定性,以及减少状态空间的大小。主要会在2.3也讨论。

(b)在线近似优化(On-line approximation optimization): 这一类方法就是在线地获取Cost-to-go值的近似。比如模型预测控制和Rollout算法。

(c)参数成本近似(Parametric cost approximation):就是 \tilde{J}_k 会有一个额外的参数 r_k ,而r_k 通常是由 x_k 的显著特征来获得的。最典型的方法就是用神经网络来近似 \tilde{J}_k ,那么这个 r_k 就是神经网络的训练后的权重。

(d)聚类(Aggregation):这是一种特殊但相当复杂的问题近似形式(a)。其基本思想是通过合并state,进而达到降低状态变量维度的目的,进而降低计算量。

Model-based Simplification of the Lookahead Minimization

 现在我们考虑在 x_k 下通过lookahead minimization来方便计算次优策略 \mu_k(x_k) 的方法

在 Model-based下,我们会假设能得到系统的数学模型,也就是 g_k 和 f_k 以及给定(x_k,\mu_k)下条件概率分布 w_k 是已知的。那么关键问题就是怎么计算这个期望和最小值。

首先我们来讲怎么计算期望,这里我们用到一种叫certainty equivalence的方法,也就是用一个典型的值 \tilde{w}_k 来代替某个分布下的w_k,比如在均值为0的正态分布中我们可以用均值0来代替这个w_k(因为是近似,所以可以这么做),那么这样就把随机性问题转化成了确定性问题:

相关的内容及其变式会在章节2.3里更详细地说明。

之后我们考虑如何取最小值的问题,当然如果 U_k(x_k) 是一个有限的集合,我们就可以通过暴力的方式,也就是一个一个找和比较来获得,这就肯定要花费很多时间。我们可以用并行计算或者整数规划的方法,当然也有一些其它的方法,这里只是粗略地介绍。

而如果 U_k(x_k) 是一个无限的集合,那么可以用离散化或者非线性规划的方法来解决。

对于随机问题,无论是one-step或者multistep lookahead问题,还是连续控制空间问题,与线性和非线性规划方法相关的随机规划方法也可能有用。

Model-Free Q-Factor Approximation in Value Space

那当我们得不到系统的数学模型的时候呢?

在本节中,我们考虑在随机问题中,如何从Model-based的策略实现过渡到Model-Free策略实现。我们假设:

(a)存在一个仿真的程序,能够针对系统中任意给定的状态 x_k 和控制 u_k \in U_k(x_k),模拟出下一个状态 x_{k+1} 和产生相应的状态转移成本cost。而且对应的状态转移概率是可以通过采样估计出来的。

(b)成本函数近似 \tilde{J}_{k+1} 是可以得到的。以Model-Free获得 \tilde{J}_{k+1} 的方法将在稍后讨论。

我们知道,值函数近似的期望部分也叫做Q-Factors:

给定状态 x_k ,我们可以通过仿真器用每一对(x_k,u_k)来计算所有的Q-Factors,然后选取最小值对应的控制,但是这样很花费时间。所以我们引入了一个参数 r_k

\tilde{Q}_{k}(x_k,u_k,r_k)

其中r_k是参数向量,用来近似上式的期望值。

总的步骤如下:

假设给定任意的 x_{k+1}\tilde{J}_{k+1}(x_{k+1}) 都是已知的:

(a)用仿真器收集大量的数据(x_k^s, u_k^s, x_{k+1}^s, g_k^s)和相应的Q-Factors:

\beta_k^s = g_k^s + \tilde{J}_{k+1}(x_{k+1}^s)         s = 1,...,q.

这里 x_{k+1}^s 是仿真器输出的下一个状态:

x_{k+1}^s = f_k(x_{k}^s, u_{k}^s, w_{k}^s)

相对应的:

g_{k}^s =g_k(x_{k}^s, u_{k}^s, w_{k}^s)

 整个收集过程如下:

(b)用最小二乘法计算参数 \bar{r}_k :

(c)得到策略:

其实这个步骤已经很像现在用的深度强化学习的方法了,前面步骤有一些要点需要注意的:

 (1)基于Model-Free的方法主要是基于Monte Carlo模拟,这在之前的文章中有提及,它不需要像Model-based方法那样要知道很多东西。它只需要在仿真器中收集样本,然后通过最小二乘法计算Q-Factors的参数,并且通过最小化Q-Factors得到策略。

 (2)这种方法需要近似两个东西:\tilde{J}_{k+1} 和  \tilde{Q}_{k},获得这两个近似值的方法有很多种,并不一定相关。

 (3)我们已经讨论了两种获得策略的方法,一种是这种Q-Factors minimization:

另一种是这种Q-Factors minimization: 

这两种方法其实是不一样的,前者近似的error是来自于引入 \tilde{Q}_{k},而后者是来自于有限样本回归引入的simulation error。

Approximation in Policy Space on Top of Approximation in Value Space

和值空间近似相似,在策略空间中,一个常用的近似方法是引入一个参数 r_k,即 \tilde{\mu}_k(x_k,r_k) 。

在策略空间中,参数近似的一般方案是获得大量的样本状态控制对(x_k^s,u_k^s),s = 1,...,q. 然后可以通过求解最小二乘/回归问题来选择参数r_k :

其中 u_k^s 应当是在状态 x_k^s 之下一个相对不错的控制量,这样求近似才能得到不错的效果(如果近似个差的会导致效果变差)。所以这个 u_k^s 可以是一些专家演示时的控制量,这种方法通常会涉及监督学习(supervised learning)

我们还可以将其同值空间近似的方法联系起来,也就是 u_k^s 通过lookahead minimization来获得:

甚至可以更直接,直接用上一小节的Q-Factor minimization:

也就是说,我们通过值空间近似的方法收集了大量样本状态控制对(x_k^s,u_k^s),s = 1,...,q. 然后再近似策略空间。

这种方法的一个主要优点是,一旦获得参数化的策略,策略的在线执行是快速的,不涉及大量的计算,比如用神经网络来做近似的话,将当前状态输入就能直接输出对应的策略。

When is Approximation in Value Space Effective?

那问题来了,我们说了那么久值空间近似的方法,那什么才算是好的近似呢?一个最直观的想法当然就是近似的 \tilde{J}_k 与最优的 J^{*}_k 越接近越好。虽然这在一定程度上保证了近似的质量,但事实上不够准确。

比较准确地衡量近似质量的一个指标是如果近似的 \tilde{J}_k(x_k) 和最优的 J^{*}_k(x_k) 永远相差一个恒定的常数值,那么就可以说则通过值空间近似得到的策略是最优的,即对于所有状态对 x_k 和 x'_k,都有:

注意这里的 k+l 是写错了,书里已经做了修订。这里我觉得调换下位置比较容易理解:

 J_k^*(x_k) -\tilde{J}_k(x_k) = J_k^*(x'_k) -\tilde{J}_k(x'_k)

还有一种较准确地预测次优策略质量的指标是:

当 u 变化时Q-Factor逼近误差 Q_k(x_k,u) - \tilde{Q_k}(x_k,u)变化地慢,这里 Q_k 和 \tilde{Q_k} 表示准确的最优Q-Factor 和它的近似。证明:

我们假设在状态 x_k 时通过值空间近似的方法我们得到了其\tilde{Q_k}最小值时的控制 \tilde{u}_k,而实际上 u_k 才是其Q_k最优的控制,那么我们就有: 

 如果 \tilde{u}_k 与 ​​ u_k 相差很大,那么其两式相加的结果:

也会相差很大,所以 Q_k(x_k,u) - \tilde{Q_k}(x_k,u) 就会变化地很剧烈,也就是其斜率会比较大,比较容易理解的说法就是我们把 Q_k(x_k,u) - \tilde{Q_k}(x_k,u) 看作y,其自变量为u,其斜率会比较大就是证明  \tilde{u}_k 与 ​​ u_k 相差很大,近似的效果不好。也可以从另一个角度理解,当 Q_k 与 \tilde{Q_k}的斜率相似时近似的效果会好,这两种角度可以从下图看出来:

猜你喜欢

转载自blog.csdn.net/qq_42286607/article/details/123601235