强化学习基础篇(八)动态规划扩展
1、异步动态规划算法(Asynchronous Dynamic
Programming)
同步动态规划(Synchronous Dynamic Programming)是在每次迭代都会同时保存所有状态的值函
数。他的确定是对马尔可夫决策过程中的所有状态集 进行扫描(遍历),每一次迭代都会完全更新所
有的状态值,该方法称为同步备份(Synchronous Backup)。如果环境中的状态集非常庞大(即状态
空间过大),那么即使是单次遍历状态空间,其时间代价也会非常高。例如,西洋双陆棋的状态超过
种,即使按照每秒执行1000万个状态的值更新,使用普通电脑也需要100年的时间才能完成一次遍
历。
异步动态规划(Asynchronous Dynamic Programming,ADP),又称为异步备份(Asynchronous
Backup)能够更高效地完成强化学习任务。其思想是通过某种方式,使得每一次扫描(遍历)不需要更
新所有的状态值,可以以任意顺序更新状态值,甚至某些状态值可能会在其他状态值更新一次之已经更
新过多次。事实上,经过实践和理论证明,很多状态值是不需要被更新的。但如果想要算法正确收敛,
那么异步动态规划法必须持续地更新完所有的状态值。不同的是,在选择更新状态时,异步动态规划具
有很大的灵活性。
异步动态规划可以非常明显得减少计算量,其收敛必须满足:在任一时刻,任何状态都有可能被选中。
下面将分别介绍异步动态规划中常见的3种方法:
In-Place动态规划(In-place dynamic programming))
加权扫描动态规划(Prioritized sweeping)
实时动态规划(Real-time dynamic programming)
1.1、In-Place动态规划(In-place dynamic programming)
在基于同步动态规划的值迭代算法中,存储了两个值函数的备份,分别是 和 。
即在计算过程中,通过赋值的方式使旧的状态值作为下一次计算新的状态值。
而In-place动态规划(In-Place Dynamic Programming,IPDP)则是去掉旧的状态值 ,只保留最
新的状态值 ,在更新的过程中可以减少存储空间的浪费。
直接原地更新下一个状态值 ,而不像同步迭代那样需要额外存储新的状态值 。在这种情况
下,按何种次序更新状态值有时候会更具有意义。
1.2、加权扫描动态规划(Prioritized sweeping)
加权扫描动态规划(Prioritized Sweeping Dynamic Programming,PSDP)基王贝尔曼误差的大小来
指导动作的选择。具体而言,加权扫描的思想是根据贝尔曼误差确定每一个状态是否重要,对于重要的
状态,进行更多的更新;对于不重要的状态,则减少其更新次数。
状态值的更新顺序:
使用优先队列来确定状态值函数的更新次序。按照权重优先原则,每次对优先权最高的状态值进行
更新。
评论0