18/10/2019 Lecture3: Planning by Dynamic Programming

Planning by Dynamic Programming

image.png

Dynamic Programming

  1. 具有某种时序关系的问题。
  2. 将复杂的问题分解为子问题,结合子问题的解决方案,即动态规划。


    image.png

动态规划需要满足的两个要求

  1. 最优化结构,即将整合结构问题分解为两个或多个子问题。
  2. 重叠子问题,对于多次出现的子问题,子问题的最优解可以多次利用。
  3. MDP符合这两种特性和贝尔曼方程。
  4. 贝尔曼方程可以理解为,当前步采取最优的行动,余下的其他步骤也将采取最优的行动,从而获得整体最优值(value function)。


    image.png

Planning 问题

  1. 预测问题:已知Policy,求得最多的奖励。
  2. 控制问题:寻找最好的Policy,使这个MDP获得最大奖励。


    image.png

Dynamic Programming 适用

  1. 生物信息学中序列比对。
  2. 图论算法。


    image.png

Policy Evaluation

  1. 贝尔曼方程评估Policy
  2. 通过迭代更新 value function。
  3. 同步备份,每一次迭代,都将用到全部的MDP中的状态用于更新value function。


    image.png

贝尔曼方程

  1. 叶子结点储存我们上一次迭代的 value function , 通过动态规划方式,得到一个新的value function。


    image.png

例子 评估一个已知的(random)Policy

  1. 采用最简单的Policy,即向四个方向移动的概率都是1/4.


    image.png
  2. 使用动态规划的方法求解value function。

  3. 某位置当前时刻四个方向移动获得的reward + 上一步四个方向移动获得的reward 除以4得到当前value function 位置的值。

  4. 根据动态规划,更新value function,同时得到最优的Policy(右边)。


    image.png
  5. value function 的值最终会稳定。


    image.png

Policy Iteration

  1. 2- step
    1.1 评估一个policy,就像上一步所做的,填数字,计算出policy能够得到的分数。
    1.2 贪心算法,右边最后就是最有policy。
    1.3 MDP中总是存在一个最优的Policy。


    image.png
  2. 向上的箭头表示评估(贝尔曼方程), 向下的过程表示对value function 使用贪心算法更新Policy。最终收敛到最优Policy和真实的value function。


    image.png
image.png
image.png

更精准的描述下 Policy Inprovement

  1. 每一步都取argmax,则更新后的policy至少和开始采取的policy得到的一样多。

  2. 所以更新后的policy只会获得更好的得分。


    image.png
  3. 最优解稳定


    image.png

Modified Policy Iteration

  1. 基本思想:提前停止
    1.1 观察贝尔曼方程 value function的更新幅度。
    1.2 控制迭代次数。


    image.png
image.png

Principle of Optimlity

image.png
  1. 将value function看作是对所有子问题的兑现方案,是后向传播算法,及知道最优解,更新非叶子结点value function。
  2. 通过循环整个状态空间,迭代找到最优贝尔曼方程,而不是通过反向传播。


    image.png
  3. 同上面的小方格计算不同,这是一种反向传播从而获得最短路径的方法。
  4. 基于已有的完备知识(我们知道这个结构是如何工作的),我们就不需要更新每一个状态,只需要从初始状态feedback就可以获得我们关心的状态。
  5. 没有终点状态,我们的算法依旧能够运行。


    image.png

value iteration

  1. Policy iteraction 中迭代(value function + policy(greedy))。
  2. 每一步没有确定的policy,只有value function的迭代更新。没有创建新的policy,只是中间步骤。


    image.png
  3. 每次迭代将会返回根节点,利用贝尔曼方程最大化期望,从而更新value function,获得最优的value function。


    image.png

动态规划算法

  1. 预测问题:已知policy,可以得到多少奖励。贝尔曼方程定义了约束方程,得到v_\pi.
  2. 控制问题: 如何从已知MDP中获得最大奖励,获得v^*, v_\pi, 最优policy。
    2.1 policy iteration
    2.2 value iteration: 使用贝尔曼最优方程,求解最大值,通过value function自我迭代求得最大值。
    image.png

拓展

image.png
image.png
  1. 三种异步更新方法。


    image.png
image.png
  1. 使用某个轨迹的真实样本。


    image.png

总结

  1. DP使用全尺寸 ,考虑所有的action和所有的后继状态。


    image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容