【强化学习与最优控制】笔记(十四)Q-Learning,TD 与 近似线性规划

算法话题下的优秀答主

30 👍 / 4 💬

上一期笔记,忘记的童鞋可以复习一下:

王源:【强化学习与最优控制】笔记(十三)Actor-Critic Methods

如需获取电子版教材的同学可以从如下链接中获取:

Dimitri P. Bertsekas 强化学习2021版教材和视频课程推荐

这期笔记是我们这个系列最后一期,教材第6章主要是讲Aggregation,我不准备再写笔记了。另外第五章还有一点小尾巴也不准备更新了,主要原因在于进入第五章之后我对强化学习部分的理解十分有限,自然也写不出新东西了。后边有时间的话 我会先小补一下随机过程的内容,然后开始读 正经的强化学习圣经教材:Reinforcement learning: An introduction,就是Sutton那本教材了。相信接触过强化学习的童鞋都知道这本书的分量了。这本教材和我们现在笔记的教材虽然都是讲强化学习,但是看待问题的角度有着很大的不同。我目前还不能把这两个不同角度完全融会贯通,期待在下一系列的笔记中能有所进展。

本笔记对应教材中第5章5.4-5.6的内容。如需购买教材的童鞋请点击:

强化学习与最优控制(英文版)

本节笔记三个主题:1 Q-Learning;2 Temporal differences (TD);3 近似线性规划。

1.1 Exact Q-Learning

先回顾一下 对于discount的问题最优的Q函数:

[公式] (1.1)

教材4.3节中给出了Q函数满足如下表达式:

[公式] (1.2)

为了简便起见我们为Q函数 定义[公式] 为 Bellman operator

[公式] (1.3)

采用Q函数的值迭代算法可以简单表示为:[公式]

和值函数迭代类似,我们在每次从[公式][公式] 对Q函数进行迭代的过程也可以采样一部分状态和控制变量来进行迭代,也就是对式(1.3)的迭代公式进行一个改进:

[公式] (1.4)

其中

[公式] (1.5)

从上式可知每次迭代仅仅是更新一个采样点即可。

想要保住式(1.4)(1.5)的算法收敛一般需要两方面的条件:1是所有的[公式] 对可以产生无限长的样本序列 [公式] ,2是迭代步长 [公式] 需满足一下条件:

[公式] (1.6)

式(1.6)的步长条件经常会在优化问题步长中出现,直观上的意思是步长既不能太大也不能太小。

在实际问题中Exact Q-Learning的算法缺点也是非常明显的,状态变量和控制变量[公式] 的数量往往是非常大的,这会导致计算量过大。下面我们介绍Approximation Q-Learning 算法。

1.2 Approximation Q-Learning 之 SARSA

在上一节的笔记中我们实际上通过Model-Free Critic-Only Method 里已经介绍了 关于Q函数的参数化近似。忘记的同学可以复习一下:

王源:【强化学习与最优控制】笔记(十三)Actor-Critic Methods

那我们这里的 Approximation Q-Learning 除了上面提到的 通过参数化来近似Q函数以外,还要通过采样的方法来近似优化问题的迭代求解。下面直接给出算法流程:

Step 1: 运行仿真环境 当前状态转移到下一个状态[公式]

Step 2:极小化当前近似Q函数得到下一拍的控制变量,如下所示:

[公式]

Step 3:更新近似Q函数的参数:

[公式]

Step 4:[公式] 都已经得到了,同时令 [公式] 跳转Step1继续。

由于上面这个算法首先会得到下一个state,然后得到下一个action,接着通过对reward函数采样的极小化来更新Q函数的参数。所以这个算法也被称为 SARSA (State-Action-Reward-State-Action)

2.1 Projection by Monte Carlo Simulation

在这一小章节里我们将问题聚焦于采样线性函数来参数化近似 Policy evaluation 的过程。

首先定义一个子空间[公式]

其中[公式] 是一个 [公式] 的矩阵,我们用 [公式] 表示 [公式] 矩阵第 [公式] 列。

我们将 Value function[公式] 投影到子空间 [公式] 上,相当于是在子空间 [公式] 上找到一个对 Value function 的最好的近似。有如下表达式:

[公式] (2.1)

上式中之所以有[公式] 可以理解为加权的二范数。式(2.1)实际上就是在做投影,为了后边简便起见我们也用 [公式] 表示将函数 [公式] 投影到子空间 [公式] 上。

式(2.1)所构成的问题是一个二次凸优化问题,直接通过求导就可以得到最优解:

[公式] (2.2)

从上式中可以看出 如果[公式] 比较大的话就很花费很多计算时间,那么通过上式直接求最优的方式就可能会很慢。

因此我们可以采用蒙特卡洛实验的方式来做一个近似:

[公式] (2.3)

[公式] (2.4)

其中[公式] 是通过仿真实验对 [公式] 的近似。

通过式(2.3)(2.4)的蒙特卡洛实验的近似之后,我们将式(2.2)重新改写为:

[公式] (2.5)

将上式和式(2.1)对比就会发现实际上,上式也可以理解为对式(2.1)中[公式] 个求和中采样出一个 [公式] 个样本的子集。

2.2 Temporal differences (TD)

在2.1小节中我们实际上还是近似的是Value function,进一步我们也可以考虑直接近似 Policy Evaluation之后的函数,也就是[公式] ,用投影的方式简便表达如下:

[公式] (2.6)

进一步采用线性函数对[公式][公式] 进行近似 带入到上式可得:

[公式] (2.7)

其中[公式]有如下定义:

[公式] (2.8)

上式可以理解为 mulitstep 的 Bellman equation,当[公式] 的时候上式退化为 Bellman equation。那么接下来的关键问题在于如何求解方程(2.7),很明显由于 [公式] 这一项的存在导致方程(2.7)是一个非线性方程,一般情况下很难有解析解。因此首先通过采样的方式来近似 [公式] ,然后构造出如下的优化问题:

[公式] (2.9)

上式的优化问题是一个最小二乘问题,易知该优化问题有解析解。对该优化问题的求解大致有2个思路,1是直接采用解析解的形式该方法称之为 LSTD 方法,2是采用迭代算法,每次只从多个样本中选取一个出来更新参数 称之为 TD方法。这一思想在前面已经出现过好几次了,详细过程就不赘述了,可参考教材5.5小节。

3 Exact and Approximate Linear Programming

让我们的目光再次回答动态规划的问题中,在动态规划中我们关键的问题在于求解 Value function,而 最优的 Value function满足 Bellman equation:

[公式] (3.1)

通过 Bellman equation的启发,我们构造如下线性规划问题,这个线性规划问题的解和 Bellman equation的解是一样的:

[公式] (3.2)

s.t.[公式] (3.3)

首先我们先说明上面这个线性规划问题的解就是Bellman equation的解。从约束(3.3)可以看出线性规划的解是原来 Bellman equation 解的下界,同时从目标函数(3.2)可知我们是要在下界中找到一个最大的。易知这个最大的下界就是让约束(3.3)都取等号。由此可知上面(3.2)和(3.3)的线性规划的解就是 Bellman equation (3.1)的解。

分析上面的线性规划问题可以看出,线性规划约束的数量就是状态变量乘以控制变量的数量[公式] ,若状态变量数量很大,这就会导致该线性规划问题约束过多 求解比较困难。若我们采用如下函数近似 Value function:

[公式] (3.4)

其中[公式] 是函数, [公式] 为参数。

将式(3.4)带入到(3.2)和(3.3)的线性规划,得到新的线性规划问题:

[公式] (3.5)

s.t.[公式] (3.6)

线性规划问题的决策变量为[公式] ,一般来说参数 [公式] 的维数是远小于状态变量数量 [公式] 。其中集合 [公式] 可以选择为状态变量的子集。相比原来的线性规划问题(3.2)和(3.3),也可以在一定程度上减少约束的数量。


专栏:运筹学与控制论