这可能是灾难性的,但是我们有办法解决它。
作者:Hannah Peterson 编译:McGL
什么是灾难性遗忘(Catastrophic Forgetting)?
我们的大脑是个不断进化的物体,一直在持续不断修改自身的结构,以保留新的信息,并根据我们与环境的互动去掉旧的信息。正如我们所知,人工神经网络及其激活网最初是仿照大脑建立的。然而,大多数人工神经网络在结构上是静态的,依赖于批量学习,在训练时它们被输入很多批独立同分布(IID)数据,并且学习到的参数在部署时被固定,这与我们大脑的学习方式不一样: 我们不是通过一次性处理随机批量的数据来学习,而是通过处理我们从感官接收到的关于我们周围环境的连续的相关信息流。
虽然对于模型在推理时会遇到的数据的确切性质是事先知道的任务,批量学习很有效,比如对特定类别的随机照片进行分类。这是一个不现实的案例,因为在很多现实应用程序中,模型在部署后可能会遇到新数据。在这种情况下,我们希望这个模型能够适应动态处理新数据,这个过程被称为在线学习(online learning)。此外,在大多数情况下,遇到的数据并不是随机的,而是以相关实例顺序出现的,比如视频的帧或股票价格的波动——在开发在线学习解决方案时,必须考虑到这一属性。
为在线学习创建持续进化的神经网络,已经有好几次尝试。但是他们不可避免地遇到了所谓的灾难性遗忘(有时也称为灾难性干扰)问题,在这种情况下,适应新的任务会导致神经网络“忘记”它以前学过的东西。早在1989年,研究人员McCloskey 和 Cohen就首次发现了这种现象,当时他们测试了一个网络按顺序学习关联列表任务的能力。在他们的实验中,第一个任务包括从两组 A 和 B 中学习成对的任意单词,如“火车头 - 抹布,窗户 - 理由,自行车 - 树等”。然后它开始学习第二个任务,在这个任务中,A 与 C 组的不同单词配对,比如“火车头 - 云,窗户 - 书,自行车 - 沙发等” ,并在1、5、10和20次迭代学习 AC 列表后,测试它记住 AB 列表中的配对的能力。下面的图表 b)显示了在开始学习 AC 任务后,网络是如何迅速忘记 AB 任务的,相比之下,在相同的实验设置 a)中人类的表现,表明我们的大脑能够更有效地记住先前任务的知识。
毫无疑问,构建一个结构有限,但能够在连续的数据流中保留过去经验知识的网络是非常有挑战性的。克服灾难性遗忘的最初策略依赖于随着新类别的学习,逐步向网络分配更多的资源,这种方法对于大多数现实世界的应用程序来说最终是不可持续的。现在让我们来看看一些最新的策略,这些策略可以迫使网络记住已经学到的东西。
记忆的策略:
正则化(Regularization)
处理灾难性遗忘的一个机制是正则化,已经被深入研究过。正如我们所知道的,一个网络通过调整连接的权重来适应学习新的任务,而正规化涉及到改变权重的可塑性,基于他们对以前的任务的重要性。
在2017年一篇高引用的论文“Overcoming catastrophic forgetting in neural networks”中,Kirkpatrick 等人引入了一种称为EWC(Elastic Weight Consolidation)的正则化技术。当遇到新任务时,EWC 通过约束权重尽量靠近学到的值,来保持对以前学习的任务重要的连接的准确性。
为了说明 EWC 是如何工作的,假设我们正在学习一个分类任务 A,我们的网络正在学习一组权重 θ。实际上,在 A 上有多种可以得到良好性能的 θ 设置——上图中灰色椭圆表示的权重范围。当网络继续学习一个与不同权重范围(奶油色椭圆)相关的另一个任务 B 时,它的重量因此被调整,以至于它们落在A表现好的权重范围外,如蓝色箭头所示,灾难性遗忘就发生了。
在 EWC 中,引入了二次惩罚项来约束网络参数,使其在学习 B 时保持在任务 A 的低误差区域内,如红色箭头所示。二次惩罚作为一种“弹簧”,限定了参数在以前学习到的解决方案范围内,因此得名Elastic Weight Consolidation。弹簧的弹性度,即二次惩罚的度,在权重之间的不同取决于权重对于先前任务的“重要性”。例如,在图表中,任务 A 的2D权重椭球体沿 x 维的长度比 y 维的长,表明 x 权重对于 A 更重要,因此在调整学习 B 时弹性比 y 权重小。若未能使弹簧以这种方式适应,而是对每个权重施加相同的弹性系数的话,将导致权重不能很好地适合任一任务,如图中的绿色箭头所示。
EWC 模型在一连串任务上进行训练,每个任务由一批数据组成。任务是手写 MNIST 数字图像,固定数量随机洗牌。一旦模型训练了一个任务的数据,它就会转移到下一个任务的批处理中,并且不会再次遇到前一个任务的数据,这就可以测试 EWC“记住”如何执行以前学过的任务的能力。下面的图表显示了 EWC 在一系列任务 A、 B 和 C 上的测试性能,这些任务是逐步进行训练的。
我们可以看到,尽管学习了新的任务,EWC 的性能在之前学习的任务中保持得相当稳定,作为对比的是采用对所有权重使用相同的二次惩罚的方法(绿线)和一个根本不包含惩罚,只是使用标准的随机梯度下降的方法(蓝线)——这两种方法都显示了任务 A 的灾难性遗忘,例如,当任务 B 和 C 被学习时。
重播(Replay)
重播是另一种减少遗忘的流行方法,它包括存储以前遇到的训练数据的一些代表(representation)。数据存储在被称为重播缓冲区的地方。这个技术最早在2016年底Rebuffi 等人发表的论文“iCaRL: Incremental Classifier and Representation Learning”中提出。在其重播缓冲区中,iCaRL 为训练期间遇到的每个类存储成组的图像,称为“样本”图像。我们的目标是让这些图片尽可能代表它们各自的类别。对于训练,iCaRL 一次处理一批(含各类别)。当遇到一个新类时,将使用所有存储的样本和新数据创建一个模拟训练集。所有这些数据都通过网络,之前学习的类的输出存储到下一步,在下一步中更新网络的参数。通过最小化损失函数对网络进行更新,该损失函数将分类损失和蒸馏损失结合在一起,分类损失让网络输出新遇到的类的正确标签,蒸馏损失则鼓励网络重新生成以前学过的类的标签。
网络通过查询存储的样本图像集来确定如何对给定图像进行分类。具体来说,在推理时,特定类别的样本图像通过网络产生一组特征向量,这些特征向量的平均值产生该类别的代表性特征向量。对于所有类都会重复这个过程,并且测试实例的特征向量会与所有类进行比较,然后分配给它最相似的类的标签。重要的是,对存储的样本图像的数量设置了一个限制,如果在达到限制后遇到新类,则从其他类的集合中删除图像以适应新类的学习。这可以防止模型的计算需求和内存占用随着遇到新类而无限增加。
通过这种策略,我们可以在上面的混淆矩阵中看到 iCaRL 保留了以前类(a)的证据。对角线上被照亮的像素代表了正确的类预测,我们可以看到,与其他偏向于预测初始类(c)或最近遇到的类(b 和 d)的网络相比,iCaRL 实现了最正确的预测以及错误预测的均匀分布。
提醒(REMIND)
iCaRL引入了储存训练实例以便记忆学习任务的想法,并引发了关于这项技术不同应用的大量研究; 然而,所有这些都依赖于在重播缓冲区中储存训练数据的原始表示,而大脑则储存和重播记忆,记忆是新皮层活动模式的压缩表示。提醒(REMIND),代表使用记忆索引的重播(Replay using Memory INDexing),是由 Hayes 等人在2019年年末提出的一种流式学习模型,旨在通过存储图像数据的特征图来模仿大脑的这种功能,这是学界第一次这样做。此外,很多流式学习模型涉及批量处理输入数据——例如,先对一批猫图像进行训练,然后再对一批狗图像进行训练——这既不能代表大脑的工作方式,也不能代表大多数真实世界的部署情景,即在连续流中每次遇到一个数据实例。批处理也是资源密集型的,使得它不适用于很多移动应用程序,所以由于这些原因 REMIND 将实例逐个分类。
REMIND 网络分为两个部分,如上图所示: 一系列冻结层之后是一系列可塑层,中间有一个重播缓冲区。网络的训练从一个“基本初始化周期”开始,在这个周期中,所有层以正常的离线方式对一定数量的类进行训练,以初始化它们的权重。在这之后,冻结层的权重实际上是冻结的——在剩下的训练中它们保持不变。这背后的想法是,初始的神经网络层可以很好地概括各种可变输入,所以当遇到新数据时,不必更新它们的权重,因为它们不会发生重大变化。由网络冻结层产生的输入图像的特征映射表示用于训练一个向量量化模型,该模型压缩特征映射并学习如何忠实地重建它们。被压缩的表征信息被储存在 REMIND 的重播缓冲区中,模仿大脑储存记忆的机制,同时减小数据的大小,这样就可以在缓冲区中储存更多的训练实例。
在基本初始化周期结束后,每个新的训练实例将通过网络的冻结层,并与一定量从重播缓冲区中统一选择并通过学习的量化模型重建的实例结合在一起。混合后被用来训练网络的可塑层。量化的训练样本和它们的标签被存储在重播缓冲区中,直到它达到最大容量,达到最大容量后,每次添加一个新的样本,一个来自具有最多实例的类的样本会被随机删除; 这允许模型学习新的类而不至于无限制扩展。
在下面的图中,我们可以看到在图像分类任务中,REMIND 在线学习技术的测试准确性与其他学习技术的测试准确性对比。我们看到,在线学习方法中,它获得了最好的准确性,仅次于离线分批学习方法,在离线分批学习方法中,每学习一个新类时,网络会用以前遇到的所有数据随机分批进行重新训练。
REMIND 的卓越结果表明,模仿大脑在神经网络中储存压缩记忆表征的方式可能是强迫他们记忆的关键因素。
双层持续学习(BCL)
BCL(Bi-level Continual Learning)是模仿我们大脑运作方式的另一种在线学习技术。在2020年由 Pham 等人提出,它包括两个不同的模型——“快速权重”模型和基础模型——分别反映了海马体(hippocampus)和新皮层(neocortex)的功能。在我们的大脑中,海马体负责“快速学习和获得新的经验” ,而大脑新皮层的任务是“捕捉所有观察到的任务的共同知识”。为了在他们的模型中实现这些,Pham 等人同时使用了概括泛化记忆和片段记忆缓冲器。小片段记忆的目的是为训练快速权重模型而存储近期任务的数据,而泛化记忆则存储所有遇到的任务的数据。快速权重模型的任务是将新样本中的信息整合到基本模型中。
对于 BCL,数据以特定类的小批次输入,其中的一个样本被放入泛化内存,而大部分样本用于训练快速权重模型。快速权重模型以基本模型的权重 θ 初始化,并对特定类别的当前批量数据与来自片段记忆的最新数据混合进行训练,得到一组新的权重 φ。然后根据快速权重模型的因素调整基础模型的权重。快速权重模型的任务是快速适应新任务的学习,而知识蒸馏正则器(regularizer)的作用是鼓励它最小化新权重 φ 与初始权重 θ 之间的距离,这样更新基础模型不会导致它在任务间失去过多的泛化能力。在处理一个小批次后,快速权重值被丢弃,并用基础模型的权重重新初始化,以学习下一批数据。
Pham 比较他们的 BCL 技术和其他几个持续学习模型在一系列分类任务中的表现,发现它通常优于其他所有模型。在 CIFAR100数据集上,一个典型的离线批量学习方法达到了74.11% 的测试准确率,BCL 达到了67.75% ,而次优的模型达到了64.36% ,iCARL 只达到了48.43% 的准确率。下面的图表显示了 BCL 和其他重播技术是如何随着片段记忆大小的增加而普遍提高 CIFAR 任务的性能的。考虑到更大的记忆容许更准确地表示原始数据集,这是合理的。
但与 REMIND 不同的是,BCL 将未经压缩的原始数据存储在其内存缓冲区中。因此,比较这两种不同方法在同一任务中模拟大脑记忆结构的表现是很有意思的。
总结
即使在这里所讨论的增量学习场景中,训练的条件仍然不能很好地代表现实世界——极少情况下,输入的数据会如此清楚地划分为每个类别的增量批次。鉴于此,一个新的研究方向是研究在更真实的流场景下,训练实例流有可变分布的在线学习。这种研究对于在线学习的太空应用尤其有意义,比如,航天器可能必须学习如何在飞行中避免与之前未见过的物体碰撞。
原文:https://medium.com/gsi-technology/your-neural-network-will-forget-what-its-learned-39b7f578f24a