策略改进案例

  强化学习的目的是寻找最优策略。其中涉及两个核心概念最优状态值和最优策略,和一个工具:贝尔曼最优公式。
  首先,我们给出一个熟悉的例子,了解贝尔曼方程是如何改进策略的。
在这里插入图片描述
根据给出的策略,我们很容易得到贝尔曼方程如下:
vπ(s1)=−1+γvπ(s2)v_π(s_1)=-1+γv_π(s_2)vπ(s1)=1+γvπ(s2)vπ(s2)=+1+γvπ(s4)v_π(s_2)=+1+γv_π(s_4)vπ(s2)=+1+γvπ(s4)vπ(s3)=+1+γvπ(s4)v_π(s_3)=+1+γv_π(s_4)vπ(s3)=+1+γvπ(s4)vπ(s4)=+1+γvπ(s4)v_π(s_4)=+1+γv_π(s_4)vπ(s4)=+1+γvπ(s4)
γ=0.9γ=0.9γ=0.9 时,求得
vπ(s4)=vπ(s3)=vπ(s2)=10vπ(s1)=8v_π(s_4)=v_π(s_3)=v_π(s_2)=10 \quad v_π(s_1)=8vπ(s4)=vπ(s3)=vπ(s2)=10vπ(s1)=8
  知道了 state value 那么可以求得 action value ,以状态s1s_1s1 为例,结果如下:
qπ(s1,a1)=−1+γvπ(s1)=6.2q_π(s_1,a_1)=-1+γv_π(s_1)=6.2qπ(s1,a1)=1+γvπ(s1)=6.2qπ(s1,a2)=−1+γvπ(s2)=8q_π(s_1,a_2)=-1+γv_π(s_2)=8qπ(s1,a2)=1+γvπ(s2)=8qπ(s1,a3)=0+γvπ(s3)=9q_π(s_1,a_3)=0+γv_π(s_3)=9qπ(s1,a3)=0+γvπ(s3)=9qπ(s1,a4)=−1+γvπ(s1)=6.2q_π(s_1,a_4)=-1+γv_π(s_1)=6.2qπ(s1,a4)=1+γvπ(s1)=6.2qπ(s1,a5)=0+γvπ(s1)=7.2q_π(s_1,a_5)=0+γv_π(s_1)=7.2qπ(s1,a5)=0+γvπ(s1)=7.2
  通过上面计算和直观感受,我们知道这个策略是不好的,那么当策略不好时我们应该如何改进策略呢?这就得依赖 action value 。我们可以将当前的策略用数学形式表达出来,如下:
π(a1∣s1)={1a=a20a≠a2π(a_1|s_1)=\left\{ \begin{matrix} 1 \quad a=a_2\\ 0 \quad a≠a_2\\ \end{matrix} \right.π(a1s1)={1a=a20a=a2

  通过计算前面以状态 s1s_1s1 为例得到的 action value 可知 qπ(s1,a3)q_π(s_1,a_3)qπ(s1,a3) 最大,因此我们可以考虑选择 a3a_3a3 作为一个新的策略,则新的策略表达如下:
πnew(a∣s1)={1a=a∗0a≠a∗π_{new}(a|s_1)=\left\{ \begin{matrix} 1 \quad a=a^*\\ 0 \quad a≠a^*\\ \end{matrix} \right.πnew(as1)={1a=a0a=a
a=a∗a=a^*a=a 期概率为1,表明新的策略一定会选择 a∗a^*a , 而在这个例子中 a∗=maxaqπ(s1,a)=a3a^*=max_aq_π(s_1,a)=a_3a=maxaqπ(s1,a)=a3

贝尔曼最优方程:定义

  通过前面例子的计算,我们现在可以给出最优策略的定义了,定义如下:
如果vπ∗(s)≥vπ(s)foralls∈S则说明π∗是最优策略如果 \quad v_{π^*}(s)≥v_{π}(s) \quad for\quad all\quad s∈S\quad 则说明 π^*是最优策略如果vπ(s)vπ(s)forallsS则说明π是最优策略

最优策略这一定义引发了许多问题:
	最优策略存在吗?
	最优策略唯一吗?
	最优策略是随机的还是确定性的?
	如何获得最优策略?

为了回答这些问题,我们需要研究贝尔曼最优公式。
在这里插入图片描述
  上图第二式即为贝尔曼最优公式,相比与贝尔曼公式我们可以发现贝尔曼最优公式是最优策略条件下的贝尔曼公式。下面给出贝尔曼的变形形式以及向量形式,如下图:
在这里插入图片描述
  我们可以发现贝尔曼最优公式存在两个未知数 v和πv和πvπ,一个方程怎么求解两个未知数呢?我们以下列式子说明,是可以求解的。
在这里插入图片描述
在这里插入图片描述
  我们通过上面两个例子知道,如果 q(s,a)q(s,a)q(s,a) 知道,那么最大值就等于 max(q(s,a))max(q(s,a))max(q(s,a)) ,当 a=a∗=maxaq(s,a)a=a^*=max_aq(s,a)a=a=maxaq(s,a) 时,其数学表达以及条件如下: 在这里插入图片描述

贝尔曼最优方程:求解

  在解贝尔曼最优方程时,我们引入 f(v)f(v)f(v) ,其形式如下:
在这里插入图片描述
  在解上述方程前,我们引入几个概念:不动点、压缩映射

已知函数f(x),若存在x,使得f(x)=x那么点(x,f(x))就是函数f(x)的一个不动点已知函数f(x),若存在x,使得f(x)=x那么点(x,f(x))就是函数f(x)的一个不动点已知函数f(x),若存在x,使得f(x)=x那么点(x,f(x))就是函数f(x)的一个不动点设(X,dX)与(Y,dY)是度量空间,f:X→Y是映射。若存在常数k∈[0,1)使得∣∣dY−dX∣∣≤γ∣∣X−Y∣∣则称f为压缩映射,k称为压缩系数设(X,d_X)与(Y,d_Y)是度量空间,f:X→Y是映射。若存在常数k∈[0,1)使得\quad||d_Y-d_X||≤γ||X-Y||\quad 则称f为压缩映射,k称为压缩系数(X,dX)(Y,dY)是度量空间,fXY是映射。若存在常数k[01)使得∣∣dYdX∣∣γ∣∣XY∣∣则称f为压缩映射,k称为压缩系数
  有了上述两个概念,现在我们介绍Banach不动点定理 (Contraction Mapping Theorem),这是数学分析中的一个重要定理。它断言在完备度量空间中的压缩映射必定有唯一的不动点。

由Banach不动点定理可以得到以下性质:
只要满足 x=f(x)x=f(x)x=f(x) 形式的方程,如果 fff 是压缩映射,那么
  1、一定存在一个不动点x∗,使得f(x∗)=x∗一定存在一个不动点 x^* ,使得f(x^*)=x^*一定存在一个不动点x,使得f(x)=x
  2、不动点x∗是唯一存在的2、不动点x^*是唯一存在的2、不动点x是唯一存在的
  3、可以通过迭代求得不动点:xk+1=f(xk),xk≈x∗,当k趋于∞时;3、可以通过迭代求得不动点:x_{k+1}=f(x_k),x_k≈x^*,当k趋于∞时;3、可以通过迭代求得不动点:xk+1=f(xk),xkx,当k趋于;

  现在,我们可以用上面的Banach不动点定理来解贝尔曼最优方程,在解之前,我们要证明 f(v)f(v)f(v) 是压缩映射,但这里我们只给应用,证明过程感兴趣的朋友可以自己去看看。由Banach不动点定理可以知道一定存在唯一的 v∗v^*v ,并且可以通过迭代求得。
在这里插入图片描述

贝尔曼最优公式求解例子

  我们以一个简单的例子来加深理解贝尔曼方程求解过程。如下图,机械人有三个行为:向左ala_lal、向右ara_rar、原地a0a_0a0,奖励设置为r终点=+1r_{终点}=+1r终点=+1r边界=−1r_{边界}=-1r边界=1
在这里插入图片描述
  根据上面制定的规则,我们可以得到机械人的 q(s,a)q(s,a)q(s,a)
在这里插入图片描述
现在的问题是怎么求取最优状态值 v∗(si)v^*(s_i)v(si) 和最优策略 π∗π^*π
运用上面介绍的方法,取γ=0.9γ=0.9γ=0.9 ,当 k=0k=0k=0 时,我们首先随意给定一个初值
在这里插入图片描述
可以的到
在这里插入图片描述
可以看到,我们已经找到了最优策略。

最优策略的性质

  我们思考有哪些因素影响最优策略?由下列公式可知,影响最优策略的因素有 r、γ,以及模型环境r、γ,以及模型环境rγ,以及模型环境
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐