1、时间差分方法简介

强化学习中最核心也是最新奇的想法

混合DP和MC思想:

       与MC类似,TD也从历史经验中学习;与DP类似使用后继状态的值函数更新当前状态的值函数

蒙特卡洛只是适用于片断性任务

属于无模型方法

       未知P,R,需要交互,样本备份,需要充分的探索

同时利用采样和贝尔曼方程

可以从不完整的片段中学习(通过自举法)

       可同时应用于片段性任务和连续性任务

通过估计来更新估计

自举法:通过对样本进行重采样得到的估计总体的方法

样本是总体进行采样,对样本进行采样得到重采样

不用自举法:样本-> 总体

使用自举法:重采样样本-> 样本 (重采样多次可以估计分布)   样本 -> 总体

强化学习中的自举法:利用一个估计去更新另一个估计

2、时间差分评价

时间差分策略评价算法

时间差分策略评价:

时间差分策略评价算法:

策略评价算法对比-TD和DP

DP备份:全宽备份

TD备份:

利用采样进行估计

策略评价算法对比-TD和MC

MC备份:采样终止点为止

例子:

离开办公室预计回家需要30min;开到车,下雨啦调整估计,需要40min;下高速估计到家需要15min,总估30min;蹦到卡车,在卡车后面,再次估计需要40min,40min过去还在路上,估计还需要3min

蒙特卡洛:更新状态的预估,真正到家需要43min

TD和MC 的优缺点:

   TD算法在知道结果之前学习:

            TD算法在每一步之后都能在线学习

            MC算法必须等待回报值得到之后才能学习

   TD算法即便没有最终结果也能学习

          TD算法能够从不完整序列中学习

          MC算法仅仅能够从完整序列中学习

         TD算法适用于连续性任务和片段性任务

         MC算法仅仅适用于片段性任务

TD算法有多个驱动力:

         MC算法只有奖励值作为更新的驱动力

         TD算法有奖励值和状态转移作为更新的驱动力

偏差和方差权衡

       在监督学习中,偏差和方差有另外的理解--欠拟合和过拟合

               偏差大(欠拟合):预测值和样本之间的差

               方差大 (过拟合):样本值之间的方差,学出的模型适用性差

      方差大意味着样本的置信度较差

      不同的机器学习方法会在两者之间做权衡(trade-off)

RL中的偏差和方差权衡

TD和MC对比:

       MC高方差,零偏差

              收敛性较好(采用函数逼近),对初始值不太敏感,简单,容易理解和使用,随着样本数量的增加,方差逐渐减小,趋于0

      TD低方差,和一些偏差

              通常比MC效率更高,表格下TD(0)收敛到V(s)(函数逼近时不一定),对初始值更加敏感,随着样本数量的增加,偏差逐渐减少,趋近于0

批(batch)MC和TD

批MC指采样一部分样本

例子:

确定性等价估计

    MC收敛到最小均方误差的解,是对样本回报值的最佳拟合

在上述例子中,V(A) = 0

  TD(0)收敛到最大似然马尔可夫模型中的解,是对马尔科夫链的最佳拟合,假设数据是来自P,R

在例子中,V(A) = 0 + V(B) = 0.75

等价于内在动态过程是确定性的估计

TD利用马尔可夫性,一般来说TD在马尔可夫环境中更有效;MC没有利用马尔科夫性,一般对非马尔科夫环境更有效

其它比较维度

自举和采样:

   自举:使用随机变量的估计去更新(后继状态计算当前状态)MC没有自举,DP和TD都有自举

   采样:通过样本估计期望 MC和TD采样,DP不采样

从备份的角度分析区别:

DP和TD都是单不更新,所以是浅备份;TD和MC 采取采样的方式进行估计,所以是样本备份

3、时间差分优化

TD中的策略迭代:

广义策略迭代:

无模型得到策略评价比较难,不知道状态转移,所以采用Q函数;策略提升需要考虑到探索,必须得到有效的探索,使用带探索的提升

TD优化相比MC有几点好处:低方差:样本数据有限更新数据效率比较高;在线更新(online),每走一步都更新,MC数据离线更新,需要一个路径走完;不完整序列中学习,连续型任务

在策略策略优化:

SARSA算法:

做一次策略评价,做一次策略提升

在每个时间步骤(值迭代)

为什么是在策略的?

Sarsa收敛性:

定理:

GLIE是无限探索下的极限贪婪,保证充分他所,策略最终收敛到贪婪的策略,逐渐推荐为最优策略

Robbins-Monro保证不长足够大,足以克服任意的初始值,步长足够小,最终收敛(常量不长不满足)

期望Sarsa:

离策略TD评价:

对Q函数的离策略学习:

Q-学习:

Q学习优化算法

Q学习优化算法会收敛到最优的状态动作值函数

Q学习优化算法:

DP和TD之间的关系:

重温强化学习之无模型学习方法:时间差分方法相关推荐

  1. 重温强化学习之无模型学习方法:蒙特卡洛方法

    1.无模型方法简介 无模型属于学习方法的一种,(学习和规划),需要智能体和环境进行交互,一般采用样本备份,需要结合充分的探索 MDPs中未知P,R-无模型 交互是为了更加了解环境,了解状态 动态规划是 ...

  2. 重温强化学习之无模型学习方法:TD(lambda)

    1.多步自举 一步TD:TD(0),白色圈V函数,黑色Q函数,后继状态V函数更新当前状态V函数,采样,智能体和环境进行交互.根据状态采取一个动作,转为后继状态,环境给一个奖励-->采样一步得到后 ...

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

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

  4. 基于模型的强化学习比无模型的强化学习更好?错!

    作者 | Carles Gelada and Jacob Buckman 编辑 | DeepRL 来源 | 深度强化学习实验室(ID:Deep-RL) [导读]许多研究人员认为,基于模型的强化学习(M ...

  5. 强化学习(四) - 无模型学习(MC、TDL)

    上一节讲的是在已知模型的情况下,通过动态规划来解决马尔科夫决策过程(MDP)问题.具体的做法有两个:一个是策略迭代,一个是值迭代. 从这一节开始,我们将要进入模型未知的情况下,如何去解决MDP问题. ...

  6. 强化学习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 ...

  7. 强化学习之无模型方法一:蒙特卡洛

    无模型方法(model-free) 无模型方法是学习方法的一种,MDPs中如果P,R未知,则用无模型方法.该方法需要智能体与环境进行交互(交互的方式多样),一般采用样本备份,需要结合充分的探索. 由于 ...

  8. 强化学习4——无模型预测(蒙特卡洛法和TD法)

    文章目录 强化学习--无模型预测与控制 无模型的概念 无模型预测 蒙特卡洛法 基本蒙特卡洛 改进增量MC更新算法 动态规划(DP)与蒙特卡洛(MC)的区别 Temporal Difference(TD ...

  9. 重温强化学习之基于模型方法:动态规划

    基于模型的强化学习,可以用动态规划求解 动态规划要求知道马尔科夫五元组:状态集.动作集.状态转移矩阵.奖励.折扣因子    ---使用贝尔曼方程 1.前言 什么是动态规划? 2.策略评价 3.策略提升 ...

最新文章

  1. poj 1186 方程的解数(线性探测再哈希)
  2. 【ArcGIS风暴】数字化实验:数据采集与编辑完整操作流程
  3. Java面试题目,java工程师成神之路
  4. MVVM模式于MVP模式
  5. Element ui select同时获取value和label的值
  6. AMD因虚假宣传遭集体诉讼 向消费者赔偿1210万美元
  7. python:configparser模块
  8. 暴力枚举 --- 8.1 Subsets --- 图解
  9. 如何在Mac上快速显示桌面以便快速访问
  10. 论文写作: Abstract 和 Introduction 的 区别
  11. 3.3.6 Binomial Trees
  12. 阿里云 IOT 物联网平台简单使用【随笔】
  13. ardupilot软件仿真及调试(vscode版)
  14. 少儿编程培养孩子逻辑思维
  15. vs2019如何关闭自动更新
  16. Shiro反序列化漏洞【详细解析】
  17. 开发者测评:阿里云 ACR 与其他的镜像仓库到底有什么不同?
  18. 代码重构之路 --我的2022年总结
  19. electron调用python_electron教程(一): electron的安装和项目的创建
  20. 浏览页面 访客 数量 统计

热门文章

  1. Spring Boot 中使用 RabbitMQ
  2. Java并发编程之:Vector和ArrayList的区别
  3. [摘录]第五章 与奋斗者分享利益
  4. Composer 中国全量镜像(二)
  5. linux 查看文件夹大小 du命令
  6. 用VS.NET 2005重构你的代码
  7. Springboot验证表单数据和自定义验证
  8. Leetcode409最长回文串 -字符哈希
  9. 远程服务器返回了意外响应400,远程服务器返回400
  10. Linux MySQL Connector/C++ 编程实例