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

工作邮箱:wangyuan@cuhk.edu.cn,单位个人主页:http://www.sribd.cn/teacher/656,个人主页:https://wenyuzhi.github.io/YuanWang.github.io//

49 👍 / 7 💬

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

王源:【强化学习与最优控制】笔记(十二)无限时间值函数近似

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

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

本笔记对应教材中第5章5.3的内容。由于电子版教材的内容不全,所以推荐大家购买纸质版,需购买教材的童鞋请点击


Actor-Critic 是强化学习中一个重要的算法。在教材5.3小节对 Actor-Critic 进行了一个基本介绍。

Actor(演员)可以理解为就是一个函数映射,输入state,输出action。自然也可以用神经网络来近似这个函数。这样actor的主要目的就是让整体的目标函数变小。
Critic(评委)为了训练actor,我们就需要知道actor的表现到底怎么样,根据表现来对actor进行调整。简单点说就是 (Approximate)Policy Evaluation。同样的 critic 也可以通过神经网络来近似。

1 Model-Based Variant of a Critic-Only Method

首先我这里先解释一下什么是Model-based和Model-free,这两个名词在强化学习中经常出现。事实上强化学习的算法目前就分为二大类,一个就是Model-based,另外一个就是 Model-free,这两类方法各有优缺点这里我们暂且不表,主要来说一下这两类方法的定义。这里的Model值得主要是两个:一个是系统的动态方程 也就是转移概率矩阵 p_{ij} ,一个就是reward function里的stage cost g(i,u,j) 。Model-based 的意思是我必须知道 系统动态 p_{ij} 和 stage cost g(i,u,j) 的表达式才行。即使对于一些问题没法直接知道 p_{ij}g(i,u,j) 我也要通过辨识的方法或者learning的方法去近似得到一个 p_{ij}g(i,u,j) ,然后基于这个model再来做强化学习算法。Model-free就与之相对了,无需采用 p_{ij}g(i,u,j)的表达式即可。

如下图所示是 Model-Based Variant of a Critic-Only Method 的基本流程:

\tilde{J}_{\mu}(i,r) 是对 \tilde{J}_{\mu}(i) 的参数化的近似, (i^s,\beta^s),s=1,...,q 为训练集。

Critic step:实际上就是 Approximate Policy Evaluation,通过对 cost function 进行采样来近似的评价当前 Policy 的好坏。通过如下的回归问题来更新参数 r

r^*=\underset{r}{\text{argmin}}\sum_{s=1}^q{\left( \tilde{J}_{\mu}\left( i^s,r \right) -\beta ^s \right) ^2} (1.1)

\tilde{J}_{\mu}\left( i^s,r \right) 可以是一个线性函数,也可以是一个神经网络或者任意一个机器学习的模型。若 \tilde{J}_{\mu}\left( i^s,r \right) 是一个线性函数的话,那么上式中的优化问题实际上是一个线性最小二乘的问题。这个优化问题是可以得到解析解的。若 \tilde{J}_{\mu}\left( i^s,r \right) 是一个非线性函数或者神经网络之类的比较复杂的形式,则上式中的优化问题一般来说会是一个非线性规划问题。那么这样的非线性规划问题想要精确求出最优解是比较困难的。

因此在很多时候我们并不一定需要完全精确的求解式(1.1)的优化问题。那我们也可以考虑采用Incremental method 来更新参数 r

r^{k+1}=r^k-\gamma ^k\nabla \tilde{J}\left( i^{s_k},r^k \right) \left( \tilde{J}\left( i^{s_k},r^k \right) -\beta ^{s_k} \right) (1.2)

其中 \gamma^k 是更新步长。

Actor step:实际上就是基于 Lookahead minimizing 来更新得到下一步的 Policy,如下所示:

\mu ^{k+1}\left( i \right) \in\underset{u\in U\left( i \right)}{\text{argmin}}\sum_{i=1}^n{p_{ij}\left( u \right) \left( g\left( i,u,j \right) +\alpha J_{\mu ^k}\left( j \right) \right)},\,\,\,\,i=1,...,n (1.3)

或者可以采样一部分状态来更新下一步的Policy,如下所示:
u^s\in \underset{u\in U\left( i \right)}{\text{argmin}}\sum_{j=1}^n{p_{i^sj}\left( u \right) \left( g\left( i^s,u,j \right) +\alpha J_{\mu ^k}\left( j \right) \right)} (1.4)

其中 s=1,..,q

从式(1.3)和(1.4)不难看出我们这里的方法确实是Model-based的方法,因此在更新Policy的时候我们需要知道  p_{ij} 和 g(i,u,j) 才能进行Policy的迭代更新。

需要注意的是教材5.3节目前只涉及 Value function的参数化近似,而在 Policy 这边先不考虑参数化近似的情况。本节我们是通过式(1.3)或者(1.4)来直接得到 Policy 。所以本节的内容可能和常见的强化学习的Actor-Critic有点区别。关于参数化 Policy的内容讲在教材5.7小节中补充介绍。

2 Model-Free Variant of a Critic-Only Method

如下图所示是 Model-Free Variant of a Critic-Only Method 的基本流程:

对比上一小节Model-Based的算法流程图我们不难发现,算法流程是一样的,都是有Critic和Actor两大步骤,然后循环迭代更新。主要不同点在于 Model-Free 采用的是 Q function 来做 Critic和Actor的,Model-Based 采用的是 Value function 来做 Critic和Actor的。

同样的把Q function 进行参数化近似可得 \tilde{Q}(i,u,r) ,其中 r 是模型参数。训练集为 (i^s,u^s,\beta^s),s=1,...,q

Critic step:实际上就是 Approximate Policy Evaluation

r^*=\underset{r}{\text{argmin}}\sum_{s=1}^q{\left( \tilde{Q}_{\mu}\left( i^s,u^s,r \right) -\beta ^s \right) ^2} (2.1)

式(2.1)和式(1.1)类似,只需将原来的值函数替换为Q函数即可。

Actor step:如下所示

\mu \left( i \right) \in \underset{u\in U\left( i \right)}{\text{argmin}}\tilde{Q}_{\mu}\left( i,u,r \right)  (2.2)

对比式(1.3)和(1.4)我们发现式(2.2)并不需要知道  p_{ij} 和 g(i,u,j) 就能进行Policy的迭代更新。这也是我们一开始所说的Model-Based和Model-Free的根本区别。

下一期笔记:

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


专栏:运筹学与控制论