【从RL到DRL】强化学习基础(三)——动态规划、小型网格世界中的随机策略评估

介绍

动态规划(Dynamic Programming,DP)是一类优化算法。将待求解问题分解成若干子问题,先求解子问题,然后从这些子问题的解得到目标问题的解 。
核心特点
最优子结构——子问题的最优解是可以得到的
重复子问题——子问题的解决方案是可以存储和利用的

动态规划与强化学习

完备的马尔可夫决策(状态转移矩阵、系统的奖励Ra完全已知的情况下)过程中,DP可用于计算最优策略。对于强化学习问题,传统的DP算法作用有限:完备的环境模型只是一个假设,计算复杂度极高。
但是,DP提供了必要的基础,所有的其他方法都是对DP的近似。:

  • 降低计算复杂度
  • 减弱对环境模型完备性的假设

基于动态规划的强化学习

策略迭代:使用贝尔曼期望方程,求解最优策略。包含两个核心步骤:

  • 策略评估(Policy evaluation)——输入MDP<S,A,P,R,γ>和策略π,输出价值函数vπ
  • 策略提升(Policy Improvement)——输入MDP<S,A,P,R,γ>和价值函数vπ,输出最优价值函数v* 和最优策略π*

价值迭代(Value iteration):使用贝尔曼最优方程,求解最优策略

策略评估

迭代策略评估

问题评估一个给定的策略π,也称为“预测”问题
解决方案迭代应用贝尔曼期望方程进行回溯
在这里插入图片描述

用老的打分器计算新的状态值,赋给新的打分器,实现迭代过程的进行

算法会收敛到vπ
迭代评估算法:
输入待评估的策略π
算法参数:小阈值θ>0,用于确定估计量的精度,对于任意s∈S+,任意初始化V(s)其中V(终止状态)=0,循环:在这里插入图片描述
直到△<θ,其中策略π与环境奖励R均为已知(输入量)。求得的vπ在阈值θ允许的范围下,可以认为满足贝尔曼期望方程,但不一定满足贝尔曼最优方程。如果输入的策略π为最优策略,则迭代后的价值函数接近贝尔曼最优价值函数。

例子:小型网格世界中的随机策略评估

在这里插入图片描述
已知条件

  • 状态空间S:S1~S14为非终止状态,ST为中止状态(两个灰色正方形)
  • 动作空间A:对于任何非终止状态可以有东、南、西、北四个移动动作
  • 转移概率P:每个动作会导致状态转移,但当动作会导致智能体移出时,状态不变
  • 即时奖励R:任何非终止状态间的转移得到的即时状态奖励均为-1,进入终止状态奖励为0
  • 折扣率:γ = 1
  • 智能体遵循随机策略π(n |·) = π(e |·) = π(s |·) = π(w |·) = 0.25

问题:评估在小型网格世界中的随机策略
在这里插入图片描述
同步更新:像上图示这样一次迭代计算完所有的价值函数数据后,再将整张网格图作为下一次迭代的输入数据
异步更新:将每一个小正方形作为迭代单位,完成迭代计算后即存入网格,作为下一个网格迭代的可用数据。异步更新不需要另辟存储空间来储存上一次的迭代结果,即直接在整张网格上逐“像素”迭代。因此有些时候需要考虑网格迭代的顺序。

经过多次迭代(k→∞),最后的策略评估结果(即每个网格的价值函数)满足贝尔曼期望方程,但不一定满足贝尔曼最优方程,这取决于在迭代开始前指定的动作策略π

策略迭代

如何获得最优策略?

策略迭代 方法,交替进行以下步骤:

  • 评估给定的策略π,获得价值函数在这里插入图片描述

  • 应用贪婪方法来改进策略,使其后续状态价值增加最多在这里插入图片描述在这里插入图片描述

  • 通过价值函数计算得到当前的vπ,进而通过贪婪策略得到新的π’(迭代进行),将新的π’再送入计算其vπ’,如此循环

  • 在小型网格世界中,改进后的策略就是最佳的策略,π’=π*

  • 但是更多场合中,我们需要进行多次的评估和改进迭代,才能找到最优策略

  • 上述算法一般都能收敛至最优策略π*

策略π
评估策略价值V π(·)
寻找到新策略π'使得π'≥π

在这里插入图片描述

策略迭代算法

前期知识铺垫
在这里插入图片描述
迭代算法(用于估计 π ≈ π最优 ):

  • 初始化:对于任意s∈S,任意初始化V(s),π(s)∈A(s)
  • 策略评估:循环△ ← 0,对于每一个s∈S循环:在这里插入图片描述直到△<θ(一个确定估计量的精度小正数)
  • 策略改进Policy - stable ← true,对于每一个s∈S在这里插入图片描述如果Policy - stable为true,那么停止并返回V = v*。以及π = π*;否则跳转到2.策略评估
  • 每次先存下当前的动作策略,然后通过贪婪机制得到新的策略。通过argmax将动作集中所用动作中使得价值取得最大值的对应动作赋给π(s),而直接放弃其他动作,这就是一种贪婪机制

最优策略:
如果改进停止,则满足(收敛于最大值等于期望值):在这里插入图片描述
并满足贝尔曼最优方程:在这里插入图片描述
此时,对于所有的s∈S,vπ(s) = v*(s),所以π是最优策略

在策略评估阶段,不一定要求最终的价值函数一定收敛到vπ,比如在小型网络结构中,价值评估阶段迭代三次就可以使得最终输出最优策略

价值迭代

可以认为是k = 1的迭代算法

  • 初始化:对于任意s∈S,任意初始化V(s),π(s)∈A(s)
  • 策略评估:对于每一个s∈S循环: 在这里插入图片描述
  • 策略改进Policy - stable ← true对每一个s∈S:在这里插入图片描述如果Policy - stable为true,那么停止并返回V = v*。以及π = π*;否则跳转步骤2

此时其实已经可以将上述的步骤2与步骤3合并:在这里插入图片描述
并得到贝尔曼最优方程:在这里插入图片描述
j价值迭代算法(用于估计 π ≈ π最优 ):
算法参数:小阈值θ>0,用于确定估计量的精度,对于任意s∈S+,任意初始化V(s),其中V(终止状态)=0,循环:在这里插入图片描述
直到△<θ
输出一个确定的策略 π ≈ π*,使得在这里插入图片描述

价值迭代可以理解为策略迭代的一个特殊过程

例子:网格价值迭代

在这里插入图片描述
红色方框:
-2 = max{

  • 向北:即时奖励-1,加上回到原地的上个状态value = -1,相加为-2;
  • 向南:即时奖励-1,加上到达的下个格子的上个状态value = -1,相加为-2;
  • 向西:即时奖励-1,加上到达的下个格子的上个状态value = -1,相加为-2;
  • 向东:即时奖励-1,加上到达的下个格子的上个状态value = -1,相加为-2;

}
蓝色方框:
-1 = max{

  • 向北:即时奖励-1,加上到达的下个格子的上个状态value = -0,相加为-1;
  • 向南:即时奖励-1,加上到达的下个格子的上个状态value = -1,相加为-2;
  • 向西:即时奖励-1,加上回到原地的上个状态value = -1,相加为-2;
  • 向东:即时奖励-1,加上到达的下个格子的上个状态value = -1,相加为-2;

}

总结

问题贝尔曼方程算法
预测贝尔曼期望方程迭代策略评估
控制贝尔曼期望方程 + 贪婪策略改进策略迭代
控制贝尔曼最优方程价值迭代
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值