之前我们说的方法都是在为这一节课程做准备的,强化学习的最终目的是我们实现对实际问题的控制优化。根据探索策略(行动策略)和评估策略是否为同一个策略。强化学习的方法可以分为on-policy(同策略)和off-policy(异策略)两种方法。

on-policy是指产生数据的策略与评估和要改善的策略是同一个策略。off-policy是指产生数据的策略和改善评估的策略不是同一个策略。

我们接下来需要用到之前动态规划中的主要思想方法,大体上说的话还是策略迭代。策略迭代过程中,我们首先需要对策略进行评估,之后的话我们改进策略。整个过程可以用下面这张ppt展示出来:

上面那条线条代表的就是策略评估,每一次策略评估之后我们就会得到一个新的值函数,下面那条线就是策略改善,在策略改善里面我们也有函数,比如说是贪婪算法。这样的方法和之前说的动态规划算法是一样的。我们现在要做的就是给插入的这两个过程更多的选择,使其得到更好的效果。

让我们看一下蒙特卡洛方法,是怎么实现上述思想的:

如果我们使用蒙特卡洛方法的话,我们就可以用蒙特卡洛方法对其进行策略评估,而不是动态规划的方法对其进行评估。之后的话我们使用Greedy policy来对其进行改善:

但是这里有个问题就是,当我们加入了贪婪策略之后,我们可能不能够探索到整个的状态空间,我们可能会偏向于探索我们喜欢的那个空间。还有一个问题就是,策略评估采取的是蒙特卡洛方法,这将会导致我们的整个算法收敛速度很慢。依据是否有模型,我们的策略选择方法如下图所示:

但是这种贪婪算法的问题就是,我们可能没有办法去理解那些我们最开始没有选择的动作。所以我们需要去设计一个温和的策略,即对所有的状态s和a满足。这样的话就能够使得在任意状态下,采用动作集中每个动作的概率都将会大于0。

这种方法在理论上的证明如下图所示:

我们在进行策略评估的时候,我们并不需要沿着下图所示的线搜索完整个过程。我们没有必要完全对所有的策略进行评估。有时我们只需要再走几步,对策略进行一下评估,而你已近获得了足够的信息,来将你引导到一个更好的策略之中,这样的话就不需要浪费这么多的迭代,来收集更多的信息。

我们如何保证我们找到的最好的策略呢?我们想要找到的是最好的行为,为了达到上述目的,我们需要寻找到两个事物之间的平衡,其中之一就是我们需要继续探索,但要保证在探索的过程中并没有丢掉或者说是遗漏更好的策略。另一方面,当我们已近有了一个最好的策略之后,我们就不想再探索了,我们觉得找到的最好的策略是不应该包含随机行为的。那么我们如何权衡这两个因素呢?其中有一种方法叫做greedy in the limit with infinite exploration(GLIE)。

这种方法需要满足的条件就是,每个状态都能够有机会被访问到,第二个就是要确保最终这个策略是贪婪策略。之所以要是贪婪策略,是因为我们需要这个策略最终能够满足贝尔曼方程,它需要一个最大值。

我们如果采用时序差分的方法的话,我们的算法往往会有更高的效率,因为它更加稳定,随机变化相对较少。并且可以使用在不完整的序列当中。我们很自然的想法就会使用TD的方法,而不是选择蒙特卡洛的方法。

我们将TD的方法应用到状态动作值函数里面的话,我们可以得到sarsa算法:

如果我们的真实奖励取的是多个时刻的话,我们的算法就会变成了sarsa(lamda),下面我们给出sarsa(lamda)的算法更新公式。

我们刚刚说的都是同策略的方法,但是很多时候我们的策略都是异策略的,指的是产生数据的策略与要改善的策略不是同一个策略。我们为什么要学习异策略的强化学习方法呢?

1.我们可以利用这种方法通过观察别的agent的行为从而进行学习。

2.我们可以利用这种方法使用老的数据,如DQN中的经验回放。

3.我们使用经验数据的话,我们的策略是可以进行很大程度上的探索的。

4.我们可以利用一个策略来学习多个策略下的数据,这样学习出来的策略会具备更好的性能。

在异策略学习的问题中,我们通常会关注两个问题,第一个就是重要性采样。重要性采样源于求取期望:

那我们可能会疑问,为什么要做重要性采样呢?我们可以想象成第一个等式是求取奖励函数的期望,我们事件发生的概率p乘以获得的奖励f得到奖励函数的期望值。但是在实际的强化学习过程中,我们的概率分布p可能是非常复杂的,或者说是当agent更新完参数之后,我们的概率分布发生了改变。这个时候我们假设有一个新的分布Q,能够在更高维的空间去满足我们强化学习奖励的分布。就可以将上图1式变化为2式,从而我们转变成求取概率分布Q的期望,如上图3式所示。

我们看一下对蒙特卡洛实行重要性采样的结果:

上图中的求取奖励函数的期望的公式就相当于:每一步都做了重要性采样,然后把它们乘起来。基于重要性采样的积分估计为无偏估计,估计的期望值等于真实期望。但是,由于重要性采样的积分估计改变了被积函数的形状以及分布,这使得它的方差发生了明显的变化。因此,采样概率分布与原概率分布越接近,方差越小。在TD方法中采取重要性采样的话如下图所示:

TD方法的话可以帮助我们筛选拒绝掉不实用采样分布,当然,TD方法的变化情况依然很多,并且会不断增加,这就是重要性采样的一个特点。但是比蒙特卡洛方法还是要好很多的。

那么什么方法适用于对未知策略学习方法呢?就是Q-learning,是时序差分的一个特例,还有是Sarsa学习方法。

我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

本文是自己学习David Silver课程的学习笔记:原视频可以在油管或者B站上搜到。

PPT的连接如下:http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html。网速慢的话可以点击这里。

Lecture 5:无模型控制相关推荐

  1. 强化学习4——无模型控制model-free control (On-Policy learning:Sarsa和Off-policy learning:Q-learning)

    文章目录 前言 无模型控制 问题 思路 方法 On-Policy learning MC Sarsa Off-policy learning Q-learning On-Policy learning ...

  2. 【神经网络】基于RBF神经网络的六关节机械臂无模型控制

    前言:最近在搞神经网络,看到有用神经网络逼近未建模动态的,也有用神经网络来逼近整个模型的,后者即是无模型控制.无模型控制它不需要知道系统的名义模型,直接用神经网络来逼近整个系统,感觉这个方法还蛮厉害的 ...

  3. 高阶无模型自适应迭代学习控制学习记录

    高阶无模型自适应迭代学习控制 参考文献 "High-Order Model-Free Adaptive Iterative Learning Control of Pneumatic Art ...

  4. 无模型自适应迭代学习控制原理和matlab代码仿真学习记录

    无模型自适应ILC原理及代码实现 这里学习的是很老的一篇论文<基于无模型自适应控制的反馈-前馈迭代学习控制系统收敛性研究>,作者是晏静文和侯忠生,大家有兴趣可以找来看看.这里主要介绍的无模 ...

  5. [论文]基于强化学习的无模型水下机器人深度控制

    基于强化学习的无模型水下机器人深度控制 摘要 介绍 问题公式 A.水下机器人的坐标框架 B.深度控制问题 马尔科夫模型 A.马尔科夫决策 B.恒定深度控制MDP C.弯曲深度控制MDP D.海底追踪的 ...

  6. 采用龙贝格观测器进行无传感器控制模型

    该模型采用龙贝格观测器进行无传感器控制 其利用 PMSM 数学模型构造观测器模型,根据输出的偏差反馈信号来修正状态变量. 当观测的电流实现与实际电流跟随时, 可以从观测的反电势计算得到电机的转子位置信 ...

  7. 该模型采用离散化的龙贝格观测器进行无传感器控制 其利用 PMSM 数学模型构造观测器模型,根据输出的偏差反馈信号来进行PLL得到速度和角度

    该模型采用离散化的龙贝格观测器进行无传感器控制 其利用 PMSM 数学模型构造观测器模型,根据输出的偏差反馈信号来进行PLL得到速度和角度. 当观测的电流实现与实际电流跟随时,可以从观测的反电势计算得 ...

  8. 离散化的龙贝格观测器进行无传感器控制模型

    该模型采用离散化的龙贝格观测器进行无传感器控制 其利用 PMSM 数学模型构造观测器模型,根据输出的偏差反馈信号来进行PLL得到速度和角度. 当观测的电流实现与实际电流跟随时,可以从观测的反电势计算得 ...

  9. 《强化学习周刊》第25期:DeepMind提出无模型风险敏感强化学习、谷歌发布 RLDS数据集生态系统...

    No.25 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...

  10. 强化学习3——有模型(Model-base)与无模型(Model-free)RL的区别

    文章目录 强化学习--有模型(Model-base)与无模型(Model-free)RL Model-base RL Model-free RL 有模型与无模型预测和控制的方法 预测之间的区别 控制之 ...

最新文章

  1. matlab中-psi_matlab输出论文仿真图
  2. pyBoard定时器中断中不能够做什么操作? MicroPython,pyBoard
  3. 呼叫中心团队管理浅谈
  4. c#获取txt,word,excel文档内容方法
  5. 我要学ASP.NET MVC 3.0(八): MVC 3.0 传递和保存你的Model
  6. Python中操作mysql的pymysql模块详解
  7. 国内流行的两大开源.net微信公众平台SDK对比分析
  8. 最优化问题中,牛顿法为什么比梯度下降法求解需要的迭代次数更少?
  9. python分段函数输入x的值求y的值,根据以下分段函数计算y的值,要求x的值由键盘输入,...
  10. 基于python的学生信息管理系统文献综述_学生信息管理系统----文献综述
  11. 滤波算法(二)—— 中位值滤波算法
  12. STM32接入机智云--实现数据上传和命令下发
  13. JS+MySQL获取 京东 省市区 地区
  14. Oracle VS SAP
  15. 英特尔核显驱动hd630_英特尔首款独显Xe Max 评测出炉:低于移动端 GTX 1050 Ti
  16. 朴素贝叶斯与贝叶斯信念网络
  17. python安装PIL模块
  18. 软件授权文件.lic文件
  19. python查找单词的位置_Python实现单词查询文件查找
  20. 斯坦福I2V:一个用于以图搜视频的新闻视频数据集

热门文章

  1. G1手机上的VOIP之旅 - SIP Server + SipDroid
  2. CocosCreator2.3.1按钮节点防止多次连续点击
  3. 游戏筑基开发之文件操作(C语言)
  4. 网工界的TFBOYS——netmikotextfsmntc-templates快速入门
  5. HCIE Secuirty 防火墙内容安全组合 备考笔记(幕布)
  6. Leetcode 刷题笔记(二十三) ——动态规划篇之基础题目
  7. php 图片上传 文件上传 大小 限制
  8. 19. Rootkit detectors (隐形工具包检测器 5个)
  9. struts2--Basic(一)
  10. 如何在form初始化时自动隐藏FOLDER列