《强化学习:原理与Python实现 》 —3.4.2 异步动态规划

举报
华章计算机 发表于 2019/11/13 12:23:53 2019/11/13
【摘要】 本节书摘来自华章计算机《强化学习:原理与Python实现》 一书中第三章,第3.4.2节,作者肖智清。

3.4.2 异步动态规划

上一节提到,扫描一遍全部状态可能会涉及许多无意义的状态,浪费过多的时间和计算资源。本节介绍的异步动态规划(asynchronous dynamic programming)可以解决部分问题。

异步动态规划的思想是,每次扫描不再完整地更新一整套状态价值函数,而是只更新部分感兴趣的值。例如,有些状态不会转移到另一些状态(例如对任意均有的状态),那么更新状态的价值函数后再更新的价值函数就没有意义。通过只做有意义的更新,可能会大大减小计算量。

在异步动态规划中,优先更新(prioritized sweeping)是一种根据Bellman误差来选择性更新状态的算法。在迭代过程中,当更新一个状态后,试图找到一个Bellman误差最大的状态并更新该状态。具体而言,当更新一个状态价值函数后,针对这个状态价值函数会影响到的状态价值函数,计算Bellman误差:

 image.png

并用一个优先队列来维护各状态的Bellman误差。然后从队头中取出Bellman误差最大的状态,更新其状态价值函数。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。