论文速递:通过模拟大脑-解决深度学习中的灾难性遗忘

来源:混沌巡洋舰

灾难性遗忘指的是:不像人类,当深度学习模型被训练完成新的任务时,他们很快就会忘记以前学过的东西。8月13号的自然通讯论文Brain-inspired replay for continual learning with artificial neural networks,介绍了如何通过在模拟大脑中的“回放”机制,解决该问题。

灾难性的遗忘出现,并不是由于网络容量有限,为了完成新任务(区分牛和羊),不得不忘记旧任务(区分猫和狗)。同样的网络可以学习如果单独训练,可以完成新旧两类任务(区分猫和牛)。然而,在现实世界中,训练样本并没有交错出现,而是先呈现任务A,再呈现任务B的训练样本。

如果能够存储以前遇到的示例,并在学习新东西时重新访问它们。那就能够避免灾难性遗忘。然而这种解决方案,在大数据集上的可扩展性受到了质疑,因为不断重新训练所有以前学过的任务是非常低效的,而且需要存储的数据量会变得无法快速管理。

在大脑中,一种被认为对维持记忆很重要的机制是:代表这些记忆的神经元活动模式会被重新激活,这被认为对于稳定新的记忆非常重要。大脑显然已经实现了一种高效且可扩展的持续学习算法。这种记忆回放由海马体调控,一般发生在刚刚睡眠和即将醒来的时间段。

在人工神经网络中,类似的记忆回放可以被称为“生成性回放”,本文提出的,正是这样一种受大脑启发,改进后回放机制,使训练数据中内部被隐藏的特征,而不是数据本身被回放(重复训练)。被回放的表征是由网络自身的、上下文调制的反馈连接生成的。

传统的回放以及本文提出的基于生成模型的回放

上图中左边为传统的回放机制,即在训练神经网络做新的分类任务时,在训练数据中随机加入之前任务的训练数据;而右图代表的生成式的回放机制,即随机加入的,不是原有的训练数据,而是由生成器(另一个训练好的神经网络)产生的代表了原训练数据特征的数据。

具体的训练过程,如上图所示。在任务1时,训练一个分类模型M,一个生成模型G(例如变分自编码器),之后训练任务2时,训练数据在原本的数据集之外,加上了随机抽样产生的包含任务1特征的模拟数据,以及前一步生成器产生的对数据的标签,依次类推。

之所以生成式的模型能够应对大数据量,是由于生成模型产生的回放数据,不需要有原数据集那么高的像素,且为避免灾难性遗忘的出现,所需的训练数据的样本数也少于使用用原数据进行回放,从而减少了计算量。而这背后的根本原因,在于生成的数据已经对数据特征进行了提取,因此其能够用更少的数据,训练分类模型区分前一任务所需提取的模式。

本文还在基础版的生成式回放基础上,提出了几项改进方案。首先是让生成器和分类器共用最初的特征提取层,从而在生成器和分类器之间,建立起双向的反馈,图中的橙色部分,可以看成是VAE的输出,经过了softmax分类得到的标签,被当成回放数据集用于之后训练。这项改进模仿了大脑的结构,大脑中,负责回放的海马体会将信号传给脑特征提取的皮质。

第二项改进是针对每一类数据,分别训练一种生成模型,从而可以根据特定条件,选择不同类型的数据回放。具体的做法是,将生成器的输入的输入,由一个从标准正态分布中的随机抽样,变成数据聚类后,每一类数据对应的高斯分布中进行抽样。

第三项改进,为了避免生成的数据,带有原训练数据中背景所对应的偏差,从而对回放造成干扰。可以每次生成回放数据时,随机的关闭ANN中的部分神经元,从而以类似dropout的方式,避免生成的回放数据产生过程中所带的背景偏差。

第四项改进,是在隐藏层就加入回放数据,而不是像之前那样,将生成的图像与对应的标签重新训练。这么做能够减少运算量。之所以能够这样做,是由于最初的特征提取,不论何种任务都是相同的。

除了利用神经科学的认知,来提升人工神经网络的持续学习能力,这项工作的另一个目的是说明大脑中的重放机制,对人类智能所起到的意义。本研究首次证明重放可能确实是大脑对抗灾难性遗忘的一种可行的方法。文中假定大脑中的回放是一个生成过程。这一猜想与越来越多的实验工作报告一致,即大脑中重复出现的表征并不直接反映经验,而是可能是世界学习模型的样本。

笔者分享该论文,是由于该研究是类脑计算,即通过模仿大脑,提升神经网络的典型案例。且文中的回放机制,让我想起温故而知新,可以为师矣。人脑中的记忆机制,决定了回顾往事的过程,是重新建构而不是百分比的回放。这最初看来,是大脑的缺陷,但从避免灾难性遗忘来看,却是不可或缺的。另一个脑洞是,睡眠时做梦,往往会出现类似但不完全相同的回放,这是否是进化赋予我们的“持续学习”能力了?

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中bytebuffer和string的转换记录

原文地址:https://stackoverflow.com/questions/17354891/java-bytebuffer-to-string byte[] bytes k.getBytes( StandardCharsets.UTF_8 ); String v new String( bytes, StandardCharsets.UTF_8 ); String s StandardCharsets.UTF_8.decode(byteBuffer).toStr…

python 调用c++库接口出错

首先,python使用c库传数据的部分方法在我之前的小心得里有:python调用c的库传递二级指针,希望有帮到大家。 今天说一下c的接口里使用智能指针shared_ptr接收数据的问题,接口都是使用的指针传递数据,原本的想法很简单&a…

批量执行命令(SSH)

for a in {1..6} ; do scp /etc/hosts enc-bigdata0$a:/etc/hosts ; done转载于:https://www.cnblogs.com/net2817/p/8057409.html

蒲慕明院士PNAS最新研究:神经元数量在共同激活诱导大脑神经元兴奋性增强的重要性...

来源:brainnews2020年8月3日,中国科学院脑科学与智能技术卓越创新中心(神经科学研究所)、上海脑科学与类脑研究中心、神经科学国家重点实验室蒲慕明研究组在《Proceedings of the National Academy of Sciences》杂志在线发表了题为《同步激活大量神经元…

搭建opencv环境

有个测试项目,需要opencv环境,于是搭建一个,但是这个项目又需要python3.6以上,ubuntu服务器上是3.5,需要升级,这个比较简单,我直接升级到了3.7: sudo apt-get install python3.7然后…

用源生的JavaScript编写一个异步的ajax库

用源生的JavaScript写一个ajax的库,这样就不用每次都调用jQuery库了,依据ajax请求的步骤写,ajax请求有四个步骤:1.创建一个ajax对象,2.跟服务器进行连接;3.发送请求;4.接收返回值。 直接创建一个ajax的函数…

一文读懂什么是数字孪生?

文章转载自微信公众号数字孪生大赛,版权归原作者及刊载媒体所有。一、数字孪生的概念从理论的概念来看,Digital Twin数字孪生:是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在…

Error:collect2:ld returned 1 exit status的其他原因

首先感谢:https://blog.csdn.net/li809735472/article/details/85231950,这里有多个总结,虽然没解决我的问题,但是可能帮到别人,所以引用到这里。 我自己使用vs的Linux插件,直接在Linux服务器编译程序&…

第五轮学科评估再提“破五唯”

来源:中国科学报作者:袁一雪近日,教育部官网公布了对《关于完善高校学科评估制度,促进教育治理体系和能力现代化的提案》的答复,提到学科评估坚决破除“五唯”顽疾。评价教师不唯“学历”和“职称”,不设置…

psycopg2.errors.UndefinedTable: relation “xxxx“ does not exist

psycopg2.errors.UndefinedTable: relation “xxxx” does not exist python连接PostgreSQL之后,查找操作报错如题,原因是数据库表名是有大写字母,需要在表名上加入双引号,因为PostgreSQL大小写不敏感。比如:‘select …

机器学习专业名词中英文对照

activation 激活值 activation function 激活函数 additive noise 加性噪声 autoencoder 自编码器 Autoencoders 自编码算法 average firing rate 平均激活率 average sum-of-squares error 均方差 backpropagation 后向传播 basis 基 basis feature vectors 特征基向量 batch …

MEMS惯性传感器有哪些趋势?

来源:半导体产业基金整理如何在灾难救援中,精准定位受困人员的位置?如何在无人机操作中,提高系统精度?如何在人机交互中,更好的实现动作检测和姿势识别?如何在自动驾驶中,做到更精确…

类似collect2: ld returned 1 exit status的错误

今天帮忙处理一个链接问题,使用vs2015编译,链接时报错:collect2: ld returned 1 exit status以及not found (try using -rpath or -rpath-link)。 首先想到的是在linker部分添加第三方库目录,以往这样都能解决大部分类似问题&…

css pointer-event

详见:张鑫旭 CSS3 pointer-events:none应用举例及扩展 pointer-events:none ,可以使事件穿透, 如: 2 覆盖在 1 上面。 给 2 设置 pointer-events:none;那么点击在 2 上将无效, 可以直接触发 1 上的事件 转载…

5G智慧医疗十大应用场景,你知道多少?

来源:北京物联网智能技术应用协会都说5G会改变千行百业,其中,5G医疗健康就是5G技术在医疗健康行业的一个重要应用领域。随着 5G 正式商用的到来以及与大数据、互联网、人工智能、区块链等前沿技术的充分整合和运用, 5G 医疗健康越…

QT使用中的一些记录

1.qt开发中,想要主界面全屏,其他界面可以在主界面之上显示: 这个如果是全部用QWidget开发的应该有很多办法可以实现,但是如果用的QOpenGLWidget做的主界面,就会出现其他界面无法占有上层的现象,这里需要使用…

起源,机制与趋势,如何理解和定义城市大脑

前言:本文从城市大脑的起源背景,技术支撑,建设重点,服务对象和发展目标等多个角度,对城市大脑如何定义进行了分析和解读,提出:城市大脑是互联网大脑架构与智慧城市建设结合的产物,是…

关于vtkSmartPointer使用的一些小记录

vtkSmartPointer::New()可以生成一个智能指针管理vtk的对象&#xff0c;在使用过程中因为有引用计数的概念存在&#xff0c;所以可以自动管理对象的回收和释放。 比如&#xff1a; vtkSmartPointer<vtkMatrix4x4> matrix1 vtkSmartPointer<vtkMatrix4x4>::New();…

【译】Immutable.js : 操作 Set -8

不可变集提供了强大的集合操作&#xff0c;如相交&#xff0c;联合和减法。本教程将向您展示如何使用它们&#xff0c;以及何时使用它们来代替合并列表 什么时候使用Sets和Union&#xff0c;Intersect和Subtract方法 Set的独特性质是其值始终是唯一的。不可变的设置方法强制这种…

DARPA举办AlphaDogfight决赛,AI 操控战斗机5:0战胜人类飞行员

来源&#xff1a;必达智库由美国国防部高级研究计划局&#xff08;DARPA&#xff09;举办的 “阿尔法狗决战试验”&#xff08;AlphaDogfight&#xff09;决赛当地时间8月20日于正式落下帷幕。最终&#xff0c;赫伦系统公司&#xff08;Heron Systems&#xff09;在虚拟空战中以…