AI学习笔记——动态规划(Dynamic Programming)解决MDP(1)

in ai •  6 years ago 

我们介绍过MDP(Markov Decision Processes马可夫决策过程)以及什么是最优MDP,甚至从强化学习的角度介绍了DQNQ-learning, Sarsa 等求解最优MDP方法,但是要深入理解强化学习,必须了解背后支持的理论基础。动态规划(Dynamic programming)就是这些算法为什么能够求解最优MDP的理论基础。

动态规划的本质是将复杂大问题分解成,相互重叠的简单子问题,求到子问题的的最优解,然后将这些最优解组合起来就是大问题的最优解。

举个简单的例子,女朋友想在衣帽间中找到最搭的穿戴(衣服,帽子,鞋子,首饰。。。)。这是一个复杂的问题,但是我们可以把这个问题分解成互相重叠的小问题,比如,找到最佳搭配的鞋子和裤子。最佳搭配的裤子和衣服,最佳搭配的衣服和首饰等等。。。将这些搭配打完分之后,你自然就会找到最佳搭配的(得分最高的)衣服,裤子,帽子,鞋子和首饰了。

能用动态规划解决的问题必须满足两个条件,第一是可以拆解成子问题,第二这些子问题必须能相互重叠,MDP就满足这两个条件。

在用动态规划解决MDP问题的时候需要用到之前提到的Bellman公式,已经用Bellman公式1.预测v函数(状态值函数),2.通过价值迭代(Value iteration)求最优MDP 3. 通过策略迭代(Policy Iternation)来求得最优MDP。这些内容将放在下一篇文章中介绍。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!