https://www.bilibili.com/video/av9930653
http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching_files/DP.pdf
David Silver深度强化学习第3课 - 动态规划dynammic programming
What is Dynamic Programming?
DP两大缺陷:
1.适用于完全已知的环境
2.big计算资源
这样完美的情况为剩下的不完美的情况提供了逼近的基础。
DP用来解决的问题:
在一个不连续的完美的模型(例如MDP)中产生最优政策optimal policy
对于连续状态( continuous states and actions ),也可使用DP,但往往将之量化后转换为离散状态来处理。
The key idea of DP
use value functions to organize and structure the search for good policies.
使用价值函数寻找最优策略。
最优策略可以从满足bellman最优方程的最优价值函数(v∗ or q∗)中得到。
Policy Evaluation (Prediction)
定义:to compute the state-value function vπ for an arbitrary policy π. 在任意的策略下找到状态价值函数,也称作预测问题 prediction problem
Iterative policy evaluation
我们使用贝尔曼期望方程(Bellman exceptation backup)来评估policy;最优方程(Bellman optimal backup)来解决control问题.我们使用Bellman方程不断进行迭代更新,这样就得到某种机制来评估policy,这种机制并不是唯一的。
操作步骤:从某个初始的value 函数v1开始,v1包括了在任意状态s下的value值(一般取0),这表示初始状态下我们没有得到任何指示采取任何行动。步骤二,每一步都采用Bellman方程,找到新的value函数v2。这个过程迭代很多次,最后得到真正的value函数。每一步的更新操作叫做expected update。并且这个迭代是有限的,当任意状态的价值函数前后之差小于某个权重后,就不再更新。(以下在视频28min处)
通过反复迭代得到value函数(任何value函数都能通过计算变得更好)
通过value函数制定policy(this process of policy iteration always converges to π∗)
迭代贝尔曼方程,不断进行迭代,得到反馈value,通过向前看一步,现有的value值,得到每一个状态的新的value。
Policy iteration(目的:找到P*)
value iteration:
目的:找到最优的政策pi,从而得到最佳的value函数(最优policy的最优value)
policy iteration和value iteration的区别
前者是不断地迭代,等最后收敛了之后再确定一条策略;后者是每迭代一次,更新一次策略。
在policy iteration中,学习的是如何使用bellman期望方程
在value iteration中,学习的是如何使用bellman最优方程不断进行迭代,最终找到optimal value function.(最终在所有的policy中找到最佳的value)
两者的区别是我们并不会使用一个已经确定下来的policy,我们只会直接作用于value空间。在我们在policy和value之间进行更迭之前,我们使用value函数来创建policy,使用policy来创建下一个value函数。
value iteration就是从value函数到下一个value函数再到下一个value函数。
对于policy迭代,每一步我们都会构造一个value函数,该value函数是某个policy的value函数。value迭代并不会这样做。看上去更像是改善所有的状态。