第三章:基于模型的动态规划方法

3.1 基于模型的动态规划方法理论

强化学习可以归结为序贯决策问题。即找到一个决策序列,使得目标函数最优。

强化学习可以用动态规划的思想求解,要使用动态规划,需要满足两个条件:

  1. 整个优化问题可以分解为多个子优化问题;

  2. 子优化问题可以被存储和重复利用。

强化学习中动态规划的核心是寻找最优值函数。对于状态值函数的迭代公式:

vπ(s)=aAπ(as)(Rsa+γsSPssavπ(s))v_{\pi}(s)=\sum_{a\in A}\pi(a|s)(R_s^a+\gamma \sum_{s' \in S}P_{ss'}^a v_\pi (s'))

在模型已知的情况下,方程中的PssaP_{ss'}^aγ\gammaRsaR_s^a都是已知数,π(as)\pi(a|s)是要评估的策略,所以也是已知的,x=yx = y表示后继状态的值函数。由此可见,方程中唯一的未知数是值函数,所以上面方程是关于值函数的线性方程组,其未知数的个数是状态的总数,用S|S|表示。此处,可以用高斯-赛德尔方法求解:

vk+1(s)=aAπ(as)(Rsa+γsSPssavk(s))v_{k+1}(s) = \sum_{a \in A}\pi(a|s)(R_s^a+\gamma\sum_{s'\in S}P^a_{ss'}v_k(s'))

策略评估算法

网格世界的例子,需要补充两点

  1. 衰减系数γ=1\gamma = 1

  2. 对于边界情况,用当前位置的值补充遍历无方向的值

更详细的可以参考知乎讨论

两个重要代码:

  1. 边界处理

  1. 更新规则

得到更新后的值函数后,贪心算法是一种最常见的策略改善算法,即πl+1(s)argmaxaqπl(s,a)\pi_{l+1}(s) \in argmax_a q^{\pi_l}(s,a)

至此,已经可以得到策略改善算法

策略改善算法

不一定要等到策略值函数收敛之后再进行策略改善。如果我们在评估一次之后就进行策略改善,则称之为值函数迭代算法。

3.2 动态规划中的数学基础讲解

3.2.1 线性方程组的迭代解法

状态值函数的计算公式

vπ(s)=aAπ(as)(Rsa+γsSPssavπ(s))v_{\pi}(s)=\sum_{a\in A}\pi(a|s)(R_s^a+\gamma \sum_{s' \in S}P_{ss'}^a v_\pi (s'))

是一个线性方程组,求解线性方程组有直接法和简介迭代法。策略评估中采用的是迭代解法。

什么是迭代解法

一般的线性方程组可以表示为:

AX=bAX=b

所谓迭代解法就是根据上式设计一个迭代公式,代入初始值X(0)X^{(0)},将其代入迭代公式得到X(1)X^{(1)},再代入X(1)X^{(1)}得到X(2)X^{(2)},如此循环直到收敛到XX

求解迭代公式有两种解法:

(1)雅克比迭代法

(2)高斯-赛德尔迭代法

3.2.2 压缩映射证明策略评估的收敛性

不动点和压缩映射常用来解决代数方程,微分方程,积分方程等,为方程解的存在性,唯一性和讨论迭代收敛性证明提供有力的工具。

定义:设X是度量空间,其度量用ρ\rho表示。映射T:XXT:X\rightarrow X,若存在aa0a<10 \leq a < 1使得ρ(Tx,Ty)ρ(x,y),x,yX\rho(Tx, Ty) \leq \rho(x,y), \forall x,y \in X,则称T是X上的一个压缩映射

若存在x0Xx_0 \in X使得Tx0=x0Tx_0 = x_0,则称x0x_0TT不动点

定理1:完备度量空间上的压缩映射具有唯一的不动点。

定理1是说:从度量空间任何一点出发,只要满足压缩映射,压缩映射的序列必定会收敛到唯一的不动点。所以可以通过证明压缩映射来评估策略的收敛性。

3.3 基于gym的变成实例

下面给出重要函数的代码片段

策略迭代方法

策略改善方法

值迭代算法

3.3 最优控制与强化学习比较

最优控制的计算方法分类如下图

间接法:是指首先利用变分法,最大值原理或者动态规划方法得到求解最优解的一组微分方程,之后,利用数值求解方法求出此微分方程的解,此解即为原最优问题的解

直接法:直接在可行控制集上搜索,找到最优的解

  1. 将状态变量和控制变量参数化,将最优控制问题转换为参数优化问题

  2. 引入空间中的內积和泛函的梯度,将静态的优化方法推广导函数空间中

最优控制和强化学习的联系

在基于模型的强化学习中,智能体会先利用交互数据拟合一个模型,有了模型,我们就可以利用最优控制的计算方法计算当前最优解,产生当前的最优控制率。智能体会利用当前的最优控制率与环境交互,进一步优化行为。

Last updated

Was this helpful?