深入理解强化学习——强化学习的历史:试错学习
分类目录:《深入理解强化学习》总目录
让我们现在回到另一条通向现代强化学习领域的主线上,它的核心则是试错学习思想。我们在这里只对要点做概述,《深入理解强化学习》系列后面的文章会更详细地讨论这个主题。根据美国心理学家R.S.woodworth的说法,试错学习思想可以追溯到19世纪50年代Alexander Bain对“摸索和实验”学习方法的讨论,可以更具体地追溯到1894年英国动物行为学家和心理学家Conway Lloyd Morgan使用这个术语来描述他对动物行为的观察实验。而也许第一个简洁明确地表达出试错学习的本质是学习原则的则是Edward Thorndike:
面对同样的情境时,动物可能产生不同的反应。在其他条件相同的情况下,如果某些反应伴随着或紧随其后能够引起动物自身的满意感,则这些反应将与情境联系得更加紧密。因此,当这种情境再次发生时,这些反应也更有可能再出现。而在其他条件相同的情况下,如果某些反应给动物带来了不适感,则这些反应与情境的联系将被减弱,所以当这种情境再次发生时,这些反应便越来越不容易再现。更大的满意度或更大的不适感,决定了更强化的或更弱化的联系。
Thorndike称之为“效应定律(Law of Effect)”,因为它描述了强化事件对选择行为倾向性的影响。后来,Thorndike修改了定律,更好地解释了动物学习的数据(比如奖励和惩罚之间的区别),但各种形式的定律在学习理论专家中也产生了大量争议。尽管如此,各种形式的效应定律被普遍认为是许多行为背后的基本原则。这是Clark HuII影响深远的学习理论的基础,也是B.F.Skinner实验方法的基础。
在动物学习领域,“强化”一词从Thorndike提出效应定律之后开始使用,最早出现在巴甫洛夫的条件反射著作的1927年英文译本中。巴甫洛夫认为“强化"就是动物行为模式的增强,它来源于动物受到增强剂的刺激后与另一刺激或反应形成的短暂关系。后来,一些心理学家扩展了“强化"一词的意义,也包括了弱化过程,同时它还适用于对刺激事件的忽略或终止。强化对行为的改变会在增强剂被撤回时仍有所保留,因此只吸引动物注意或激发其行为,而不产生持久变化的刺激物不被认为是一种增强剂。
试错学习思想在计算机中的应用最早出现于关于人工智能可能性的思考中。在1948年的报告中,图灵描述了一种“快乐一痛苦系统"的设计,它是根据效应定律运作的:
当达到没有预设动作的状态时,随机选择一些没有遇到过的数据,记录并试探性地应用这些数据。如果发生了痛苦刺激,停止所有动作试探。如果发生了愉悦刺激,则一直保持动作试探。
许多精巧的电子机械设备被制造出来演示试错学习。最早的应该是1933年由Thomas Ross制造的一台机器,它能够穿越迷宫且通过开关设置记住路线。在1951年,已经因为“机械乌龟"成名的W.Grey Walter又制造了能够简单学习的版本。1952年,Claude Shannon演示了一种名叫Theseus的迷宫老鼠,它利用试错法在迷宫中摸索,迷宫本身通过磁铁和继电器在地板上记录成功的路径。J.A.Deutsch描述了一个以他的类似于基于模型的强化学习的行为理论为基础的解迷宫机器。Marvin Minsky在他的博士论文中讨论了强化学习的计算方法,描述了他组装的一台基于模拟信号的机器,他称其为“随机神经模拟强化计算器",SNARCs(Stochastic Neural-AnalogReinforcement Calculators)模拟可修改的大脑突触连接。
构建电子机械学习机器的努力逐渐让位于使用数字计算机通过编程来进行各种类型的机器学习,其中一些也实现了试错学习。Farley和Clark描述了一种通过试错学习的神经网络学习机器的数字化仿真程序。但他们的兴趣很快就从试错学习转向推广性和模式识别,即从强化学习转向有监督学习。这时这些学习类型之间的关系开始出现混乱。许多研究人员认为自己在研究强化学习,但其实是在研究有监督学习。例如,像Rosenblatt和Widrow及Hoff这样的神经网络先驱们显然是被强化学习所激励的。虽然他们使用了“收益”和“惩罚"这样的语言,但他们所研究的系统是有监督的学习系统,适用于模式识别和感知学习。即使在今天,一些研究人员和教科书也在最小化或模糊化这些不同类型的学习范式的区别。例如,一些神经网络教科书使用“试错"一词来描述从训练样本中学习的网络。这种混淆可以理解,因为这些网络就是使用误差信息来更新连接的权重的,但是这忽略了在试错学习中的行为选择的基本特征是基于评估性反馈的,而这些反馈不基于正确的行为应该是什么。
这些困惑在一定程度上,使得对真正的试错学习的研究在20世纪60和70年代变得十分罕见,尽管也有一些例外。在20世纪60年代,“强化"和“强化学习"两个术语在工程文献中首次被用于描述试错学习的工程用途。特别有影响力的是Minsky的论文《走向人工智能》,他在论文中讨论了几个关于试错学习的问题,包括预测、期望,以及他所称的“复杂强化学习系统中的基础性的功劳分配问题":对于一项成功所涉及的许多项决策,你如何为每项决策分配功劳?我们在《深入理解强化学习》系列文章中讨论的所有方法在某种意义上都是为了解决这个问题。NIinsky的论文在今天也是值得一读的。
参考文献:
[1] 张伟楠, 沈键, 俞勇. 动手学强化学习[M]. 人民邮电出版社, 2022.
[2] Richard S. Sutton, Andrew G. Barto. 强化学习(第2版)[M]. 电子工业出版社, 2019
[3] Maxim Lapan. 深度强化学习实践(原书第2版)[M]. 北京华章图文信息有限公司, 2021
[4] 王琦, 杨毅远, 江季. Easy RL:强化学习教程 [M]. 人民邮电出版社, 2022
相关文章:
深入理解强化学习——强化学习的历史:试错学习
分类目录:《深入理解强化学习》总目录 让我们现在回到另一条通向现代强化学习领域的主线上,它的核心则是试错学习思想。我们在这里只对要点做概述,《深入理解强化学习》系列后面的文章会更详细地讨论这个主题。根据美国心理学家R.S.woodworth…...
分享一个用HTML、CSS和jQuery构建的漂亮的登录注册界面
作为一个前端开发人员,我们经常需要构建用户的登录和注册界面。一个漂亮、用户友好的登录注册界面对于提升用户体验和网站形象至关重要。以下我们使用HTML、CSS和jQuery来做一个漂亮的登录注册界面。 首先,我们需要创建一个html文档,定义登录…...

Java学习 习题 1.
一、 1.2. 3. 4. 5. 二、 1. 2. 3. 4. 5. 6. 7. 8....
第六节——Vue中的事件
一、定义事件 Vue 元素的事件处理和 DOM 元素的很相似,但是有一点语法上的不同 使用修饰符(v-on:的缩写)事件名的方式 给dom添加事件后面跟方法名,方法名可以直接加括号如click"add()"里面进行传参。对应的事件处理函…...
设置GridView单选
/// <summary> /// 设置GridView单选 /// </summary> /// <param name"view"></param> /// <param name"selectCaption"></param> public static void SetGridViewSingleSel…...
[Python从零到壹] 七十二.图像识别及经典案例篇之OpenGL入门及绘制基本图形和3D图
十月太忙,还是写一篇吧!祝大家1024节日快乐O(∩_∩)O 欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希…...

论文-分布式-并发控制-Lamport逻辑时钟
目录 前言 逻辑时钟讲解 算法类比为面包店内取号 Lamport算法的时间戳原理 Lamport算法的5个原则 举例说明 算法实现 参考文献 前言 在并发系统中,同步与互斥是实现资源共享的关键Lamport面包店算法作为一种经典的解决并发问题的算法,它的实现原…...

长三角实现区块链电子医疗票据互联互通,蚂蚁链提供技术支持
10月25日,记者从浙江省财政厅发布的消息获悉,上海、浙江、江苏和安徽三省一市基于蚂蚁链实现区块链电子医疗票据互联互通,商业保险理赔作为首个规模化应用场景正式落地,蚂蚁保“安心赔”理赔服务率先接入。 今后,老百…...

Redis快速上手篇(三)(事务+Idea的连接和使用)
Redis事务 可以一次执行多个命令,本质是一组命令的集合。一个事务中的 所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞。 单独的隔离的操作 官网说明 https://redis.io/docs/interact/transactions/ MULTI、EXEC、…...

Spring三级缓存解决循环依赖问题
文章目录 1. 三级缓存解决的问题场景2. 三级缓存的差异性3. 循环依赖时的处理流程4. 源码验证 1. 三级缓存解决的问题场景 循环依赖指的是在对象之间存在相互依赖关系,形成一个闭环,导致无法准确地完成对象的创建和初始化;当两个或多个对象彼…...

Unity 中使用波浪动画创建 UI 图像
如何使用 只需将此组件添加到画布中的空对象即可。强烈建议您将此对象放入其自己的画布/嵌套画布中,因为它会弄脏每一帧的画布并导致重新生成整个网格。 注意:不支持切片图像。 using System.Collections.Generic; using UnityEngine; using UnityEng…...

支付功能测试用例测试点?
支付功能测试用例测试点是指在测试支付功能时,需要关注和验证的各个方面。根据不同的支付场景和需求,支付功能测试用例测试点可能有所不同,但一般可以分为以下几类: 功能测试:主要检查支付功能是否符合设计和业务需求…...

HFS 快速搭建 http 服务器
HFS 是一个轻量级的HTTP 服务工具,3.0版本前进提供Windows平台安装包,3.0版本开提供Linux和macOS平台的安装包。 HFS更适合在局域网环境中搭建文件共享服务或者安装配置源服务器。 甲 非守护进程的方式运行 HFS (Ubuntu 22.04) 一…...

学生专用台灯怎么选?双十一专业学生护眼台灯推荐
台灯应该是很多家庭都会备上一盏的家用灯具,很多大人平时间看书、用电脑都会用上它,不过更多的可能还是给家中的小孩学习、阅读使用的。而且现在的孩子近视率如此之高,这让家长们不得不重视孩子的视力健康问题。那么孩子学习使用的台灯应该怎…...
Go 常用标准库之 fmt 介绍与基本使用
Go 常用标准库之 fmt 介绍与基本使用 文章目录 Go 常用标准库之 fmt 介绍与基本使用一、介绍二、向外输出2.1 Print 系列2.2 Fprint 系列2.3 Sprint 系列2.4 Errorf 系列 三、格式化占位符3.1 通用占位符3.2 布尔型3.3 整型3.4 浮点数与复数3.5 字符串和[]byte3.6 指针3.7 宽度…...
antv/x6 导出图片方法exportPNG
antv/x6 导出图片方法exportPNG antv/x6 版本如下: "antv/x6": "2.14.1","antv/x6-plugin-export": "2.1.6",在文件中导入 import { Graph, Shape, StringExt } from antv/x6 import { Export } from antv/x6-plugin-exp…...

Decomposed Meta-Learning for Few-Shot Named Entity Recognition
原文链接: https://aclanthology.org/2022.findings-acl.124.pdf ACL 2022 介绍 问题 目前基于span的跨度量学习(metric learning)的方法存在一些问题: 1)由于是通过枚举来生成span,因此在解码的时候需要额…...
C++经典面试题:内存泄露是什么?如何排查?
1.内存泄露的定义:内存泄漏简单的说就是申请了⼀块内存空间,使⽤完毕后没有释放掉。 它的⼀般表现⽅式是程序运⾏时间越⻓,占⽤内存越多,最终⽤尽全部内存,整个系统崩溃。由程序申请的⼀块内存,且没有任何⼀…...

Hadoop+Hive+Spark+Hbase开发环境练习
1.练习一 1.数据准备 在hdfs上创建文件夹,上传csv文件 [rootkb129 ~]# hdfs dfs -mkdir -p /app/data/exam 查看csv文件行数 [rootkb129 ~]# hdfs dfs -cat /app/data/exam/meituan_waimai_meishi.csv | wc -l 2.分别使用 RDD和 Spark SQL 完成以下分析…...

使用Spring Boot限制在一分钟内某个IP只能访问10次
有些时候,为了防止我们上线的网站被攻击,或者被刷取流量,我们会对某一个ip进行限制处理,这篇文章,我们将通过Spring Boot编写一个小案例,来实现在一分钟内同一个IP只能访问10次,当然具体数值&am…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
WEB3全栈开发——面试专业技能点P4数据库
一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库,基于 mysql 库改进而来,具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点: 支持 Promise / async-await…...

echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式
pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图,如果边框加在dom上面,pdf-lib导出svg的时候并不会导出边框,所以只能在echarts图上面加边框 grid的边框是在图里…...