分享

学习小记之马尔可夫决策过程(MarkovDecisionProcesses)

 精诚至_金石开 2017-04-27

这个周,晓宁师兄布置了一个任务,让研读DRL的开篇之作。
一上来看深度增强学习的开篇之作那篇论文时,有些不适应。不光是因为是英文阅读有些困难,其中有很多算法或名词都没听说过,也不知道这些算法的特点和使用条件。所以就先补一下关于增强学习的相关知识,看了一篇Andrew Ng的增强学习的论文,以下是我对增强学习中一个重要算法:马尔可夫决策过程的一些个人理解以及存在的疑问。

马尔可夫决策过程(Markov Decision Processes)

1 个人理解

跟朴素贝叶斯、SVM等机器学习算法不同,马尔可夫决策过程不必给处理的数据打标签。而马尔可夫决策过程更侧重于处理控制或决策问题,这类问题中算法的决定的动作或策略通常没有绝对的正误之分,所以马尔可夫决策过程中有一个重要的概念是回报函数或者说是回报值(严格来讲是非确定性马尔可夫决策过程)。
马尔可夫决策过程中含五个变量,即:一组状态集S、一组动作集A、状态转移概率 、阻尼系数 、回报函数R 。
以控制四旋翼飞行器为例,通俗的理解一下这5个参数:状态s是指飞行器现在所处的状态,可能会包括位置信息、速度、加速度、姿态信息等等;动作a是指飞行器要做的一个动作,可能会是调整某个电机转速等;状态转移概率 是指无人机在状态s下做了a动作后转移到接下来的某一个动作的概率,因为状态转移的不确定性接下来的状态是不确定的也可能不只一个可能转移的状态,所以 是包括所有的可能接下来转移到的状态;阻尼系数 可能指的是飞行器做某个动作的阻尼吧(不确定这个到底会是指什么 = =!);回报函数R是指飞行器在状态s下离理想状态的差距值的体现,也就是上一个动作所取得的回报(可以是一个差距值的倒数之类呈负相关的值)。
说了这么多,其实马尔可夫决策过程整体的思想就是通过回报函数来评判动作执行的效果,当然这里的评判也是很繁杂的过程(如下图)。
这里写图片描述
因为程序会不停地去计算由状态s到下一个状态 再到下下一个状态 的回报值,直到回报值之和(类似一个全概率事件的计算)收敛为止(回报值按步数大小乘以一个指数衰减的权值)。
其实马尔科夫决策过程的计算分两种:值迭代法和策略迭代法。顾名思义,值迭代法是通过一个关于每一步动作a的|S|元的一次方程组,可解出每一步的动作。即得出一套最优化的动作集,但是有一个局限就是需要状态的个数有限,而且当|S|很大时解方程组也是很困难的。所以,策略迭代法就是解决了这个问题,策略迭代就是去求每一个动作后边可能状态的回报的收敛值,然后确定该状态下的最优动作,依次迭代下去求出一整套最优化的动作集。

2 存在的疑问

其实整个马尔可夫决策过程似乎没有什么缺陷,但是如若真的应用到实际中的时候:
①该怎样去得到状态转移概率?
②怎样确定执行动作a后会有几个可能的状态?
既然增强学习算法是机器学习算法的一种,那么为什么感觉算法的决策过程只考虑未来的状态回报,一点都没有考虑过去的决策过程的经验?与其说是学习算法还不如叫做最优化算法。

3 一点改进的想法

因为我觉得马尔科夫决策过程中缺少过去的决策元素参与,又结合之前看过的有关聚类算法、分类算法。我想应该可以做以下改进:在计算最优动作集时,每一个动作的回报值计算除了乘以一个状态转移概率和一个步数衰减权值之外,再加一个经验拟合概率 。
首先,建立一个经验池,在每执行一个动作后都将原始状态s、动作a、到达状态 、预期状态 等这一组动作信息添加到经验池。然后在每一次做动作优化之前把计算出来的动作和经验池里的动作做一个拟合分析或聚类分析,计算出每一个动作的 来表示过去在经验池里的动作信息对该动作的经验评价。
这样马尔可夫决策过程计算出来的最优动作集就不仅仅参考对未来的预期回报值的最大化,还加入了过去的动作集对当前动作的评价。使得整个算法更加合理,也更像是一个“学习”算法。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多