社区
教程
Wiki
注册
登录
创作新主题
社区所有版块导航
Python
python开源
Django
Python
DjangoApp
pycharm
DATA
docker
Elasticsearch
分享
问与答
闲聊
招聘
翻译
创业
分享发现
分享创造
求职
区块链
支付之战
aigc
aigc
chatgpt
WEB开发
linux
MongoDB
Redis
DATABASE
NGINX
其他Web框架
web工具
zookeeper
tornado
NoSql
Bootstrap
js
peewee
Git
bottle
IE
MQ
Jquery
机器学习
机器学习算法
Python88.com
反馈
公告
社区推广
产品
短视频
印度
印度
一周十大热门主题
用ChatGPT“翻译”?坑你没商量!
Github上开源的一款专注于教科书和研究论文的PDF阅读器:Sioyek
Handcalcs,让python科学计算过程更清晰
GitHub版Devin上线,会打字就能开发应用,微软CEO:重新定义IDE
Howie从ChatGPT 原理出发,总结了 GPT对人类学习、-20240429221111
爆出!ChatGPT 5:发布日期、功能和价格
探索 MySQL 递归查询,优雅的给树结构分页
从今天起,ChatGPT会记住每一位付费用户
MySQL误删数据怎么办?
4 月 29 日 AI 头条|ChatGPT 的“幻觉”问题在欧盟遭遇一起隐私投诉
关注
Py学习
»
机器学习算法
论文速递:通过模拟大脑-解决深度学习中的灾难性遗忘
混沌巡洋舰
• 3 年前 • 422 次点击
灾难性遗忘指的是:不像人类,当深度学习模型被训练完成新的任务时,他们很快就会忘记以前学过的东西。8月13号的自然通讯论文Brain-inspired replay for continual learning with artificial neural networks,介绍了如何通过在模拟大脑中的“回放”机制,解决该问题。
灾难性的遗忘出现,并不是由于网络容量有限,为了完成新任务(区分牛和羊),不得不忘记旧任务(区分猫和狗)。同样的网络可以学习如果单独训练,可以完成新旧两类任务(区分猫和牛)。然而,在现实世界中,训练样本并没有交错出现,而是先呈现任务A,再呈现任务B的训练样本。
如果能够存储以前遇到的示例,并在学习新东西时重新访问它们。那就能够避免灾难性遗忘。
然而这种解决方案,在大数据集上的可扩展性受到了质疑,因为不断重新训练所有以前学过的任务是非常低效的,而且需要存储的数据量会变得无法快速管理。
在大脑中,一种被认为对维持记忆很重要的机制是:代表这些记忆的神经元活动模式会被重新激活,这被认为对于稳定新的记忆非常重要。大脑显然已经实现了一种高效且可扩展的持续学习算法。这种记忆回放由海马体调控,一般发生在刚刚睡眠和即将醒来的时间段。
在人工神经网络中,类似的记忆回放可以被称为“生成性回放”,本文提出的,正是这样一种受大脑启发,改进后回放机制,
使训练数据中内部被隐藏的特征,而不是数据本身被回放(重复训练)
。被回放的表征是由网络自身的、上下文调制的反馈连接生成的。
传统的回放以及本文提出的基于生成模型的回放
上图中左边为传统的回放机制,即在训练神经网络做新的分类任务时,在训练数据中随机加入之前任务的训练数据;而右图代表的生成式的回放机制,即随机加入的,不是原有的训练数据,而是由生成器(另一个训练好的神经网络)产生的代表了原训练数据特征的数据。
具体的训练过程,如上图所示。在任务1时,训练一个分类模型M,一个生成模型G(例如变分自编码器),之后训练任务2时,训练数据在原本的数据集之外,加上了随机抽样产生的包含任务1特征的模拟数据,以及前一步生成器产生的对数据的标签,依次类推。
之所以生成式的模型能够应对大数据量,是由于生成模型产生的回放数据,不需要有原数据集那么高的像素,且为避免灾难性遗忘的出现,所需的训练数据的样本数也少于使用用原数据进行回放,从而减少了计算量。而这背后的根本原因,
在于生成的数据已经对数据特征进行了提取,因此其能够用更少的数据,训练分类模型区分前一任务所需提取的模式。
本文还在基础版的生成式回放基础上,提出了几项改进方案。首先是让生成器和分类器共用最初的特征提取层,从而在生成器和分类器之间,建立起双向的反馈,图中的橙色部分,可以看成是VAE的输出,经过了softmax分类得到的标签,被当成回放数据集用于之后训练。这项改进模仿了大脑的结构,大脑中,负责回放的海马体会将信号传给脑特征提取的皮质。
第二项改进是针对每一类数据,分别训练一种生成模型,从而可以根据特定条件,选择不同类型的数据回放。具体的做法是,将生成器的输入的输入,由一个从标准正态分布中的随机抽样,变成数据聚类后,每一类数据对应的高斯分布中进行抽样。
第三项改进,为了避免生成的数据,带有原训练数据中背景所对应的偏差,从而对回放造成干扰。可以每次生成回放数据时,随机的关闭ANN中的部分神经元,从而以类似dropout的方式,避免生成的回放数据产生过程中所带的背景偏差。
第四项改进,是在隐藏层就加入回放数据,而不是像之前那样,将生成的图像与对应的标签重新训练。这么做能够减少运算量。之所以能够这样做,是由于最初的特征提取,不论何种任务都是相同的。
除了利用神经科学的认知,来提升人工神经网络的持续学习能力,这项工作的另一个目的是说明大脑中的重放机制,对人类智能所起到的意义。本研究首次证明
重放可能确实是大脑对抗灾难性遗忘的一种可行的方法
。文中假定大脑中的回放是一个生成过程。这一猜想与越来越多的实验工作报告一致,即大脑中重复出现的表征并不直接反映经验,而是可能是世界学习模型的样本。
笔者分享该论文,是由于该研究是类脑计算,即通过模仿大脑,提升神经网络的典型案例。且文中的回放机制,让我想起
温故而知新,可以为师矣
。人脑中的记忆机制,决定了回顾往事的过程,是重新建构而不是百分比的回放。这最初看来,是大脑的缺陷,但从避免灾难性遗忘来看,却是不可或缺的。另一个脑洞是,睡眠时做梦,往往会出现类似但不完全相同的回放,这是否是进化赋予我们的“持续学习”能力了?
更多阅读
类脑计算背后的计算神经科学框架
海马体启发下的类脑人工智能
谷歌大脑的“世界模型”简述与启发
Python社区是高质量的Python/Django开发社区
本文地址:
http://www.python88.com/topic/72777
422 次点击
登录后回复