策略改进案例
强化学习的目的是寻找最优策略。其中涉及两个核心概念最优状态值和最优策略,和一个工具:贝尔曼最优公式。
首先,我们给出一个熟悉的例子,了解贝尔曼方程是如何改进策略的。
根据给出的策略,我们很容易得到贝尔曼方程如下:
v π ( s 1 ) = − 1 + γ v π ( s 2 ) v_π(s_1)=-1+γv_π(s_2) vπ(s1)=−1+γvπ(s2) v π ( s 2 ) = + 1 + γ v π ( s 4 ) v_π(s_2)=+1+γv_π(s_4) vπ(s2)=+1+γvπ(s4) v π ( s 3 ) = + 1 + γ v π ( s 4 ) v_π(s_3)=+1+γv_π(s_4) vπ(s3)=+1+γvπ(s4) v π ( s 4 ) = + 1 + γ v π ( s 4 ) v_π(s_4)=+1+γv_π(s_4) vπ(s4)=+1+γvπ(s4)
当 γ = 0.9 γ=0.9 γ=0.9 时,求得
v π ( s 4 ) = v π ( s 3 ) = v π ( s 2 ) = 10 v π ( s 1 ) = 8 v_π(s_4)=v_π(s_3)=v_π(s_2)=10 \quad v_π(s_1)=8 vπ(s4)=vπ(s3)=vπ(s2)=10vπ(s1)=8
知道了 state value 那么可以求得 action value ,以状态 s 1 s_1 s1 为例,结果如下:
q π ( s 1 , a 1 ) = − 1 + γ v π ( s 1 ) = 6.2 q_π(s_1,a_1)=-1+γv_π(s_1)=6.2 qπ(s1,a1)=−1+γvπ(s1)=6.2 q π ( s 1 , a 2 ) = − 1 + γ v π ( s 2 ) = 8 q_π(s_1,a_2)=-1+γv_π(s_2)=8 qπ(s1,a2)=−1+γvπ(s2)=8 q π ( s 1 , a 3 ) = 0 + γ v π ( s 3 ) = 9 q_π(s_1,a_3)=0+γv_π(s_3)=9 qπ(s1,a3)=0+γvπ(s3)=9 q π ( s 1 , a 4 ) = − 1 + γ v π ( s 1 ) = 6.2 q_π(s_1,a_4)=-1+γv_π(s_1)=6.2 qπ(s1,a4)=−1+γvπ(s1)=6.2 q π ( s 1 , a 5 ) = 0 + γ v π ( s 1 ) = 7.2 q_π(s_1,a_5)=0+γv_π(s_1)=7.2 qπ(s1,a5)=0+γvπ(s1)=7.2
通过上面计算和直观感受,我们知道这个策略是不好的,那么当策略不好时我们应该如何改进策略呢?这就得依赖 action value 。我们可以将当前的策略用数学形式表达出来,如下:
π ( a 1 ∣ s 1 ) = { 1 a = a 2 0 a ≠ a 2 π(a_1|s_1)=\left\{ \begin{matrix} 1 \quad a=a_2\\ 0 \quad a≠a_2\\ \end{matrix} \right. π(a1∣s1)={
1a=a20a=a2
通过计算前面以状态 s 1 s_1 s1 为例得到的 action value 可知 q π ( s 1 , a 3 ) q_π(s_1,a_3) qπ(s1,a3) 最大,因此我们可以考虑选择 a 3 a_3 a3 作为一个新的策略,则新的策略表达如下:
π n e w ( a ∣ s 1 ) = { 1 a = a ∗ 0 a ≠ a ∗ π_{new}(a|s_1)=\left\{ \begin{matrix} 1 \quad a=a^*\\ 0 \quad a≠a^*\\ \end{matrix} \right. πnew(a∣s1)={
1a=a∗0a=a∗
a = a ∗ a=a^* a=a∗ 期概率为1,表明新的策略一定会选择 a ∗ a^* a∗ , 而在这个例子中 a ∗ = m a x a q π ( s 1 , a ) = a 3 a^*=max_aq_π(s_1,a)=a_3 a∗=maxaqπ(s1,a)=a3
贝尔曼最优方程:定义
通过前面例子的计算,我们现在可以给出最优策略的定义了,定义如下:
如果 v π ∗ ( s ) ≥ v π ( s ) f o r a l l s ∈ S 则说明 π ∗ 是最优策略 如果 \quad v_{π^*}(s)≥v_{π}(s) \quad for\quad all\quad s∈S\quad 则说明 π^*是最优策略 如果vπ∗(s)≥vπ(s)foralls∈S则说明π∗是最优策略
最优策略这一定义引发了许多问题:
最优策略存在吗?
最优策略唯一吗?
最优策略是随机的还是确定性的?
如何获得最优策略?
为了回答这些问题,我们需要研究贝尔曼最优公式。
上图第二式即为贝尔曼最优公式,相比与贝尔曼公式我们可以发现贝尔曼最优公式是最优策略条件下的贝尔曼公式。下面给出贝尔曼的变形形式以及向量形式,如下图:
我们可以发现贝尔曼最优公式存在两个未知数 v 和 π v和π v和π,一个方程怎么求解两个未知数呢?我们以下列式子说明,是可以求解的。
我们通过上面两个例子知道,如果 q ( s , a ) q(s,a) q(s,a) 知道,那么最大值就等于 m a x ( q ( s , a ) ) max(q(s,a)) max(q(s,a)) ,当 a = a ∗ = m a x a q ( 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 , d X ) 与 ( Y , d Y ) 是度量空间 , f : X → Y 是映射。若存在常数 k ∈ [ 0 , 1 ) 使得 ∣ ∣ d Y − d X ∣ ∣ ≤ γ ∣ ∣ 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)是度量空间,f:X→Y是映射。若存在常数k∈[0,1)使得∣∣dY−dX∣∣≤γ∣∣X−Y∣∣则称f为压缩映射,k称为压缩系数
有了上述两个概念,现在我们介绍Banach不动点定理 (Contraction Mapping Theorem),这是数学分析中的一个重要定理。它断言在完备度量空间中的压缩映射必定有唯一的不动点。
由Banach不动点定理可以得到以下性质:
只要满足 x = f ( x ) x=f(x) x=f(x) 形式的方程,如果 f f f 是压缩映射,那么
1、 一定存在一个不动点 x ∗ , 使得 f ( x ∗ ) = x ∗ 一定存在一个不动点 x^* ,使得f(x^*)=x^* 一定存在一个不动点x∗,使得f(x∗)=x∗
2 、不动点 x ∗ 是唯一存在的 2、不动点x^*是唯一存在的 2、不动点x∗是唯一存在的
3 、可以通过迭代求得不动点: x k + 1 = f ( x k ) , x k ≈ x ∗ ,当 k 趋于 ∞ 时 ; 3、可以通过迭代求得不动点:x_{k+1}=f(x_k),x_k≈x^*,当k趋于∞时; 3、可以通过迭代求得不动点:xk+1=f(xk),xk≈x∗,当k趋于∞时;
现在,我们可以用上面的Banach不动点定理来解贝尔曼最优方程,在解之前,我们要证明 f ( v ) f(v) f(v) 是压缩映射,但这里我们只给应用,证明过程感兴趣的朋友可以自己去看看。由Banach不动点定理可以知道一定存在唯一的 v ∗ v^* v∗ ,并且可以通过迭代求得。
贝尔曼最优公式求解例子
我们以一个简单的例子来加深理解贝尔曼方程求解过程。如下图,机械人有三个行为:向左 a l a_l al、向右 a r a_r ar、原地 a 0 a_0 a0,奖励设置为 r 终点 = + 1 r_{终点}=+1 r终点=+1, r 边界 = − 1 r_{边界}=-1 r边界=−1
根据上面制定的规则,我们可以得到机械人的 q ( s , a ) q(s,a) q(s,a)
现在的问题是怎么求取最优状态值 v ∗ ( s i ) v^*(s_i) v∗(si) 和最优策略 π ∗ π^* π∗
运用上面介绍的方法,取 γ = 0.9 γ=0.9 γ=0.9 ,当 k = 0 k=0 k=0 时,我们首先随意给定一个初值
可以的到
可以看到,我们已经找到了最优策略。
最优策略的性质
我们思考有哪些因素影响最优策略?由下列公式可知,影响最优策略的因素有 r 、 γ ,以及模型环境 r、γ,以及模型环境 r、γ,以及模型环境