灾难性遗忘(catastrophic forgetting)学习笔记
- 深度学习在结构与参数两方面都植入了灾难性遗忘的基因:
- 深度学习的结构一旦确定,在训练过程中很难调整。神经网络的结构直接决定学习模型的容量。固定结构的神经网络意味着模型的容量也是有限的,在容量有限的情况下,神经网络为了学习一个新的任务,就必须擦除旧有的知识。
- 深度学习的隐含层的神经元是全局的,单个神经元的细小变化能够同时影响整个网络的输出结果。另外,所有前馈网络的参数与输入的每个维度都相连,新数据很大可能改变网络中所有的参数。我们知道,对于本身结构就已经固定的神经网络,参数是关于知识的唯一变化量。如果变化的参数中包含与历史知识相关性很大的参数,那么最终的效果就是,新知识覆盖了旧的知识。
- 解决大致有四种方法:
- 利用新数据训练的同时,不断用包含历史数据相关的信息刺激神经元,形成一种竞争,从而使历史知识相关的重要神经元的参数尽可能少的受影响,同时也保证了新知识能够被学习;通常称为Self-refreshing Memory Approaches
- 在开始训练新数据前,利用旧网络对新数据进行预测得到虚拟的训练数据【可以看作是旧网络的一个回忆】,目标函数中包含新旧网络的参数约束,每训练一个新数据,利用所有的虚拟数据约束旧参数,抑制遗忘;这类方法被称为知识蒸馏法(wsy:感觉这个可行性更强一些)
- 从另一个角度来约束参数的变化,文中认为参数是一个概率分布,只要在这个分布的核心地带,对于该任务就是可行的,不同的任务对应不同的概率分布,如果能找到两个分布重叠的部分,并将参数约束到这个区域,那么这一参数不就可以对这些任务都有效吗,这类方法被称之为Transfer Techniques法
- 第四类,其它方法,例如保留所有的历史数据,研究评判重要数据的技术,只保留那些重要的,信息量大的数据。这只是保留所有历史数据的一个改进版本,只要评判方法合理,肯定也能缓解灾难遗忘问题,
- 蒸馏神经网络:
- 一般简单网络需要面对更加具体的任务,是要被应用的。针对它要应用的任务,我们会有一些数据(数据量远比训练复杂网络时的数据量小),首先利用复杂网络预测这些数据的输出。现在我们有两套训练简单网络的数据:a)状态-真实输出(one-hot label);b)状态-复杂网络预测的概率输出(连续值)。先利用数据集b训练简单网络至稳定,然后利用数据集a继续训练。与标准步骤多出的部分就是先利用复杂网络预测的数据输出来引导简单网络,由于预测的输出值是概率值,连续的,因此用这类数据使网络更易收敛。此时,简单网络已经快速的学到一些粗糙的知识,在此基础上利用真实数据集继续训练就快得多了。
- 蒸馏神经网络的核心依据有两点:
- 训练完成的神经网络包含历史数据的输出分布信息;
- 神经网络具有相似的输入会得到相似的输出的特点。
- 要保证旧任务不遗忘,就需要旧任务相关的数据能够在新数据训练时不断刺激强化神经元,抑制遗忘发生。我们的高追求不允许采用记录历史数据的低级方式。旧任务的参数包含历史数据的分布信息,我们可以利用旧任务的参数生成一些虚拟的数据,这些数据相当于分布的采样。在训练新数据时,充分考虑这些虚拟数据。
- 在这个新的网络中,我们希望对于原来的任务其输出能和原来的网络的输出接近。采用上面的“回忆刺激神经元抑制遗忘”的想法,我们首先得产生这样的虚拟数据。还记得上面介绍的蒸馏神经网络吗?它直接将新数据输入到训练好的复杂网络中得到输出,并将输入—复杂网络预测的输出对组成新的数据集。我们也采用这样的做法产生需要的虚拟数据,只需将复杂网络替换成旧网络。与原始蒸馏神经网络的目的不一样,那里是加速简单网络的训练与稳定性,此处是用来缓解网络对新任务学习的灾难性遗忘问题。
灾难性遗忘(catastrophic forgetting)学习笔记相关推荐
- 怎样缓解灾难性遗忘?持续学习最新综述三篇
本文转载自公众号"夕小瑶的卖萌屋",专业带逛互联网算法圈的神操作 ----->我是传送门 关注后,回复以下口令: 回复[789] :领取深度学习全栈手册(含NLP.CV海量综 ...
- 灾难性遗忘/增量学习的研究现状
灾难性遗忘/增量学习的研究现状 一. 灾难性遗忘(catastrophic forgetting)为什么会发生? 二. 增量学习的概念 2.1. 研究领域 2.1. 增量学习的上下限 三. 增量学习的 ...
- 深度学习之灾难性遗忘问题
深度学习之灾难性遗忘问题 健忘是一种病态,善忘是一种智慧. --写在前面 文章目录 深度学习之灾难性遗忘问题 1. 背景 2. What and Why 灾难性遗忘 首先回答第一个W: 什么是灾难性遗 ...
- 灾难性遗忘(catastrophic forgetting)
Overcoming catastrophic forgetting in neural networks(克服神经网络中的灾难性遗忘) 原文: https://www.pnas.org/conten ...
- 克服神经网络中的灾难性遗忘(EWC):Overcoming catastrophic forgetting inneural networks
克服神经网络中的灾难性遗忘 Introduction Results EWC Extends Memory Lifetime for Random Patterns EWC Allows Contin ...
- 机器人操作持续学习论文(1)原文阅读与翻译——机器人操作中无灾难性遗忘的原语生成策略学习
Primitives Generation Policy Learning without Catastrophic Forgetting for Robotic Manipulation 1机器人操 ...
- Tree-CNN:一招解决深度学习中的「灾难性遗忘」
在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...
- 论文速递:通过模拟大脑-解决深度学习中的灾难性遗忘
来源:混沌巡洋舰 灾难性遗忘指的是:不像人类,当深度学习模型被训练完成新的任务时,他们很快就会忘记以前学过的东西.8月13号的自然通讯论文Brain-inspired replay for conti ...
- 灾难性遗忘_谷歌大脑新研究:单一任务强化学习遇瓶颈?「灾难性遗忘」的锅!...
鱼羊 发自 凹非寺量子位 报道 | 公众号 QbitAI 雅达利游戏,又被推上了强化学习基础问题研究的舞台. 来自谷歌大脑的最新研究提出,强化学习虽好,效率却很低下,这是为啥呢? --因为AI遭遇了「 ...
最新文章
- 网页中嵌入地图位置方法
- python学习笔记系列-方便自我学习
- java 上下文加载器_如何将JDK6 ToolProvider和JavaCompiler与上下文类加载器一起使用?...
- 2、python机器学习基础教程——K近邻算法鸢尾花分类
- 连接相机无法识别_车牌识别一体机在汽修门店安装中要注意的事项
- 突发!HashiCorp禁止在中国使用企业版VAULT软件
- POJ-1163(DP,Water)
- and or not 优先级_我的家乡|我的侠客公测成就奖励大全 成就解锁优先级排名
- 如何获取HTML元素所对应的javascript对象?
- c语言乘法除法结合律,有关C语言运算符优先级和结合律的思考
- 基于51单片机的keli安装方法
- oracle数据库管理和日常维护,oracle数据库管理与维护
- 复合函数求导定义证明,复合函数求导法则的又一证明
- 深度可分离卷积的Depth,Stack,Channel Multiplier
- Neutron DHCP-Agent问题分析定位(1)
- 2021年煤矿安全监测监控最新解析及煤矿安全监测监控考试试卷
- 【IoT】NFC 之 Type A 与 TYpe B 卡区别
- 为什么你需要辞职了?——辞职的十大理由
- matlab已知函数表达式画函数图像,怎么用matlab画已知函数表达式的一个函数图像?函数比较复杂的……...
- 灰度如何为 ETH 估值?