关于有限马尔可夫模型的一些探讨

背景

有限马尔可夫模型,即有限的状态间可通过有限的动作进行转移,并且转移情况只与上一个情况有关。本文将状态空间记为 S,动作空间记为 A,其笛卡尔积 S×A 即为状态-动作空间。用 T(ss,a) 表示在 s 状态下采取动作 a 后转移到 s 状态的概率。

此外,每一次转移还附带一个收益 r(s,a)。需要注意的是,如果存在终止环境 t,应该把 r(t,) 均设为 0,即拒绝在终止状态进行行动。

在上述的模型上,强化学习要找到一个策略 π(a|s) 表示在状态 s 下采取状态 a 的概率。根据 π 可以定义状态-动作估价函数:

Qπ(s0,a0)=r(s0,a0)+i=1γiEsi,ais0,a0,π[r(si,ai)],γ(0,1)

利用状态-动作函数,我们可以评估策略 π

η(π)=Esξ,aπ(s)[Qπ(s,a)]

其中 ξ 表示初始环境分布。

状态-动作估值函数满足贝尔曼方程:

Qπ(s,a)=r(s,a)+γEsT,aπ[Qπ(s,a)]

已经证明,对于给定的 π,可以通过迭代上式的方法得到正确的 Qπ

强化学习的目的,是学习最优的 π

π=argmaxπη(π)

已经证明,最优的 π 满足最优贝尔曼方程:

Q(s,a)=r(s,a)+γEsT,aπ[Q(s,a)]=r(s,a)+γEsTmaxaQ(s,a)

已有的 π 求解方法是根据策略提升定理,迭代以下步骤:

π(a|s){1, a=argmaxaQπ(s,a)0, otherwise

本文将从线性代数的角度出发,重新推导以上结果,并且给出一种新的策略优化方法。

符号与约定

上述函数都可以写成矩阵的形式:

TR|S×A|×R|S|,[T](s,a),s=T(ss,a)rR|S×A|,[r](s,a)=r(s,a)qπR|S×A|,[qπ](s,a)=Qπ(s,a)πR|S×A|,[π](s,a)=π(as)ξR|S|,[ξ]s=P(s0=s)

为了表示方便,记 ER|S×A|×R|S×A| 为矩阵 T 的一个扩展,满足 [E](s,a),(s,a)=[T](s,a),sεR|S×A| 为向量 ξ 的一个扩展,满足 [ε](s,a)=[ξ]s

策略评估的矩阵形式

迭代解法

贝尔曼方程,即 (3) 式,可以写成如下形式:

[qπ1]=[γEdiag(π)r1][qπ1]

[qπ,1]T|S×A|+1 维的向量。

将中间转移矩阵记为 A。由于 AI 的最后一行为空,所以 |AI|=0,即 A 的一个特征值为 1 。

对任意 q 迭代 (8),即:

[qn1]=A[qn11]

下面证明 limnqn=qπ :

证明:

qn=qπ+rn,则:

[qπ+rn1]=An[qπ+r01]=An[qπ1]+An[r00]=[qπ+(γEdiag(π))nr01]rn=(γEdiag(π))nr0rnγEdiag(π)nr0

注意到 [γEdiag(π)](s,a),(s,a)=γP(s,as,a),因此其行和为 γ<1。所以:

limnrn=0limnrn=0limnqn=qπ

证毕。

封闭解法

根据谱半径的性质:

ρ[γEdiag(π)]γEdiag(π)=γ<1

所以 γEdiag(π) 的所有特征值大小都小于一。则:|γEdiag(π)I|0

又由于 [qπ,1]T=A[qπ,1]T,有:

qπ=γEdiag(π)qπ+rqπ=(IγEdiag(π))1r

在实践中,注意到 IγEdiag(π) 是极为稀疏的,只有至多 2|SA| 个元素,可以利用稀疏性优化矩阵求逆。

策略优化

(2) 式重写,得到:

η(π)=πTdiag(ε)qπ

注意 π 是有限制的:s,aπs,a=1。不能直接优化。

考虑维护一个无限制的 π,令 π(s,)=Softmax(π(s,)),即对每个状态的不同动作进行 Softmax 操作。这样,问题就转化为了对于 π 的无约束优化问题。本文实现了一些常见的无约束优化方法。

基于梯度的优化

IγEdiag(π)=M。要最大化 η(π),考虑计算 ηπ

ηπ=diag(ε)q+(M1E)Tdiag(ε)π

π 可以由 π 反向传播得到。基于此,我们可以采用 SGD、Adam 等方法优化 π。带动量的优化算法亦可应用。

由于 (12) 式封闭的形式,牛顿法亦可应用,但是其形式过于复杂,没有实践意义。拟牛顿法也与牛顿法有相近的问题,不适合直接优化。

非梯度的优化

各种数值优化的方法都可以引用。通过实践,我们发现模拟退火算法表现较好。

此外,根据策略提升定理直接对 π 进行优化也是可行的。

实验与讨论

我们选取 grid-world 这一经典背景,在 n×m 的网格中要求智能体从任意一格开始,沿网格走到右下角。每经过一格都有一个代价 ci,j,智能体需要最小化总代价。这是一个最短路问题,所以我们可以方便地判断智能体的行动是否最优。

下面给出环境模拟代码:

接下来,我们实现了基于本文给出的线性代数背景的智能体实现代码。其中实现了模拟退火、SGD、策略提升等多种优化算法:

另外,我们一并实现了传统的 Q-Learning 算法如下:

实验结果用图表展示。每迭代一段时间,就会进行一次测试,即从随机初始位置开始让智能体与模拟器交互,记录智能体所花费代价与最短代价的差值。差值越小,智能体越优。

下面给出在 10×10 网格下实验的结果: 使用模拟退火优化

使用 SGD 优化
使用策略提升定理优化

注意到数值优化算法都受到了非凸优化的限制,在最小值周围波动。但是梯度和非梯度的优化原理不同,可以互补,我们可以把两者方法结合使用,先使用非数值优化,在最小值附近再采用用梯度优化:

结合方法优化

另一方面,在实践中注意到虽然基于策略提升定理的迭代轮数很少,但是由于矩阵求逆的高复杂度,所需时间难以接受。

但是,综合之前的分析,我们知道迭代法和求逆法是相近的方法。我们可以使用有限的 qn 来代替 qπ。上述代码中也实现了替代方法,用 q5 作为 q 的近似。

为了凸显时间差距,让网格变大为 20×20,虽然近似法收敛所需轮数更多,但是时间却远短于求逆,仅用 6 秒就完成了求逆法 12 秒的计算。对比结果如下:

求逆法
近似法

当网格大小变为 30×30,近似法的优势完全体现。此时求逆法计算时间大于30秒,但是近似法在 16 秒就收敛,和 Q-Learning 所用的 14 秒不相上下,并取得了更优的收敛效果。

近似法
Q-Learning

总结

使用线性代数的方法,摆脱了基于泛函分析的收敛性证明,让算法更加明了。上文提到的迭代法和近似法可证明等价为策略提升和价值提升;不过由本文导出的新无约束优化思路,虽然在确定性问题上难与传统方法竞争,却可以在高维空间中与降维等方法充分配合,达到类似 DQN 的效果。