强化学习之路2(动态规划寻找最优策略)
本文还是借鉴知乎大神叶强的文章,如有侵权,会删除,本文只是自己得到的一点思考。
简介
动态规划算法是解决复杂问题的一个方法,算法通过把复杂问题分解为子问题,通过求解子问题进而得到整个问题的解。在解决子问题的时候,其结果通常需要存储起来被用来解决后续复杂问题。当问题具有下列特性时,通常可以考虑使用动态规划来求解:第一个特性是一个复杂问题的最优解由数个小问题的最优解构成,可以通过寻找子问题的最优解来得到复杂问题的最优解;子问题在复杂问题内重复出现,使得子问题的解可以被存储起来重复利用。 马尔科夫决定过程(MDP)具有上述两个属性:Bellman方程把问题递归为求解子问题,价值函数就相当于存储了一些子问题的解,可以复用。因此可以使用动态规划来求解MDP。 分为两个问题
- 预测问题
2. 控制问题 自己想的就是是否可以利用强化学习问题去做一些控制问题。
迭代法策略评估Iterative Policy Evaluation
策略迭代 Policy Iteration
在当前策略上迭代计算v值,再根据v值贪婪地更新策略,如此反复多次,最终得到最优策略和最优状态价值函数。
价值迭代 Value Iteration
我也在思考这个问题。有了一点简单的理解,和你交流一下。policy迭代的一大特色就是,可以迭代很多次v然后更新一次policy。这样做的好处是,我们可以一开始固定在一个非最优的policy来进行v的计算,这样一个policy是确定的,所以v的计算是很快的。大约更新一定步数之后,我们再更新一次policy,就可以继续进行迭代了。如果你每次迭代都更新一下policy,实际上就变成了v迭代的方法了。 策略迭代和价值迭代 感谢你的解释,让我弄明白了值迭代和策略迭代的区别,同时我觉得之所以存在两种不同的迭代方法,是因为它们都有各自的优劣势。值迭代中的值函数更新一次之后就更新策略,并且还要依据最新的策略更新值函数;而策略迭代中是按照一定的策略对值函数更新一定的步数,再进行策略更新。在算法实现的时候,按照一定的策略定期执行一个循环比起每一步都计算新的策略和该策略指导下的值函数消耗的计算资源要小,这是策略迭代的优势;值迭代由于每次迭代都对策略进行直接更新,所以它的收敛速度更快。
自己的理解:
- 策略迭代:就是随意选择一个策略,在该策略的引导下,进行价值函数的计算,在该策略的条件下,价值函数迭代多次以后,收敛后,根据收敛后的价值函数重新更新策略,再次价值函数的迭代…直至最终收敛。
- 价值迭代:单纯使用价值迭代,全程没有策略参与也可以获得最优策略,但需要知道状态转移矩阵,即状态s在行为a后到达的所有后续状态及概率。就是每进行一次价值函数的迭代之后,就进行策略的更新。
总结
这一块掌握的不是太好,准备停下来,多看看资料,把基础打牢,不能一瓶子水不满,半瓶子水晃荡 加油,未来一切光明 唯物辩证法告诉我们,事物发展道路是曲折的 但前途是光明的
|