本讲着重讲解了利用动态规划来进行强化学习,具体是进行强化学习中的“规划”,也就是在已知模型的基础上判断一个策略的价值函数,并在此基础上寻找到最优的策略和最优价值函数,或者直接寻找最优策略和最优价值函数。本讲是整个强化学习课程核心内容的引子。
简介 Introduction
动态规划算法是解决复杂问题的一个方法,算法通过把复杂问题分解为子问题,通过求解子问题进而得到整个问题的解。在解决子问题的时候,其结果通常需要存储起来被用来解决后续复杂问题。当问题具有下列特性时,通常可以考虑使用动态规划来求解:第一个特性是:一个复杂问题的最优解由数个小问题的最优解构成,可以通过寻找子问题的最优解来得到复杂问题的最优解;第二个特性是:子问题在复杂问题内重复出现,使得子问题的解可以被存储起来重复利用。
马尔科夫决定过程(MDP)具有上述两个属性:Bellman方程把问题递归为求解子问题,价值函数就相当于存储了一些子问题的解,可以复用。因此可以使用动态规划来求解MDP。
我们用动态规划算法来求解一类称为“规划”的问题。“规划”指的是在了解整个MDP的基础上求解最优策略,也就是清楚模型结构的基础上:包括状态行为空间、转换矩阵、奖励等。这类问题不是典型的强化学习问题,我们可以用规划来进行预测和控制。
具体的数学描述是这样:
预测:给定一个MDP 和策略 ,或者给定一个MRP ,要求输出基于当前策略π的价值函数 。
控制:给定一个MDP ,要求确定最优价值函数 和最优策略
迭代法策略评估Iterative Policy Evaluation
- 理论
问题:评估一个给定的策略π,也就是解决“预测”问题。
解决方案:反向迭代应用Bellman期望方程
具体方法:同步反向迭代,即在每次迭代过程中,对于第 次迭代,所有的状态s的价值用计算并更新该状态第 次迭代中使用的价值 ,其中s’是s的后继状态。
此种方法通过反复迭代最终将收敛至 。
也可以异步反向迭代