机器学习笔记(21):强化学习之动态规划

Posted 链原力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习笔记(21):强化学习之动态规划相关的知识,希望对你有一定的参考价值。

本文来自之前在Udacity上自学机器学习的系列笔记。这是第21篇,介绍了强化学习的一种动态规划方法,另外还有一个frozenlake小项目进行实践。

简介
第20篇介绍了强化学习的问题,智能体对环境和奖励一无所知,只能依靠不断地采取不同的动作去获得累积的奖励返回,并朝着最大化的方向学习。

为了解决这个复杂的问题,我们先从一个简单的问题入手。这个简单的问题设定是这样的,即环境的状态和奖励对于智能体是已知的情况下,它如何朝着最大化的方向学习。

环境设置
这里考虑一个最简单的环境,如下图所示:

根据贝尔曼等式:

可以得到:

解上面的线性方程,可得:

所以,对任何环境,我们都可以列出类似的线性方程组,并求解得到状态值。但是环境一般比较复杂,列出来的方程组也会复杂到难以求解。所以,我们会使用另外一种数值的迭代方法。也就是下面要介绍的“迭代策略预估”。

迭代策略预估(Interative Policy Evaluation)
迭代策略预估是一种迭代求解方法,它先设置各个状态初始值为0,然后上面的线性方程组做一些修改:

上面三个式子的左箭头表示,将右边的值赋予左边的值,然后通过不断地迭代,直到 的值稳定为止,也就是下一次迭代的值与上一次没有多大变化。

这个方法的伪代码如下图所示:

机器学习笔记(21):强化学习之动态规划

上图中的策略预估值收敛于策略 的状态值函数 的条件是,对于 是有限的。对于一个有限的马可夫决策过程, 是有限的可以通过以下两点满足: 或者智能体从任意的状态 开始,它按照策略 可以最终达到终结状态。

按照所设定的策略,我们可以得到如下的状态值:

机器学习笔记(21):强化学习之动态规划

动作值函数(Action Value)
在求得策略 的状态值函数后,我们可以进一步将其转化为动作值函数。根据动作值函数的定义,我们可以得到:

类似地,可以得到智能体在其他状态下采取其他动作的动作值。

机器学习笔记(21):强化学习之动态规划

对于更加复杂的环境,智能体采取某个动作后会有不同的概率出现在下一个不同的状态中。对于这种情况,我们可以用公式来计算:

其中 表示在状态动作对 情况下,下一个时间步的状态和奖励为 的概率。

下面是动作值预估的伪代码:

机器学习笔记(21):强化学习之动态规划

策略完善(Policy Improvement)
随着我们根据状态值计算出了动作值,我们就可以进一步根据每个状态中不同的动作值,选择其中最大的,以得到最大的期望累积奖励返还。

如下图所示,我们在得到迭代策略预估后,进一步地将状态值输入到策略完善中,计算出动作值并选择更优的策略。

机器学习笔记(21):强化学习之动态规划

策略完善的伪代码如下:

机器学习笔记(21):强化学习之动态规划

策略迭代
现在,我们将上面讨论的几个步骤组合起来,可以得到策略迭代。对于一个马可夫决策过程,设定一个极小的正数 。然后根据既定的策略,实施迭代策略预估以获得状态值。接着,再实施策略完善。最后,通过重复策略预估和完善的过程,得到最优策略。

策略迭代的伪代码如下:

机器学习笔记(21):强化学习之动态规划

截断策略预估和迭代
截断策略预估和迭代是分别对策略预估和迭代中的重复次数进行限定,一种方法是设置最大迭代次数,另一种方法是设置一个极小的正数,当值的变化小于该值时停止迭代。

截断策略预估的伪代码如下:

机器学习笔记(21):强化学习之动态规划

截断策略迭代的伪代码如下:

机器学习笔记(21):强化学习之动态规划

值迭代(Value Iteration)
值迭代是另一种求解最优策略的方法。在Sutton等所编写的强化学习教程中,提到策略迭代的一个缺点是,每一次迭代中包含策略预估,其中又要求对所有的状态空间的状态进行多次的扫描,迭代求解出稳定的状态值。实际上,策略预估步骤可以通过截断,且不会丢失策略迭代的收敛性。一个特例就是对状态空间进行了一次的更新后就停止策略预估。这种特例的方法就是值迭代。

值迭代的伪代码如下:

总结

frozenlake
frozenlake是OpenAI提供的冰冻湖面项目,通过设置湖面的状态,智能体要学会如何寻找一条最优策略达到指定状态。环境代码可以参考:https://github.com/openai/gym/blob/master/gym/envs/toy_text/frozen_lake.py


以上是关于机器学习笔记(21):强化学习之动态规划的主要内容,如果未能解决你的问题,请参考以下文章

机器学习之概率统计基础,机器学习学习笔记----07

强化学习笔记之动态规划法

机器学习之概率统计基础,机器学习学习笔记----08

动态规划学习笔记

《深度学习之图像识别:核心技术与案例实战》读书笔记

深度强化学习之:模仿学习(imitation learning)