第三课 动态规划
本章主要讲了利用动态规划解决MDP的预测和控制两个问题。策略评估用来解决预测问题,策略迭代和值迭代用来解决控制问题,这都是建立在已知完整信息的MDP问题当中。
1 动态规划简介
动态:指的是该问题的时间序贯部分
规划:指的是去优化一个策略
那么哪些问题可以用动态规划求解呢?需要满足两个特性:
- 最优子结构:求解问题可以分解为求解若干个子问题,子问题最优解构成了问题的最优解
- 重叠子问题:子问题重复出现多次,可以缓存并重用子问题的解
MDP恰好满足以上两个特性,贝尔曼方程给出了问题的迭代子问题;值函数可以存储并重用。动态规划用来求解已知全部信息的MDP问题,也就是第一课提到的Planning。动态规划可以用来解决预测和控制两个问题:
预测:
控制:
2 迭代策略评估
策略评估就是评价一个策略π的好坏,具体是通过值函数表现出来,也就是说我们需要计算策略π下的状态值函数或状态动作值函数。迭代策略评估用来解决预测问题。
迭代的使用贝尔曼期望方程进行backup,这里的backup有人翻译成反向更新,有人翻译成回溯,个人觉得回溯更准确一些。
同步backup算法(使用t时刻的v(s‘)更新t+1时刻的v(s),这里是对某一时刻的所有s的值函数进行更新并备份):
本节后面会讨论异步backup
具体更新公式如下这里对于某个策略π,进行多次backup后状态值将收敛,最终得到的值才评价了策略π的好坏: