【强化学习】CH3 动态规划

CH3 动态规划(Planning by Dynamic Programming)

3.1 简介

动态规划:将复杂问题分解成小问题进行求解。

动态:求解问题的序列;

规划:优化程序,比如策略。

常用于解决包含以下性质的问题:

  • 最优子结构:子问题的解可构成总解的一部分
  • 子问题有大量重复
  • 马尔科夫决策过程:存在递归分解过程,值函数会反复存储与重用

在MDP问题上运用动态规划方法:

假定DP已知MDP所有环境信息:

  • 预测:

​ Input:MDP < S , A , P , R , γ > <S,A,P,R,\gamma> <S,A,P,R,γ>和策略 π \pi π

​ or MRP < S , P π , R π , γ > <S,P^{\pi},R^{\pi},\gamma> <S,Pπ,Rπ,γ>

​ Output:值函数 v π v_{\pi} vπ

  • 控制:

    Input:MDP < S , A , P , R , γ > <S,A,P,R,\gamma> <S,A,P,R,γ>

    Output:值函数 v π v_{\pi} vπ和最优策略 π ∗ \pi^* π

3.2 策略评估(Policy Evaluation)

3.2.1 问题与方法

得出好策略,看看所定策略是怎么样的

问题:评估给定的策略 π \pi π

方法:贝尔曼方程的迭代使用,使用同步的方法(使用 v k ( s ′ ) v_{k}(s') vk(s)更新 v k + 1 ( s ) v_{k+1}(s) vk+1(s)

贝尔曼方程:
v k + 1 = R π + γ P π v k v k + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v k ( s ′ ) ) \boldsymbol{v}^{k+1}=\boldsymbol{R^{\pi}}+\gamma\boldsymbol{P^{\pi}v}^k\\ v_{k+1}(s)=\sum_{a\in A}\pi(a|s)(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^av_k(s')) vk+1=Rπ+γPπvkvk+1(s)=aAπ(as)(Rsa+γsSPssavk(s))
下一状态值函数=当前策略的所有动作 (即时奖励+折扣因子*动作后会转移到的状态 *新状态的期望价值)

在这里插入图片描述

3.2.2 例题

在给定四方格中,左上与右下为终止状态,个体以1/4的概率向上下左右移动,越过边框则反弹,所有状态的及时奖励均为-1,折扣因子为1,求取各步骤k的值函数

在这里插入图片描述

求解:

**无贪婪处理:**无论经过多少步,用户的策略都是以1/4的概率向上下左右。

在这里插入图片描述

计算 从k=1到k=2的(1,2) 位置的值函数:
v k + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v k ( s ′ ) ) = 上(回到原地) + 下(到( 2 , 2 )) + 左(终止) + 右(到( 1 , 3 )) = 1 / 4 ∗ ( − 1 + 1 ∗ ( 1 ∗ ( − 1.0 ) ) ) + 1 / 4 ∗ ( − 1 + 1 ∗ ( 1 ∗ ( − 1.0 ) ) ) + 1 / 4 ∗ ( − 1 + 1 ∗ ( 1 ∗ ( 0 ) ) ) + 1 / 4 ∗ ( − 1 + 1 ∗ ( 1 ∗ ( − 1.0 ) ) ) = − 1.75 v_{k+1}(s)=\sum_{a\in A}\pi(a|s)(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^av_k(s'))\\ =上(回到原地)+下(到(2,2))+左(终止)+右(到(1,3))\\ =1/4*(-1+1*(1*(-1.0)))+1/4*(-1+1*(1*(-1.0)))+1/4*(-1+1*(1*(0)))+1/4*(-1+1*(1*(-1.0)))\\ =-1.75 vk+1(s)=aAπ(as)(Rsa+γsSPssavk(s))=上(回到原地)+下(到(2,2))+左(终止)+右(到(1,3))=1/4(1+1(1(1.0)))+1/4(1+1(1(1.0)))+1/4(1+1(1(0)))+1/4(1+1(1(1.0)))=1.75
注:这里经过一个动作到达的状态的固定的,如个体向上会以概率1回到原地。

这里没有贪婪处理,无论经过多少步,用户的策略都是以1/4的概率向上下左右。

最终仅评价每个位置的值函数。

3.3 策略迭代(Policy Iteration)

3.3.1 贪婪处理

在得到值函数的过程中,一步步优化策略

π ′ = g r e e d y ( v π ) \pi'=greedy(v_{\pi}) π=greedy(vπ) 贪心地选择最优策略,加快收敛速率

计算**从k=1到k=2的(1,2)**位置的值函数:

经过k=0->k=1的贪心策略优化后,(1,2)位置的策略为向左
v k + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v k ( s ′ ) ) = 左(终止) = 1 ∗ ( − 1 + 1 ∗ ( 1 ∗ ( 0 ) ) ) = − 1 v_{k+1}(s)=\sum_{a\in A}\pi(a|s)(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^av_k(s'))\\ =左(终止)\\ =1*(-1+1*(1*(0)))\\ =-1 vk+1(s)=aAπ(as)(Rsa+γsSPssavk(s))=左(终止)=1(1+1(1(0)))=1

此操作满足压缩映像原理,最终值函数均会收敛到最优 π ∗ \pi^* π

在这里插入图片描述

证明:

每一步都是最优策略,最后一定也是最优策略。

在这里插入图片描述

注:

  • 策略评估不一定要收敛完成

  • 早停机制:固定迭代次数或者值函数差小于收敛阈值即结束

  • 策略迭代等价于值迭代

3.4 值迭代(Value Iteration)

优化策略可分为两部分:优化的动作和下一状态

最优化理论:

一个策略 π ( a ∣ s ) \pi(a|s) π(as)自状态s到达最优值函数 v π ( s ) = v ∗ ( s ) v_{\pi}(s)=v_{*}(s) vπ(s)=v(s),当且仅当

  • 从s可到达任何状态s’
  • π \pi π已经是从s’出发的最优策略了 v π ( s ’ ) = v ∗ ( s ′ ) v_{\pi}(s’)=v_{*}(s') vπ(s)=v(s)

3.4.1 问题与方法

问题:寻找策略 π \pi π

方法:贝尔曼方程的迭代使用,使用同步的方法(使用 v k ( s ′ ) v_{k}(s') vk(s)更新 v k + 1 ( s ) v_{k+1}(s) vk+1(s)

​ 没有显性的策略;中间值函数可能不与任何策略对应

贝尔曼方程:
v k + 1 = m a x a ∈ A ( R π + γ P π v k ) v k + 1 ( s ) = m a x a ∈ A ( R s a + γ ∑ s ′ ∈ S P s s ′ a v k ( s ′ ) ) \boldsymbol{v}^{k+1}=max_{a\in A}(\boldsymbol{R^{\pi}}+\gamma\boldsymbol{P^{\pi}v}^k)\\ v_{k+1}(s)=max_{a\in A}(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^av_k(s')) vk+1=maxaA(Rπ+γPπvk)vk+1(s)=maxaA(Rsa+γsSPssavk(s))
下一状态值函数=当前策略的拥有最大值函数的动作 (即时奖励+折扣因子*动作后会转移到的状态 *新状态的期望价值)

在这里插入图片描述

3.4.2 值迭代例题

完全不考虑策略,直接以最优的v(s)更新,试探各个方向,贪心选择值函数最大的方向
v ∗ ( s ) < − m a x a ∈ A R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) v_{*}(s)<-max_{a \in A}R^a_s+\gamma \sum_{s' \in S}P_{ss'}^av_{*}(s') v(s)<maxaARsa+γsSPssav(s)
在这里插入图片描述

计算**从k=2到k=3的(1,2)**位置的值函数:
v ∗ ( s ) < − m a x a ∈ A R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) v ∗ ( s ) < − m a x ( ( − 1 + 1 ∗ ( 1 ∗ ( − 1.0 ) ) ) , ( − 1 + 1 ∗ ( 1 ∗ ( − 1.0 ) ) ) , ( − 1 + 1 ∗ ( 1 ∗ ( 0 ) ) ) , ( − 1 + 1 ∗ ( 1 ∗ ( − 1.0 ) ) ) ) v ∗ ( s ) < − ( − 1 ) v_{*}(s)<-max_{a \in A}R^a_s+\gamma \sum_{s' \in S}P_{ss'}^av_{*}(s')\\ v_{*}(s)<-max( (-1+1*(1*(-1.0))),(-1+1*(1*(-1.0))),(-1+1*(1*(0))),(-1+1*(1*(-1.0))))\\ v_{*}(s)<-(-1) v(s)<maxaARsa+γsSPssav(s)v(s)<max((1+1(1(1.0))),(1+1(1(1.0))),(1+1(1(0))),(1+1(1(1.0))))v(s)<(1)

3.5 对比分析

策略评估策略迭代值迭代
应用于评估已知的策略(预测)选择最优的策略(控制)选择最优的策略(控制)
方法贝尔曼方程的迭代使用,使用同步的方法(使用 v k ( s ′ ) v_{k}(s') vk(s)更新 v k + 1 ( s ) v_{k+1}(s) vk+1(s)在得到值函数的过程中,贪心地选择最优策略,加快收敛速率完全不考虑策略,直接以最优的v(s)更新,试探各个方向,贪心选择值函数最大的方向
公式 v k + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v k ( s ′ ) ) v_{k+1}(s)=\sum_{a\in A}\pi(a|s)(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^av_k(s')) vk+1(s)=aAπ(as)(Rsa+γsSPssavk(s)) v k + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v k ( s ′ ) ) v_{k+1}(s)=\sum_{a\in A}\pi(a|s)(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^av_k(s')) vk+1(s)=aAπ(as)(Rsa+γsSPssavk(s)) v k + 1 ( s ) = m a x a ∈ A ( R s a + γ ∑ s ′ ∈ S P s s ′ a v k ( s ′ ) ) v_{k+1}(s)=max_{a\in A}(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^av_k(s')) vk+1(s)=maxaA(Rsa+γsSPssavk(s))
特点全过程策略保持不变,不停计算值函数计算值函数与策略优化选择交替进行无策略,直接选择动作的最优值函数复杂度
复杂度 O ( m n 2 ) O(mn^2) O(mn2) m:动作数 n:状态数同左 O ( m n 2 ) O(mn^2) O(mn2) m:动作数 n:状态数

3.6 异步DP

所有状态可并行更新,值函数表中新旧交替且并存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
3d4upro_ch教程是一个关于3D打印的教学资源平台。它提供了丰富而全面的教学内容,旨在帮助人们学习和理解3D打印技术的原理和应用。 首先,3d4upro_ch教程提供了详细的教学视频和文字说明,以帮助初学者了解3D打印的基本知识。这包括3D打印的工作原理、不同类型的3D打印技术、常见的3D打印材料等。通过这些教学内容,学习者可以逐步了解3D打印技术的基本原理和操作流程。 其次,3d4upro_ch教程还提供了一系列的实际操作教学,供学习者进行实践。这些教学内容包括如何使用3D建模软件进行建模、如何设置3D打印机的参数、如何处理打印时可能出现的问题等。通过这些实践教学,学习者可以亲自上手操作,提高自己的实际操作能力,并且能够更好地理解3D打印技术的应用。 此外,3d4upro_ch教程还通过案例展示和实际应用分享,向学习者展示了3D打印技术在不同领域的应用。无论是在工业设计、医疗领域还是日常生活中,3D打印都有着广泛的应用。通过学习这些案例和分享,学习者可以了解到更多关于3D打印技术的应用前景,激发他们对于学习和探索的兴趣。 总之,3d4upro_ch教程是一个全面而详细的3D打印教学资源平台,它通过丰富的教学内容和实践操作,帮助学习者掌握3D打印技术的原理和应用。无论是对于初学者还是对于有一定基础的人群来说,这个教程都是一个很好的学习工具,能够提高他们的技能水平和应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值