reinforcement learning,增强学习:Policy Evaluation,Policy Iteration,Value Iteration,Dynamic Programming f

来源:互联网 发布:中宣部知乎 编辑:程序博客网 时间:2024/06/04 18:01



首先回忆上一次的内容:

Bellman Expectation Equation:
【计算时常用】



【计算时常用】


【计算时常用】

Bellman Optimality Equation:







为什么DP能够解决MDP问题:






Policy Evaluation:

1)要解决的问题:


也就是说,要评价一个policy π的在每个状态的最优值Vπ。通常也成为prediction任务。这种任务因为policy π给出了,典型的DP可解决任务。


2)解决方案:

iterative application of Bellman expectation equation即可得到最终的Vπ。





3)一个例子(能计算对表格中的数字,表示明白了基本原理):




比如上面的-1.7的计算如下:0.25*[(-1)+(-1)]*3+0.25*[(-1)+0]=-1.75。

比如下面的-2.4的计算如下:0.25*[(-1)+(-2)]*2+0.25*[(-1)+0]+0.25*[(-1)+(-1.7)]=-2.425。







Policy Iteration

1)要解决的问题:


也就是说,没有给出特定的policy π,只给出MDP,希望找到针对该MDP的最优policy π*;同时给出π*在每个状态的最优值Vπ*。

从上面的描述可以看出,Policy Evaluation是policy iteration的一个子问题


2)解决方案:

先任意给出一个最简单的policy(比如上面的random policy),然后对该policy进行evaluation(这个步骤需要循环很多轮),再进行policy improvement(比如上面的第二列,greedy policy)。

然后迭代上面的过程,即iterate policy evaluation / policy improvement。

policy evaluation需要很多轮才能稳定,如果仅仅进行policy evaluation,则一定要等Vπ稳定;但在这里,可能只需要进行几步,比如上面的第二列,evaluation循环到K=3之后做policy improvement,就可以得到最优policy π*。但在实际中往往不知道evaluation应该循环几轮,这样可以先循环5轮或者10轮的evaluation,然后再进行policy improvement,之后对改进后的policy再进行5轮或者10轮的evaluation,然后再进行policy improvement!




3)例子:

上面的第二列。




Value Iteration

1)要解决的问题:

和policy iteration一样,只给出MDP,希望找到针对该MDP的最优policy π*;同时给出π*在每个状态的最优值Vπ*。


2)解决方案:

可以按照policy iteration的方法,但在policy evaluation阶段仅仅循环一轮,之后马上进行policy improvement【这个方案就是value iteration】。

利用optimal policy具有的偏序关系:


这样,只要我们知道the solution to sub-problems v(s') ,v(s) 的解就可以通过进行one-step look-ahead来获得:

The idea of value iteration is to apply these updates iteratively:


3)好处:

更直观:Intuition: start with final rewards and work backwards 

Still works with loopy, stochastic MDPs 

Unlike policy iteration, there is no explicit policy (Intermediate value functions may not correspond to any policy

4)坏处:由于 start with final rewards and work backwards,并且每次只能look-ahead one step,所以直观上,循环轮数会非常大才能收敛到最优策略!


4)例子:







最后给出synchronous Dynamic Programming Algorithms 的总结:











Extensions to Dynamic Programming

1)Asynchronous Dynamic Programming

In-place dynamic programming
Prioritised sweeping
Real-time
dynamic programming

2)sample backups

DP uses full-width backups, DP is effective for medium-sized problems(millions of states)
Every successor state and action is considered
Using knowledge of the MDP transitions and reward function
 


Using sample rewards and sample transitions <S, A, R, S'>:
Advantages:
Model-free: no advance knowledge of MDP required
Breaks the curse of dimensionality through sampling
Cost of backup is constant, independent of
n= |S|

3)Approximate Dynamic Programming








注意,上面所有方法的收敛性都已经有了证明,这里不给出。

How do we know that value iteration converges to v?
Or that iterative policy evaluation converges to
vπ?
And therefore that policy iteration converges to
v?
Is the solution unique?
How fast do these algorithms converge?
These questions are resolved by
contraction mapping theorem


1 0
原创粉丝点击