zoukankan      html  css  js  c++  java
  • 增强学习笔记 第三章 马尔科夫决策过程

    3.1 概念:

    1、学习者和决策者称为代理

    2、代理以外称为环境。环境予以新状态,以及奖励

    3、从状态到行动的概率的映射,称为策略。$pi_t(s,a)$代表第t时刻在$s_t=s$时选择$a_t=a$的概率

    4、定义环境和代理的边界,跟问题本身有关。所有不能直接控制的,通常都是环境。哪怕代理理解它怎么运作。例如维持机器人的电池能量水平,那么电池能量就属于环境而不是代理自身的一部分。

    3.2 目标和奖励

    1、可以为目标设定一个特殊的奖励值

    2、奖励必须表示我们想要代理完成的事情,而不是作为它怎样去完成这个事情的引导或暗示。例如象棋中,只有最后赢了才给奖励,而不是吃掉对方一个子。奖励代表目标而不是方法

    3、将奖励放置于环境中,使得代理不能像随意改变行动那样去宣称自己已经获得奖励。这个并不妨碍代理自己在奖励以外自行设定另一个内部奖励,实际上很多增强学习方法都设定了内部奖励。

    3.3 回报

    1、回报指长期奖励的累积

    2、片段性任务:是指有终止状态的任务。

      (1)可简单累加奖励:$R_t=r_{t+1}+r_{t+2}+cdots+r_T$。

      (2)所有非终止状态集合记作$S$,所有状态记作$S^+$。

    3、连续性任务:是指没有终止状态的任务:$T=inf$

      (1)定义折扣回报为$R_t=r_{t+1}+gamma r_{t+2}+gamma^2 r_{t+3}+cdots, 0legamma<1$

      (2)$若gamma=0$,则为完全短视,只考虑$r_{t+1}$,随着$gamma$增大接近1,则越来越有远见。

    3.4 片段性任务和连续性任务的统一表示

    1、虽然片断性任务通常分为N个片段,但是大部分时间我们并不区分片段,甚至只考虑一个片段。

    2、为统一表示,对片断性任务,对其终止状态设定一个自环,奖励为0

    3、因此可以得到统一式子:$R_t=displaystyle sum_{k=0}^Tgamma^kr_{t+k+1}$,其中$gamma$可为$1$,$T$可为$infty$

    3.5 马尔科夫属性

    1、本书不讨论怎么去设计、改变或学习状态。只讨论在有状态情况下怎么行动。

    2、状态可包含丰富的信息,而不只是对环境的当下感应。可以是一系列感应的集合,也可以包含历史信息。例如,听到了'yes'之后,无论当下环境如何,状态都和之前不一样。

    3、状态可能无法包含当下环境的全部信息,比如交易员可能无法知道内幕消息。不知道并不可耻,但知道了马上忘记是可耻的。

    4、如果状态某种形式汇总过去所有感应,包含了所有必要的信息。我们称为马尔科夫属性。例如,象棋棋盘状态并没有记录所有的下子过程,但是却包含了所有必要信息。

    5、若状态满足$Pr{s_{t+1}=s',r_{t+1}=r|s_t,a_t,r_t,s_{t-1},a_{t-1},cdots,r_1,s_0,a_1}=Pr{s_{t+1}=s',r_{t+1}=r|s_t,a_t}$,则称状态符合马尔科夫属性。

    6、即使状态不完全符合马尔科夫属性,依然可以通过增强学习来进行近似学习。我们总是希望能使用状态较好地预测未来奖励以及进行行动决策。当状态越马尔科夫,增强学习的性能越好。

    7、马尔科夫属性很重要,因为整个增强学习都是基于当前一个状态来做决策。本书所有理论在这个假设下才完全成立,AI很多其他领域也依赖这个属性。所以理解这个属性非常重要。当然,对于不成立的情况,算法依然有不错的结果。

    8、对于平衡木问题,状态需要位置、角度等信息,但是传感器测得的这些信息通常有噪音,有延迟。因此不是完全符合马尔科夫假设。但是算法依然有不错的结果。

    9、对于打牌问题,玩家只知道有限的信息,也只记住他认为关键的信息。所以他的状态信息并不是完全马尔科夫的。但是并不妨碍他打出不错的牌。

    3.6 马尔科夫决策过程

    1、符合马尔科夫属性的增强学习称为马尔科夫决策过程。若状态和行动空间为有限,则为有限马尔科夫决策过程

    2、状态转移概率:$P_{ss'}^a=Pr{s_{t+1}=s'|s_t=s,a_t=a}$

    3、奖励函数:$E_{ss'}^a=E{r_{t+1}|s_t=s,a_t=a,s_{t+1}=s'}$

    4、回收机器人例子(略),表格表示和转移图表示。

    3.7 价值函数

    1、两种表示:

      (1) 状态s的价值函数:$v_{pi}(s)=E_{pi}[G_t|S_t=s]=E_{pi}[displaystyle sum_{k=0}^{infty}gamma^kR_{t_k+1}|S_t=s]$

      (2) 行动a的价值函数:$q_{pi}(s,a)=E_{pi}[G_t|S_t=s,A_t=a]=E_{pi}[displaystyle sum_{k=0}^{infty}gamma^kR_{t_k+1}|S_t=s,A_t=a]$

    2、这些计算都是期望值,我们对实际分布是不知道的。但是可以从经验(取样)来估算。可以知道,在算法执行时,如果对于状态s有足够多的采样的,函数值的经验平均将收敛于期望平均。我们称这种基于随机取样平均的方法为蒙特卡洛方法。

    3、当状态空间特别大时,我们没办法去维护整个$v_{pi}(s)$或$q_{pi}(s,a)$的表格。因此我们会采用一个参数化的函数来逼近(如神经网络),并且通过调整参数来使之接近价值函数的真实值。

    4、增强学习和动态规划一样符合递归性。$displaystyle v_{pi}=E_{pi}[G_t|S_t=s]=sum_api(a|s)sum_{s'}p(s'|s,a)[r(s,a,s')+gamma v_{pi}(s')]$,这个称为Bellman方程。$v_{pi}$是Bellman方程的唯一解

    5、backup图(略)

    3.8 最优价值函数

    1、价值函数在策略上定义了一个偏序。一个策略$pi$比另一个$pi'$更好,如果对所有状态$sin S$,均有$v_*(s)ge v_{pi'}(s)$。

    2、我们定义最优的策略为${pi_*}$(尽管可能有多个)。对所有状态$sin S$,均有$displaystyle v_*(s)=max_{pi}v_{pi}(s)$

    3、最优策略同时也满足:对所有状态$sin S$以及行动$ain A(s)$,均有$displaystyle q_*(s,a)=max_{pi}q_{pi}(s,a)$

    4、$v_*$和$q_*$的Bellman方程称为Bellman最优方程,它不包含与任何特定策略有关的项:

    $displaystyle v_*(s)=max_{ain A(s)}q_*(s,a)=max_{ain A(s)}sum_{s'}p(s'|s,a)[r(s,a,s')+gamma v_*(s')]$

    $displaystyle q_*(s,a)=sum_{s'}p(s'|s,a)[r(s,a,s')+gammamax_{a'}q_*(s',a')]$

    5、backup图和价值函数的backup图类似,只是在$s$下面的运算并不是按概率加权求和,而是直接选择$q_*(s,a)$最大的$a$

    6、对任意$s$选择$q_*(s,a)$最大的a,是一种贪心法,但是因为每个$q_*(s,a)$本身也是考虑了所有步骤计算出来的结果,因此这种选择是全局最优。

    7、回收机器人:推导出$v_*(h)$和$v_*(l)$可通过解线性方程组来完成。

    8、走格子问题:求出了每个格子的$v_*(s)$,以及对应的最优$a(s)$

    9、根据上面两个例子,虽然可以通过解方程的方式来求得最优解,但是实际应用中很少有效。因为要穷举所有的状态和行动,而状态数量可能很巨大,甚至并不一定已知。例如双陆棋就有$10^{20}$个可能的状态。因此寻求近似解是更通常的做法。

    10、很多决策问题可以归类为近似解bellman最优方程,例如假设空间搜索(A*算法是个典型),通常指搜索有限K层,第K层不再扩展,而直接用近似方式来给出结果。

    11、很多增强学习的算法实际上就是近似解Bellman最优方程。并且使用实际发生的转移比例来代替期望转移比例

    3.9 最优化与近似

    1、因为计算能力和内存的原因,精确解最优方程不可行。

    2、近似很多情况下是有效的。例如双陆棋中,很多棋盘状态是不可能出现的(尤其适合人类高手对决时),对这些状态作出很差的决策并不影响整个系统的表现。因此我们更需要将精力花在常见的状态中。

  • 相关阅读:
    [译]Java例解Interface
    【笔记】2014-01至2014-02
    【笔记】2013-12
    【笔记】2013-10至2013-11
    【笔记】2013-09
    【笔记】2013-08
    【笔记】2013-07
    生活工作中好用的快捷键和小工具(更新)
    Android Studio更新Gradle问题
    gradle构建spring5源码
  • 原文地址:https://www.cnblogs.com/milaohu/p/6821378.html
Copyright © 2011-2022 走看看