zoukankan      html  css  js  c++  java
  • 阅读笔记——增强学习3

    前言:本人文学素养较差,且阅读来源为外文翻译书籍,所以本篇博客诸多解释和引用的内容在阅读上可能会造成不适和理解障碍,敬请谅解!博客中涉及到多处数学表达式,我是在本地使用word编辑的,内容是直接从本地粘过来的,所以这些数学公式在博客的网页上能否很好的显示我也不太清楚,就这样吧。。。~如果数学公式不能很好的显示的话,请从网盘自行提取链接: https://pan.baidu.com/s/1C2IBJi4lHE8aA6zWPVpGDw 提取码: n2kd

    阅读来源:《机器学习》 Tom M.Mitchell 著 机械工业出版社

    增强学习3

    前两次的博客介绍了在确定环境下的Q学习的基本理论,确定环境即明确了状态集S和动作集A的,且两个函数回报函数和状态转移函数是确定输出的(只不过agent可能不具备这两个函数的知识)。下面考虑非确定性情况,其中回报函数和状态转移函数可能有概率的输出。比如说有些棋类对弈程序中,输出的动作具有固有的概率性,每次移动是通过投掷骰子决定的。类似的,在有噪声的传感器和效应器的机器人中,将动作和回报建模为非确定性过程较为合适。在这样的情况下,回报函数和状态转移函数可被看作式首先基于s和a产生输出的概率分布,然后按此分布抽取的随集输出。而且当这些概率分布主要依赖于s和a时(无后效性,不依赖于之前的动作和状态),我们可称这个系统为非确定性马尔可夫决策过程。

    在非确定性的情况下,我们必须重新考虑学习器的目标,因为动作的输出不在是确定性的情况。一个很明显的策略就是,由于是按照概率分布抽取出的随机输出,根据概率论的知识我们可以利用期望值来对学习策略进行重新的描述。从的定义出发,可知在利用数学期望重新描述的,其中是策略,即为应用策略收到的折算累积回报的期望值,回报序列是从状态开始遵循策略生成的。当然此式是可以覆盖确定性情况下的。和以前一样,我们定义最优策略为所有状态s中使最大化的策略。下一步我们把Q的定义一般化,再一次运用其期望值。,其中为在状态s采取动作a会产生下一个状态的概率。由于,将该式改写,可将Q重新表达为递归的形式:,由此我们把非确定性情况下的简单地重定义为在确定性情况下定义的量的期望值。但是考虑一个非确定性回报函数,每次重复<s,a>转换时产生不同的回报。这样,即使的表值被初始化为正确的Q函数,训练规则仍会不断的改变的值,即此按照该式的训练规则是无法收敛的。书中提供了一种修改训练规则的方式,令其使用当前值和修正的估计的一个衰减的加权平均。用来代表第n次循环中agent的估计,下面修改后的训练规则保证收敛到Q:,其中:,s和a为第n次循环中更新的状态和动作,而且为此状态-动作对在这n次循环中(包括第n次循环)被访问的总次数。在此修正的训练规则中,关键思想是对的更新比确定性情况下更为平缓。如果令,将得到确定性情况下的训练规则。如果使用较小的值,该项可以被当前的均化以产生新的更新值。的值随n的增长而减小,因此当训练进行时更新程度逐渐变小。在训练时以一定速率减小可以达到收敛到Q函数的目的。上面给出的是满足收敛性条件的选择之一,它按照下面的定理:

     

    虽然Q学习和有关的增强算法可被证明在一定条件下收敛,在使用Q学习的实际系统中,通常需要数以千计的训练循环来达到收敛。我们讨论的算法执行一种机械的学习方法,并且不会尝试通过从已看到的状态-动作对中泛化来估计未看到的状态-动作对的Q的值。这个机械学习假定在收敛性证明中反映出来,它证明了只有每个可能的状态-动作被无限频繁的访问,学习过程才会收敛。但在实际的应用中,通常会合并其他的函数逼近方法来缩减训练的开销和成本,毕竟agent执行的动作开销可能会很大,很容易把反向传播这样的函数逼近算法结合到Q学习算法中,将BP神经网络代替查找表,并且把每个更新作为训练样例。

    如果你有认真的看完这三篇博客并且有一定程度的理解的话,不难发现Q学习这样的增强学习算法和动态规划有着莫大的联系。动态规划方法假定agent拥有和的知识,相反Q学习这样的学习算法假定学习器缺乏这样的知识,但相同的是都是使用迭代法解决问题。想体验一下这个过程的话,可以自己动手重新编写使用动态规划实现Floyd算法的代码,这个算法基于结点邻居的距离,通过不断更新每个图结点到终点的估计距离来学习图中的路径,在此算法中,图的各边以及目标结点已知的假设,等价于和已知的假定,核心就是状态转移方程,训练时使用三层for循环来枚举由i,j,k组成的所有合理情况。在不考虑的时间花费和任何优化的情况下,这个简单的案例十分贴近agent对每个状态-动作对<s,a>的重复访问来更新这张查找表这样的训练行为。

    增强学习的内容就简单的到这儿结束,总算收尾了。。。以后的内容估计还是从这本书里抄,介绍些以前学过的诸如神经网络、决策树、遗传算法的知识。

  • 相关阅读:
    第八章 对象
    第七章 压缩列表
    第六章 整数集合
    Java中的Unsafe
    站在Java的角度看LinkedList
    Java内部类详解
    浅析Java中的final关键字
    ConcurrentHashMap
    阻塞队列
    线程池的使用和实现
  • 原文地址:https://www.cnblogs.com/messi2017/p/12261977.html
Copyright © 2011-2022 走看看