当前位置: 首页 > news >正文

深入理解强化学习——强化学习的历史:时序差分学习

分类目录:《深入理解强化学习》总目录
相关文章:
· 强化学习的历史:最优控制
· 强化学习的历史:试错学习
· 强化学习的历史:试错学习的发展
· 强化学习的历史:K臂赌博机、统计学习理论和自适应系统
· 强化学习的历史:时序差分学习


时序差分学习方法的特点在于它是由时序上连续地对同一个量的估计驱动的,例如下赢井字棋的概率。这条主线比起其他两条更微小、更不显著,但是却对这个领域有很重要的影响,部分原因是因为时序差分学习方法对于强化学习来说似乎是全新且独一无二的。

时序差分学习的概念部分源于动物学习心理学,特别是次级强化物的概念。次级强化物指的是一种与初级强化物(例如食物或疼痛等)配对并产生相似的强化属性的刺激物。Minsky可能是第一个认识到这个心理学的规律对人工智能学习系统很重要的人。ArthurSamuel首次提出并实现了一个包含时序差分思想的学习算法,这个算法是他著名的跳棋程序的一部分。

SamueI既没有参考Minsky的工作也没有与动物学习的理论发生任何联系。他的灵感显然来自于Claude Shannon的建议,Shannon认为计算机可以利用一个估值函数通过编程玩棋类游戏,并且也许能够通过在线修改这个函数来进一步提升性能。Minsky在他的“边向人工智能"论文中更详细地讨论了Sarnuel的工作,提出这项工作与自然以及人工次级强化物理论的联系。

正如我们所讨论的,在Minsky和Samuel发表成果之后的十年,在试错学习领域很少有计算性的研究工作,而时序差分学习领域完全没有计算性的工作。直到1972年,Klopf将试错学习与时序差分学习的一个重要部分相结合。Klopf的研究兴趣在于能够推广到大规模系统中的学习方法,因此他受局部强化的思想所启发,即一个学习系统的各部分可以相互强化。他发展了“广义强化"的概念,即每一个组件(字面上指每一个神经元)将其所有的输人视为强化项:将兴奋的输人视为奖励项,将抑制的输人视为惩罚项。这和我们现在所说的时序差分学习的想法是不同的,追溯起来这个工作比起Samuel的工作离时序差分学习差得更远。而另一方面,Klopf将这个思想与试错学习联系起来,并且将它和动物学习心理学的大量经验数据相关联。

Sutton进一步探索了KIopf的想法、尤其是和动物学习理论的联系。他将由变化导致的学习规则用短期的连续预测表达。他和Barto优化了这些想法并基于时序差分学习建立了一个经典条件反射的心理学模型,之后又有一些其他的有影响力的基于时序差分学习的经典条件反射的心理学模型跟进。当时提出的一些神经科学的模型也可以用时序差分学习来很好地进行解释,尽管这些模型大多数并没有历史上的联系。

我们早期在时序差分学习上的工作受到了动物学习理论以及Klopf的工作的很大影响。我们的工作与Minsky的“迈向人工智能"论文和Samuel的跳棋程序的联系是后来才被认识到的。然而在1981年时,我们完全认识到了之前提到的所有工作是时序差分学习和试错学习主线的一部分。那时我们提出了一种方法用来在试错学习中使用时序差分学习,即“行动器-评判器"(Actor-Critic)架构,并将这种方法应用于Michie和Chambers的平衡杆问题。Sutton在他的博士论文中详细地研究了这个方法,并在Anderson的博士论文中进一步引人了反向传播的神经网络。大约在同一时间,Holland将时序差分的思想通过他的救火队算法应用到他的分类器系统。时序差分算法发展的一个关键步骤是Sutton在1988年推进的,他将时序差分学习从控制中分离出来,将其视作一个一般的预测方法。那篇论文同时介绍了 TD ( λ ) \text{TD}(\lambda) TD(λ)算法并证明了它的一些收敛性质。

在1981年,当我们正在完成“行动器-评判器"架构的工作时,我们发现了lan Witten的一篇论文,它是已知最早的一篇包含时序差分学习规则的论文。他提出了我们现在称为 TD ( 0 ) \text{TD}(0) TD(0)的方法,将其作为自适应控制器的一部分来处理马尔可夫决策过程。这个成果起初于1974年提交到杂志发表,并在Witten的1976年的博士论文中出现。Witten做了Andreae早年用STeLLA以及其他试错学习系统进行实验的后继工作。因此,Witten1977年的论文囊括了强化学习研究的两个主要方向一一试错学习以及最优控制,同时在时序差分学习方面做出了重要的早期贡献。

在1989年,Chris watkins提出的Q学习将时序差分学习和最优控制完全结合在了一起。这项工作拓展并整合了强化学习研究的全部三条主线的早期工作。PauI Werbos自1977年以来证明了试错学习和动态规划的收敛性,也对这项整合做出了贡献。自watkins的成果发表后,强化学习的研究有了巨大的进步,主要是在机器学习领域,当然也包括神经网络以及更广泛的人工智能领域。在1992年,Gerry Tesauro的西洋双陆棋程序TD-Garnmon的巨大成功使这个领域受到了更多的关注。

除此之外,神经科学方面产生了一个多产的子领域,这个子领域关注强化学习算法和神经系统中的强化学习的关系。这个领域的兴起主要是由于许多研究者发现了时序差分算法的行为和大脑中产生多巴胺的神经元的活动的神奇的相似性。《深入理解强化学习》系列后面的文章会介绍强化学习这一令人兴奋的特点。

参考文献:
[1] 张伟楠, 沈键, 俞勇. 动手学强化学习[M]. 人民邮电出版社, 2022.
[2] Richard S. Sutton, Andrew G. Barto. 强化学习(第2版)[M]. 电子工业出版社, 2019
[3] Maxim Lapan. 深度强化学习实践(原书第2版)[M]. 北京华章图文信息有限公司, 2021
[4] 王琦, 杨毅远, 江季. Easy RL:强化学习教程 [M]. 人民邮电出版社, 2022

相关文章:

  • FFmpeg 从视频流中抽取图片
  • H5 Vue跳转小程序
  • Nginx 的配置文件(负载均衡,反向代理)
  • linux中断下文工作队列之工作队列传参(中断七)
  • css文字竖向排列
  • 部署K8S
  • Vue 3.0 学习 新特性
  • Python-platform模块
  • 1-1 暴力破解-枚举
  • 代码之困:那些让你苦笑不得的bug
  • html和css中图片加载与渲染的规则是什么?
  • 系列四十五、Spring的事务传播行为案例演示(五)#MANDATORY
  • 驱动第十天
  • libpcap获取数据包
  • 前度开发面试题
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 30天自制操作系统-2
  • css属性的继承、初识值、计算值、当前值、应用值
  • Java面向对象及其三大特征
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Spark学习笔记之相关记录
  • TypeScript实现数据结构(一)栈,队列,链表
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • windows下如何用phpstorm同步测试服务器
  • windows下使用nginx调试简介
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 和 || 运算
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 你不可错过的前端面试题(一)
  • 手写一个CommonJS打包工具(一)
  • 译自由幺半群
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​ubuntu下安装kvm虚拟机
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • # 数据结构
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (pytorch进阶之路)扩散概率模型
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .net(C#)中String.Format如何使用
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET的数据绑定