一、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λ  是这样定义的:

<强化学习>无模型下计算给定策略对应的价值函数,Model free Prediction,评估一个给定策略的表现的更多相关文章

  1. 用深度强化学习玩FlappyBird

    摘要:学习玩游戏一直是当今AI研究的热门话题之一.使用博弈论/搜索算法来解决这些问题需要特别地进行周密的特性定义,使得其扩展性不强.使用深度学习算法训练的卷积神经网络模型(CNN)自提出以来在图像处理 ...

  2. AI之强化学习、无监督学习、半监督学习和对抗学习

    1.强化学习 @ 目录 1.强化学习 1.1 强化学习原理 1.2 强化学习与监督学习 2.无监督学习 3.半监督学习 4.对抗学习 强化学习(英语:Reinforcement Learning,简称 ...

  3. 论文:利用深度强化学习模型定位新物体(VISUAL SEMANTIC NAVIGATION USING SCENE PRIORS)

    这是一篇被ICLR 2019 接收的论文.论文讨论了如何利用场景先验知识 (scene priors)来定位一个新场景(novel scene)中未曾见过的物体(unseen objects).举例来 ...

  4. 【转】强化学习(一)Deep Q-Network

    原文地址:https://www.hhyz.me/2018/08/05/2018-08-05-RL/ 1. 前言 虽然将深度学习和增强学习结合的想法在几年前就有人尝试,但真正成功的开端就是DeepMi ...

  5. 强化学习论文(Scalable agent alignment via reward modeling: a research direction)

     原文地址: https://arxiv.org/pdf/1811.07871.pdf ======================================================== ...

  6. 深度强化学习资料(视频+PPT+PDF下载)

    https://blog.csdn.net/Mbx8X9u/article/details/80780459 课程主页:http://rll.berkeley.edu/deeprlcourse/ 所有 ...

  7. 【整理】强化学习与MDP

    [入门,来自wiki] 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的 ...

  8. 强化学习(二)马尔科夫决策过程(MDP)

    在强化学习(一)模型基础中,我们讲到了强化学习模型的8个基本要素.但是仅凭这些要素还是无法使用强化学习来帮助我们解决问题的, 在讲到模型训练前,模型的简化也很重要,这一篇主要就是讲如何利用马尔科夫决策 ...

  9. DRL强化学习:

    IT博客网 热点推荐 推荐博客 编程语言 数据库 前端 IT博客网 > 域名隐私保护 免费 DRL前沿之:Hierarchical Deep Reinforcement Learning 来源: ...

随机推荐

  1. 反射工具类【ReflectionUtils】

    反射工具类[ReflectionUtils] 原创 2017年05月05日 00:45:43 标签: java / 反射 / reflection / 893 编辑 删除 import java.la ...

  2. MySQL操作之DML

    目录 SQL语句的分类 DML语句 SQL语句的分类 DDL(Data Definition Languages)语句:数据定义语言.这些语句定义了不同的数据段. 数据库.表.列.索引等数据库对象的定 ...

  3. VMwara虚拟机三种网络模式

    虚拟机:虚拟机是能够让用户在一台物理机上模拟出多个操作系统的软件其本质是通过中间层实现计算机资源的管理和再分配让系统资源的利用率最大化VMware即是一款虚拟机软件注意:虚拟机和操作系统的区别,虚拟机 ...

  4. Unity初识项目结构与面板

    一.Unity的项目结构 Unity中的一个项目是有若干个场景组成的,每一个场景又是由若干个游戏对象组成的,每一个游戏对象身上有若干个组件,每一个组件有若干个属性. 项目——>场景——>游 ...

  5. Linux开机流程及运行级别

    启动流程: 没有运行程序的硬件除了会电人,没有别的用处.那么计算机是如何识别软件并执行的呢?下面介绍操作系统的开机启动流程: BIOS:开机时主动执行的第一个程序,会识别存储设备. MBR:第一个可开 ...

  6. 「SP1043」GSS1 - Can you answer these queries I

    传送门 Luogu 解题思路 这题就是 GSS3 的一个退化版,不带修改操作的区间最大子段和,没什么好讲的. 细节注意事项 咕咕咕 参考代码 #include <algorithm> #i ...

  7. body滚动时左侧菜单固定

    var top = $(".nav-frame").offset().top $(document).scroll(function(){ if($(this).scrollTop ...

  8. win10下python3安装深度学习一般要用的库

    matplotlib :绘图库 seaborn:基于matplotlib的图形可视化包 numpy:函数.矩阵运算库 pandas :基于numpy的结构化数据分析库 首先看一下cmd能不能使用pip ...

  9. leetcode841 Keys and Rooms

    """ There are N rooms and you start in room 0. Each room has a distinct number in 0, ...

  10. sklearn中实现多分类任务(OVR和OVO)

    sklearn中实现多分类任务(OVR和OVO) 1.OVR和OVO是针对一些二分类算法(比如典型的逻辑回归算法)来实现多分类任务的两种最为常用的方式,sklearn中专门有其调用的函数,其调用过程如 ...