要深入理解强化学习,必须了解背后支持的理论基础。动态规划(Dynamic programming)就是这些算法为什么能够求解最优MDP的理论基础。
动态规划的本质是将复杂大问题分解成,相互重叠的简单子问题,求到子问题的的最优解,然后将这些最优解组合起来就是大问题的最优解。
举个简单的例子,女朋友想在衣帽间中找到最搭的穿戴(衣服,帽子,鞋子,首饰。。。)。这是一个复杂的问题,但是我们可以把这个问题分解成互相重叠的小问题,比如,找到最佳搭配的鞋子和裤子。最佳搭配的裤子和衣服,最佳搭配的衣服和首饰等等。。。将这些搭配打完分之后,你自然就会找到最佳搭配的(得分最高的)衣服,裤子,帽子,鞋子和首饰了。
能用动态规划解决的问题必须满足两个条件,第一是可以拆解成子问题,第二这些子问题必须能相互重叠,MDP就满足这两个条件。
在用动态规划解决MDP问题的时候需要用到之前提到的Bellman公式,已经用Bellman公式1.预测v函数(状态值函数),2.通过价值迭代(Value iteration)求最优MDP 3. 通过策略迭代(Policy Iternation)来求得最优MDP。这些内容将放在下一篇文章中介绍。
作者:Hongtao洪滔
链接:https://www.jianshu.com/p/29cf563e58bc