只为记录学习心得
学习视频来源B站up主 西湖大学空中机器人:
链接:https://www.bilibili.com/video/BV1sd4y167NS/?spm_id_from=333.337.search-card.all.click&vd_source=ad94eb95d81e9e6b1a5d71459ef1a76d
目录
1.值迭代算法
2.策略迭代算法
3.截断策略迭代算法
1.值迭代算法
之前讲过了贝尔曼最优公式,形式如下
那么如何求解贝尔曼最优公式呢?
就是利用压缩映射定理方式进行求解出最优策略和最优state value,算法如下:
这个算法有一个名字,就叫值迭代
接下来剖析一下值迭代算法
细化步骤1、2就是
算法伪代码
例子:
回到目录
例子:
复杂例子:
从图中可以看到一个现象,先接近目标的状态会先变好,慢慢往远的目标迭代变好
3.截断策略迭代算法
策略迭代是从策略出发开始求
值迭代是从值出发开始求
这两个算法是非常类似的,那它们的区别是什么?
从第四步开始不同,不同的点地方
这里策略迭代计算出无穷多步,才得到vπ1,而值迭代只用一步就得到vπ1
如果在其中一步进行截断
用中间值来当下一个计算策略当中,所以截断策略迭代是策略迭代和值迭代的一般化,因为它判断的不是是否收敛,而是次数是否到达
这种截断是否会造成算法无法收敛呢?
因为每次计算vπk都会增大,所以截取某个j值并不会影响,下图也说明了并不会影响
例子:
这是可以发现,当截断 j = 1 时,到快60次才收敛【等于值迭代】,当截断 j = 3 时,到20次才收敛,当截断 j = 6 时,到十几次才收敛,当截断 j = 100 时,到快十次才收敛,这说明当截断 j 增大时,它能够更快地收敛,但是随着截断 j 的增大,收敛的速率也会逐渐变慢,所以尽量避免每次只计算一步,也避免每次计算很多步,每次多计算几步就有很大收获
欢迎指正!