强化学习之 免模型学习(model-free based learning)

时间:2022-07-05 17:03:05

强化学习之 免模型学习(model-free based learning)

------ 蒙特卡罗强化学习 与 时序查分学习

  ------ 部分节选自周志华老师的教材《机器学习》

  由于现实世界当中,很难获得环境的转移概率,奖赏函数等等,甚至很难知道有多少个状态。倘若学习算法是不依赖于环境建模,则称为“免模型学习(model-free learning)”,这比有模型学习要难得多。

  1. 蒙特卡罗强化学习:

  在免模型学习的情况下,策略迭代算法会遇到几个问题:

  首先,是策略无法评估,因为无法做全概率展开。此时 只能通过在环境中执行相应的动作观察得到的奖赏和转移的状态、一种直接的策略评估代替方法就是“采样”,然后求平均累积奖赏,作为期望累积奖赏的近似,这称为“蒙特卡罗强化学习”。

  第二,就是策略迭代算法估计的是 状态值函数(state value function) V,而最终的策略是通过 状态动作值函数(state-action value function) Q 来获得。模型已知时,有很简单的从 V 到 Q 的转换方法,而模型未知 则会出现困难。所以我们将估计对象从 V 转为 Q,即:估计每一对 “状态-动作”的值函数。

  总而言之,就是在模型未知的时候,我们从初始状态出发,使用某种策略进行采样,执行该策略 T 步并获得轨迹:

  $x_0, a_0, r_1, x_1, a_1, r_2, ... , x_{T-1}, a_{T-1}, r_{T-1}, x_T$

  然后,记录轨迹中每一个 状态-动作对 的奖赏之和,作为该 状态-动作对 的一次累积奖赏采样值。多次采样得到多条轨迹,对其求平均 作为状态-动作值函数的估计。

  此外,为了得到较好的奖赏,仅仅依靠某一个策略进行采样是不充分的,需要额外的采用其他策略来进行探索,类似于 K-摇臂赌博机,以一定的概率随机的选择一个动作执行,然后以 另一个概率 从当前的动作集合中进行选择 奖赏最大的动作,进行执行。

  在策略评估完毕后,同样要进行策略改进,这里由于“被评估”和“被改进”的是同一个策略,因此称为“on-policy(同策略)”蒙特卡洛强化学习算法。

  此处需要注意的是:我们将确定性的策略 $\pi$ 称为“原始策略”,而原始策略上使用贪心算法之后的策略记为:$\epsilon-贪心$。

  


  2. 时序差分学习(TD):

  与基于 策略迭代 和 值迭代的算法相比,蒙特卡洛算法需要采样完成一个轨迹之后,才能进行值估计(value estimation),这样看,就感觉蒙特卡洛速度很慢啊!据说主要原因在于 蒙特卡洛没有充分的利用强化学习任务的 MDP 结构。但是, TD 充分利用了 “MC”和 动态规划的思想,做到了更加高效率的免模型学习。

  MC 的本质是通过多次采样后计算平均 作为期望累积奖赏的近似。但是由于是 一个轨迹采样完成后 才对各个 状态-动作对进行更新,所以是属于“批处理”的方式,那么怎么将其改成 online版本的呢?从而实现 增量的更新?

  众所周知 Online版本的算法与 批处理很大的不同在于, online可以实现 一个一个的递增的更新,那么此处就有:

  不妨假设在 第 t 次采样的时候,已经估计出 值函数 Q(s, a),则在第 t + 1 次采样的时候,就有:

  $Q_{t+1}^{\pi} (x, a) = Q_{t}^{\pi} (x, a) + \frac{1}{t+1}(r_{t+1} - Q^{\pi}_t (x, a))  $

  

  

  


  

  3. 策略评估 与 策略改进:

  

  策略评估是为了检查当前策略是否是最优策略,若不是最优策略,需要对当前策略进行改进。

  当模型已知的时候,对任意策略都可以估计出该策略可以带来的 期望累积奖励。

  此处有两个估计函数,即:state-action value function Q(s, a) 以及  state value function V(s):

  state value function V(s) 是从状态 s 出发,按照某策略,所能够得到的累积奖励;

  state-action value function Q(s, a) 是从状态 s 出发,执行动作 a 之后,再使用当前策略,所能够得到的累积奖赏。

  利用这两个 value function  就可以对策略进行测试 或者讲是评估,那么,如果并非最优策略,那么如何对其进行改进呢?

  迭代的求解最优值函数 就可以得到最大化的累积奖赏。

  最优贝尔曼等式(Bellman Equation)解释了非最优策略的改进方式:

  将策略选择的动作  改变为  当前最优的动作。


  4. 策略迭代 与 值迭代

  所谓策略迭代 也就是将策略评估 和 策略改进 组合起来使用,即首先进行策略评估,然后进行策略改进,在评估,再改进,直到达到最优策略。

  那么,什么是 值迭代呢?

  由于 策略改进 和 值函数的改进是一致的,因此  可以将策略改进 看做是 值函数的改善。所以,值迭代其实就是以更新 值函数的形式 对策略进行改善,这也就是值迭代的定义。

  

强化学习之 免模型学习(model-free based learning)的更多相关文章

  1. backbone学习笔记:模型(Model)(2)属性验证

    Backbone的属性验证有2种方法: 1.Backbone自带简单的验证方法,但是验证规则需要自己实现 通过validate()方法进行验证,验证规则写在此方法里. var RoomModel = ...

  2. backbone学习笔记:模型(Model)(1)基础知识

    backbone为复杂Javascript应用程序提供MVC(Model View Controller)框架,框架里最基本的是Model(模型),它用来处理数据,对数据进行验证,完成后台数据与前台数 ...

  3. keras模块学习之泛型模型学习笔记

    本笔记由博客园-圆柱模板 博主整理笔记发布,转载需注明,谢谢合作! Keras泛型模型接口是:  用户定义多输出模型.非循环有向模型或具有共享层的模型等复杂模型的途径  适用于实现:全连接网络和多输入 ...

  4. keras模块学习之Sequential模型学习笔记

    本笔记由博客园-圆柱模板 博主整理笔记发布,转载需注明,谢谢合作! Sequential是多个网络层的线性堆叠 可以通过向Sequential模型传递一个layer的list来构造该模型: from ...

  5. 强化学习(十七) 基于模型的强化学习与Dyna算法框架

    在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Policy Based RL),本篇我们讨论最后一种强化学习流派,基于模型的强化学习(Model Base ...

  6. ICML 2018 | 从强化学习到生成模型:40篇值得一读的论文

    https://blog.csdn.net/y80gDg1/article/details/81463731 感谢阅读腾讯AI Lab微信号第34篇文章.当地时间 7 月 10-15 日,第 35 届 ...

  7. GAN︱生成模型学习笔记(运行机制、NLP结合难点、应用案例、相关Paper)

    我对GAN"生成对抗网络"(Generative Adversarial Networks)的看法: 前几天在公开课听了新加坡国立大学[机器学习与视觉实验室]负责人冯佳时博士在[硬 ...

  8. 深度学习在美团点评推荐平台排序中的应用&& wide&&deep推荐系统模型--学习笔记

    写在前面:据说下周就要xxxxxxxx, 吓得本宝宝赶紧找些广告的东西看看 gbdt+lr的模型之前是知道怎么搞的,dnn+lr的模型也是知道的,但是都没有试验过 深度学习在美团点评推荐平台排序中的运 ...

  9. [Django]模型学习记录篇--基础

    模型学习记录篇,仅仅自己学习时做的记录!!! 实现模型变更的三个步骤: 修改你的模型(在models.py文件中). 运行python manage.py makemigrations ,为这些修改创 ...

随机推荐

  1. poj 3126

    一道搜索的水题,其实搜索相对其他的来说好掌握一点,因为有个固定的模板可以用去套 题目大意就是数字的变化,一个数字只可以变化到它最相邻的一个素数上去,意思是只变化一位数字,求最短的变化方案 #inclu ...

  2. 通往成功的钥匙--Web前端开发技术

    互联网是一个服务性行业,用户对网站良好的体验度,直接影响到网站的效果.无论你做了多少广告推广,没有用户体验度等于零.Web前端技术是为了解决用户体验度而诞生的.无论是百度.新浪.阿里巴巴等大型网站,还 ...

  3. initWithFrame 和 initWithCoder

    当我们所写的程序里没用用Nib文件(XIB)时,用代码控制视图内容,需要调用initWithFrame去初始化 - (id)initWithFrame:(CGRect)frame { if (self ...

  4. FS拓展设置

    一.集群测试说明: 1.该测试的主要目的是:让两个注册在不同FS Server上的账号彼此双方通话. 2.测试工具:eyeBeam .LinPhone 3.FS架构图: 上图中两台FS的分机状况如下: ...

  5. How can I work smarter, not just harder? Ask it forever

    How can I  work smarter, not just harder? 记住,永远要问自己这个问题.当你发现在做一件事情时,总是那么的繁琐无味,那么一定是出了什么问题. 如果一味地强调更加 ...

  6. POJ 3067 Japan

    Japan Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25489   Accepted: 6907 Descriptio ...

  7. IOS应用程序多语言本地化解决方案

    最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享! 多语言在应用程序中一般有两种做法:一.程序中提供给用户自己选择的机会:二.根据当前用户当前移动设备 ...

  8. poj 1273 Drainage Ditches (网络流 最大流)

    网络流模板题. ============================================================================================ ...

  9. Oracle压缩总结2— 估计表压缩效应

    使用压缩前,我们可以估算压缩能有多大效果. 11gr2我已经能够使用dbms_comp_advisor,具体代码见附件.只需要运行两个文件dbmscomp.sql和prvtcomp.plb.然后使用D ...

  10. 比起Windows,怎样解读Linux的文件系统与目录结构?

    比起Windows,怎样解读Linux的文件系统与目录结构? Linux 和Windows的文件系统有些不同,在学习使用 Linux 之前,若能够了解这些不同,会有助于后续学习. 本文先对Window ...