zoukankan      html  css  js  c++  java
  • <强化学习>无模型下计算给定策略对应的价值函数,Model free Prediction,评估一个给定策略的表现

    一、Intro

      Prediction只是评估给定策略的表现,直白的说它是找 “在环境ENV下,AGENT按照给定的策略pai,AGENT的价值函数”。

      这篇blog只介绍三种计算方法,没有涉及到 “求取ENV下的最优AGENT”!

      对于事先已经给出了ENV,也就是说我们有完整的MDP,知道所有的state,也知道从这到那、从那到这的reward,可以在代码的开头就定义State表和reward表,这就是model-based问题,只要使用贝尔曼方程和贝尔曼最优方程迭代更新找到最优的value function V*和最优的policy pai*即可。

      而大多数情况下ENV是不会给你的。只把你扔到一个陌生的环境中自己去探索去学习。也就是说我们不知道在这个ENV下总共有哪几种state,不知道离开这个state进入那个state会得到多少reward。所以!state要靠自己去探索鉴定,reward只知道最后输赢的时候的reward,这里我们就采用了model free算法了。

      传统的model free算法有三种:

    ————MC

    ————TD

    ————TD(lamda)

    在model free Prediction这里,三种方法相同之处是:

    使用固定的策略pai作为控制策略进行探索,获得多条episode的数据(这里的episode有的是以终止状态ST为结尾的,有的不是);

    基于大量episode的数据求取所有出现过的状态的价值预测的均值,来代表策略pai对应的状态价值函数(V(s) → vπ(s) as N(s) →∞)

    二、 MC方法

     蒙特卡洛方法直接使用一条条episode的经验。value<——mean return。

    对于同一个状态在一个episode中多次出现,分为首访蒙特卡洛和每访蒙特卡洛。首访蒙特卡洛是只考虑状态的第一次出现,而每访蒙特卡洛是每次都要计入。

    使用渐进更新:

    其实就是采样取均值,使用样本估计全局。基于大数定理当采样数足够大时均值结果就趋于于真实结果了。

    三、 TD方法

     时序差分方法直接使用一条条episode的经验。value<——mean return。

     #TD learns from incomplete episodes, by bootstrapping

     #TD updates a guess towards a guess

    TD的更新式是这样的: V(St) ← V(St) + α( Rt+1 + γV(St+1)  −V(St)),

    MC的更新式是这样的:V(St) ← V(St) + α(          Gt               −V(St))  

    虽然两种方法都是使用大量episode的均值来估取value,但

    可以看出,MC是使用完整采样来渐进更新求取均值,而TD是使用不完全采样来渐进更新求取均值。

     也正因此,TD适用于 “持续环境” ; MC受限于 “有终止态环境”                    //例如围棋alphaGo使用蒙特卡洛树搜索,围棋就是一个典型的“有终止态环境”

    TD有两个概念 “TD target”和“TD error”

      |——  TD target             Rt+1 + γV(St+1)

      ——   TD error             δt = Rt+1 + γV(St+1)−V(St

    拓展:TD n step

    是对上面的TD的一个拓展,上面我们使用Rt+1 + γV(St+1)作为TD target来计算均值估计V(St)     ==》    一步的真实采样+一个还在迭代更新中不准确的V值

    我们也可以多看几步,如Rt+1 +Rt+2 + γV(St+3)作为TD target来计算均值估计V(St),                 ==》    两步的真实采样+一个还在迭代更新中不准确的V值

                                           ....................................                                                                           ==》     n步的真实采样+一个还在迭代更新中不准确的V值

    四、 蒙特卡洛&时序差分 的 Bias / Variance 比较:

    五、 TD(λ)方法

      TD(λ)的更新式是这样的:V(St) ← V(St) + α(          Gλ               −V(St))  

      Gλ  是这样定义的:

  • 相关阅读:
    Maximum Depth of Binary Tree
    Single Number
    Merge Two Sorted Lists
    Remove Nth Node From End of List
    Remove Element
    Remove Duplicates from Sorted List
    Add Two Numbers
    编译视频直播点播平台EasyDSS数据排序使用Go 语言 slice 类型排序的实现介绍
    RTMP协议视频直播点播平台EasyDSS在Linux系统中以服务启动报错can’t evaluate field RootPath in type*struct排查
    【解决方案】5G时代RTMP推流服务器/互联网直播点播平台EasyDSS实现360°全景摄像机VR直播
  • 原文地址:https://www.cnblogs.com/dynmi/p/12306589.html
Copyright © 2011-2022 走看看