(Solve a known MDP)
解决已知Model/环境的MDP问题,主要三个方面:
1. Iteration Policy Evaluation
2. Policy Iteration
3. Value Iteration
Policy Evaluation
当已知MDPs的状态转移矩阵时,环境模型就已知了,此时可看为planning问题
基于当前的policy计算出每个状态的value function。
Iterative Policy Evaluation,策略迭代估计
1. 问题:评估一个给定的策略
2. 解决方法:迭代,贝尔曼期望备份,v1→v2→⋯→vπ
3. 采用同步备份
Policy Iteration
1. policy evaluation
基于当前的policy计算每个状态的value function
2. Policy Improvement
基于当前的value function,采用贪心算法来找到当前最优秀的policy
Value Iteration
最优化原理:当且仅当任何从状态s能达到的状态s’都能在当前状态下取得最优的value时,那么状态s也能在当前的policy下获得最优的value。即vπ(s)=v∗(s)。
任何最优策略都可以被细分为两部分:
1. 最优的第一个action A∗
2. 接下来后续状态s’下的最优策略
如果已知子问题的最优解v∗(s′),则可以通过第一个Bellman Optimality Equation将v∗(s)也求出来,因此从终点向起点推导就可以推出所有的状态最优值。
v∗(s)← maxa∈ARsa+γ∑s′∈SPss′av∗(s′)
Value Iteration通过迭代的方法,通过这一步的vk(s′)更新下一步的vk+1(s),不断迭代,最终收敛到最优的v∗。
Policy Iteration和Value Iteration有什么本质区别?为什么一个叫policy iteration,一个叫value iteration呢?
1. 原因其实很好理解,policy iteration使用bellman方程来更新value,最后收敛的value 即vπ 是当前policy下的value值(所以叫做对policy进行评估),目的是为了后面的policy improvement得到新的policy。
2. 而value iteration是使用bellman 最优方程来更新value,最后收敛得到的value即v∗就是当前state状态下的最优的value值。因此,只要最后收敛,那么最优的policy也就得到的。因此这个方法是基于更新value的,所以叫value iteration。
针对MDPs要解决的2个问题,有如下解决办法:
1. 针对prediction
目标是在已知policy下得到收敛的value function,因此针对问题不断迭代计算Bellman Expectation Equation就足够了。
2. 针对control
需要同时获得最优的policy,那么在Iterative policy evaluation基础上加入一个选择policy的过程就行。此外,通过value iteration在得到最优的value function后推导出最优policy。