REMIND Your Neural Network to Prevent Catastrophic Forgetting 翻译

传送门:

paper
code

摘要:

人一生都在学习。然而,传统神经网络的增量更新会导致灾难性遗忘。一种常见的治疗方法是回放,这是由大脑巩固记忆的方式启发的。重播涉及在新旧实例的混合上微调网络。虽然有神经科学证据表明大脑会重放压缩的记忆,但现有的卷积网络重放原始图像的方法。在这里,我们提出REMIND,一种大脑启发的方法,可以通过压缩表示实现有效的重放。REMIND是通过在线方式进行训练的,这意味着它一次学习一个例子,这更接近于人类的学习方式。在相同的约束条件下,REMIND在ImageNet ILSVRC-2012数据集上的增量类学习优于其他方法。我们通过可视化问题回答的在线学习来演示REMIND的一般性(VQA)。

1 Introduction:

哺乳动物的大脑对新技能、物体、威胁和环境进行持续的在线学习。世界为大脑提供了一个时间结构的输入流,它不是独立的和同一分布的(iid)。利用非iid数据在人工神经网络中进行在线学习被称为终身学习。虽然传统网络遭受灾难性遗忘,随着新的学习覆盖现有的表示,最近已经探索了各种各样的方法来克服这个问题。减轻灾难性遗忘的一些最成功的方法是使用重播的变体[13,22,27,45,64,77],这涉及到混合新旧实例,并用这种混合微调网络。 重放是由大脑的工作方式驱动的:新的经历在海马体中编码,然后这些压缩的记忆和其他记忆一起被重新激活,以便新皮层能够学习它们[51,60,72]。 没有海马体,人们就失去了学习新的语义类别[48]的能力。 回放发生在睡眠[31]和清醒时[41,74]。

对于卷积神经网络(CNNs)中的终身学习,现有方法与动物学习方式之间存在两大差距。首先,重放是通过存储和重放原始像素来实现的,这在生物学上是不合理的。基于海马索引理论[75],海马在清醒时存储新皮层活动模式的压缩表示。为了巩固记忆,这些模式被重复播放,然后相应的新皮层神经元通过交互连接被重新激活[51,60,72]。存储在海马体中用于重放的表象是不真实的(例如,原始像素)[31,56],其视觉输入在视觉处理层次[29]中较高,而不是来自初级视觉皮层或视网膜。

与现有方法的第二个主要差距是,动物参与流学习[20,21],或资源受限的在线学习,从非iid(时间相关)的生活经验。相比之下,cnn增量训练最常见的模式是将训练数据集分割成不同的批次,对于ImageNet来说,每个批次通常有来自100个类的大约100000个实例,这些类在以后的批次中没有看到,然后算法在每个批次上连续循环多次。这种范式在生物学上是不合理的。有许多应用程序需要在线学习非iid数据流,其中批处理学习是不够的,例如即时设备学习。批处理系统也需要更长的训练时间,这进一步限制了它们在资源受限的设备(如智能设备、机器人和玩具)上的效用。例如,BiC,一种最先进的增量批处理方法,需要65个小时的训练,而我们提议的流模型在12小时内训练。增量批处理设置可以通过使用非常小的批处理和只对数据集执行一次单次传递转换为流学习场景;然而,这会导致性能大幅下降。如图1所示,在流式设置中,最先进的方法在ImageNet上的表现很差,最好的方法的性能下降了超过19%。相比之下,我们的模型比最佳流模型的性能好21.9%,只比最佳批处理模型低1.9%
图1
在此,我们提出了使用记忆索引的REMIND或重放方法,这是一种受生物重放和海马索引理论影响很大的新方法。
我们的主要贡献是:
1.我们介绍了REMIND,一种流学习模型,它使用张量量化实现海马索引理论,有效地存储隐藏的表示(例如CNN特征地图)以供以后重放。REMIND使用产品量化(PQ)[30]实现此压缩。我们是第一个测试在cnn中遗忘是否可以通过重放隐藏的表示而不是原始像素来缓解。
2.在ImageNet ILSVRC-2012[68]和CORe50[52]数据集上,当使用相同数量的内存时,REMIND优于现有模型。
3.我们通过开创性的流式视觉问答(VQA)演示了REMIND的鲁棒性,其中一个代理必须回答关于图像的问题,而现有模型无法轻松完成。我们建立了新的实验范式、基线和度量标准,并在CLEVR[33]和TDIUC[35]数据集上获得了强大的结果。

2 Problem Formulation

增量学习的研究范式有多种[61]。在incremental batch learning(增量学习批处理)中,agent在每个时间步t学习一个包含Nt实例和它们对应标签的数据批Bt,其中 通常是1000到100000。 虽然很多最近的工作集中在增量批量学习,streaming learning(流学习),或从具有内存和/或计算约束的non-iid数据流的在线学习,更接近于动物学习,并有许多应用[20,21,49]。在流学习中,一个模型在一个单一的过程中在线学习,即,Nt= 1对所有的t。它不能循环在(可能是无限的)数据集的任何部分,它可以在任何点评估,而不仅仅是在大批之间。流学习可以近似地通过让系统排队进行小的、在时间上连续的、小批量的学习,但如图1所示,批处理方法不能很容易地适应这种设置。

3 Related Work

4 REMIND: Replay using Memory Indexing

4 REMIND:使用内存索引回放
REMIND是一种新颖的大脑启发的方法,用于训练CNN的参数在流设置使用回放。学习包括两个步骤:1)压缩当前输入和2)重建的一个子集之前压缩表示,混合他们当前的输入,并用这种混合更新网络的平台权值 (见图2)。在早些时候为增量的批处理工作学习cnn存储原始图像回放(13、27、64、77),通过存储压缩的中层CNN功能,REMIND能够以更小的内存预算存储更多的实例。例如,iCaRL[64]为ImageNet使用默认的20K示例内存预算,但是REMIND使用相同的预算可以存储超过1M的压缩实例。 这更接近于大脑中回放发生的方式,高级视觉表征被发送到海马体进行存储和重新激活,而不是早期视觉表征[29]。 REMIND没有一个明确的睡眠阶段,它的回放更接近于清醒时的回放[41,74]。
图2
正式地,我们的CNN yi=F(G(Xi))是在流范式中训练的,其中Xi 是输入图像,yi是预测输出类别。该网络由两个嵌套函数组成:G(·),由θG参数化,由CNN和f(·)的第一个J层组成;,由θ f参数化,由最后一个l层组成。REMIND保持θ g 固定,因为早期的cnn层被证明是高度可转移的[80]。后面的层F(·)使用REMIND在流范式中进行训练。我们在4.2节讨论如何初始化g(·)。

g (Xi)的输出是一个张量Zi∈Rm×m×d,其中m为特征图的维数,d为通道数。利用g(·)的输出,训练zi张量的矢量量化模型。正如训练例子所观察到的,量化模型被用来存储zi 特征和他们的标签在重放缓冲区作为anm×m×sarray的整数使用尽可能少的位,其中索引的数量将被存储。对于重播,我们一致地从重播缓冲区中选择实例(这在[14]中显示得很好),并重新构建它们。将每个重建的实例ˆZi与当前输入混合,然后在这个r+ 1实例集合上使用反向传播来更新θF。。其他选择策略将在第8节讨论。在推理过程中,我们通过g(·)传递一幅图像,然后对输出Zi进行量化和重构,然后传递给F(·)。

我们的主要版本的REMIND使用PQ[30]压缩和存储Zi。对于高维数据,PQ往往比仅使用k-means的模型具有更低的重建误差。张量Zi由m×m d维张量元素组成,PQ将每个d维张量元素划分为大小为d/s的子向量。然后,PQ通过使用k-means为每个分区创建一个单独的码本,其中每个码本中的代码对应于为该分区学习的质心。由于量化是独立完成的每个分区,每个子矢量的维张量元素被分配一个单独的整数,所以元素是用整数表示的。如果s等于1,那么这种方法是相同的。使用k-means的矢量量化,我们比较。在我们的实验中,我们设置s= 32和c= 256,这样每个整数都可以存储为1字节。我们在补充材料中探索s和c的替代值(图S4),并使用Faiss PQ实现[32]

由于终身学习系统必须能够从无限长的数据流中学习,我们使REMIND的重放缓冲区具有最大的内存限制。也就是说,REMIND将量化指标存储在缓冲区中,直到达到该最大容量。一旦缓冲区满了,一个新的例子进来了,我们插入一个新的例子,并随机地从例子最多的类中删除一个例子,这在[14,77]中显示得很好。我们在第8节讨论了维护重放缓冲区的其他策略。

4.1 Augmentation During Replay

为了在重放过程中增加数据,REMIND直接在量化张量上使用随机调整大小的农作物和多种混合[76]。对于随机作物增加,张量被随机调整大小,然后裁剪和双线性插值以匹配原始张量维数。为了产生更健壮的表示,REMIND使用流形混淆将来自多个类的特性混合起来。也就是说,REMIND使用它的重放缓冲区重构两个随机选择的集合A和B,每个r个实例(|A|=|B|=r),这两个集合线性组合得到r个混合实例的集合C (|C|=r),即一个新的混合实例(Zmix, ymix)∈C,形成如下:
公式1
(Za, ya)和(Zb, yb)分别表示来自A和B的实例,λ ~ β(α, α)是由超参数α参数化的β分布得出的混合系数。我们使用α= 0.1,我们发现在初步实验中效果最好。然后将当前输入与r混合样本的集合C结合,θF使用这个新的r+ 1实例集更新。

4.2 Initializing REMIND 初始化REMIND

在学习过程中,REMIND只更新F(·),即CNN的顶部。假设CNN的底层特征G(·)是固定的。这意味着底层的视觉表示必须在图像数据集之间具有高度的可转移性,这是由经验支持的[80]。训练G(·)有多种方法,包括对数据集的一部分进行有监督的预训练,对不同的数据集进行有监督的预训练,或使用卷积自动编码器进行无监督的自学学习。

在这里,我们遵循对CNN[13,27,64,77]进行“基初始化”的常见做法。这是通过在离线的初始数据子集上联合训练θF和θG来完成的,例如,在ImageNet上,我们使用前100个类进行类增量学习。在基初始化后,θG不再是塑性的。所有base初始化中的示例Xi都被推入模型,得到Zi=G(Xi),所有这些Zi实例都用来学习G(Xi)的量化模型,获取后保持固定。

在[13,27,64,77]之后,我们使用ResNet-18[25]进行图像分类,其中我们设置g(·)为前15个卷积和3个下采样层,它们有6,455,872个参数,f(·)为其余3个层(2卷积和1完全连接),它们有5,233,640个参数。这些层是在ResNet-18量化模型中选择的内存效率,我们展示了在补充材料中的内存效率权衡(图S1)。

5 Experiments: Image Classification

5.1 Comparison Models 模型对比

5.2 Model Configurations 模型配置

5.3 Datasets, Data Orderings, & Metrics

5.4 Results: ImageNet

5.5 Results: CORe50

6 Experiments: Incremental VQA

6.1 Experimental Setup

6.2 Results: VQA

7 Additional Classification Experiments

8 Discussion & Conclusion

我们提出了REMIND,一种在流媒体环境下基于大脑的重放在线学习方法。REMIND实现了最先进的对象分类结果。与iCaRL、Unified和BiC不同,REMIND可以应用于iid和实例有序数据流而不需要修改。此外,我们证明了REMIND对于VQA这样的任务来说是足够普遍的,几乎没有变化。

REMIND回放压缩(有损)表示它存储,而不是真实(原始像素)经验,这更符合记忆巩固在大脑中。REMIND的回放与清醒时大脑的回放更加一致。在慢波睡眠期间,回放也会发生在大脑中[9,31],探索如何有效地利用睡眠/觉醒周期来进行回放,这将是很有趣的。这对于部署的代理来说尤其有用,因为它主要在某些时段从事在线学习,而在其他时段从事离线整合。

可以对算法进行一些改进来提醒。我们在基本初始化阶段初始化了REMIND的量化模型。对于部署的设备上学习,这可以通过在大型数据集上预先训练码本来完成,或者可以用大量未标记的数据对其进行初始化,从而潜在地改善表示。另一个潜在的改进是使用选择性重放。REMIND随机选择具有均匀概率的重播实例。在早期的实验中,我们也尝试根据与当前示例的距离、一个示例被重放的次数和上次重放的时间来选择重放样本。虽然没有一个比统一选择表现得更好,但我们相信选择性重放仍然有潜力以更少的计算来产生更好的泛化。因为有几个比较模型使用了ResNet-18,所以我们也使用ResNet-18进行图像分类,这样我们就可以直接与这些模型进行比较。为了保证REMIND的存储效率,我们选择了用于量化的ResNet-18层,但是与REMIND共同设计CNN架构可以得到更好的结果。使用更少的内存,REMIND存储的压缩表示比竞争对手多得多。为了更新重放缓冲区,我们使用了随机替换,在[14,77]中工作良好。我们尝试了队列和基于距离的策略,但两者的表现几乎等同于随机选择,但计算成本更高。此外,REMIND的未来变体可以包含类似[62]的机制,以明确说明传入数据的时间性质。为了展示REMIND的通用性,我们首创了流VQA并建立了强大的基线。将其扩展到流图表问题回答[37,38,40]、对象检测、可视化查询检测[2]以及视觉和语言中的其他问题将是很有趣的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值