没有合适的资源?快使用搜索试试~ 我知道了~
端到端增量学习弗朗西斯科·M 作者声明:JohnW. Mar'ın-Jime' nez2,Nicola' sGuil1,CordeliaSchmid3和Karteek Alahari31计算机体系结构系,Ma'lag a大学,Ma' lag a,西班牙2西班牙科尔多瓦科尔多瓦大学计算与数值分析系3Univ. Grenoble Alpes,Inria,CNRS,Grenoble INP,LJK,38000 Grenoble,France抽象。尽管近年来深度学习方法由于其最先进的结果而脱颖而出,但它们仍然遭受灾难性的遗忘,当使用增量添加的新类进行训练时,整体性能急剧下降。这是由于当前的神经网络架构需要整个数据集,包括来自旧类和新类的所有样本,以更新模型-随着类的数量增加,这一要求很容易变得不可持续。我们使用增量学习深度神经网络的方法来解决这个问题,使用新数据和与旧类样本对应的小样本集。这是基于由保留从旧类获得的知识的蒸馏措施和学习新类的交叉熵损失我们的增量训练是在保持整个框架端到端的同时实现的,即,联合学习数据表示和分类器,不像最近的方法没有这样的保证。我们在CIFAR-100和ImageNet(ILSVRC 2012)图像分类数据集上广泛评估了我们的方法,并显示了最先进的关键词:增量学习;蒸馏损失;图像分类1介绍开发针对现实世界应用的视觉识别系统的主要挑战之一是增量地学习分类器,其中不断地学习新的类。例如,人脸识别系统必须处理新面孔以识别新人。这个任务需要在不必重新学习已经学习的面孔的情况下完成。虽然这对大多数人来说是微不足道的(我们学会识别我们每天遇到的陌生人的面孔),但机器学习系统并非如此。传统模型要求所有样本(对应于旧类和新类)在训练时可用,并且不具备仅考虑新数据的能力,只选择少量旧数据。在理想的系统中,新的类应该被集成到现有的模型中,共享以前学习的参数。尽管已经进行了一些尝试来解决这个问题,但是当添加新信息时,大多数先前的模型仍然遭受旧类的性能急剧下降,特别是在深度学习方法的情况下[2,8,10,16-18,22,23,30]。我们解决这个具有挑战性的任务,在本文中使用的问题,图像分类来说明我们的结果。2Castro等人一个真正的增量式深度学习分类方法的特点是:(i)从数据流中接受训练的能力,其中类以任何顺序出现,并且在任何时间;(ii)在划分新旧班级方面表现良好;(iii)模型的合理参数数目及内存要求;以及(iv)端到端学习机制,用于联合地更新分类器和特征表示。因此,理想的方法将能够以增量的方式在无限大数量的类上进行训练,而不会失去准确性,并且具有完全相同数量的参数,就像从头开始训练一样。增量学习的现有方法[4,9,13,14,16,23,26,28,29,28,30,32,34,37]满足所有这些约束。它们通常将分类器和表示学习任务解耦[23],或者仅限于非常特定的情况,例如,从新的数据集学习,但不是与旧类相关的新类[9,13,16,34],或特定问题,例如,目标检测[30]。其中一些[4,26]与SVM等transmitting分类器相关,不适合深度学习架构。其他[14,28,32,37]导致参数或层的数量快速增加,导致随着类的数量增加而占用大量内存。总之,没有一种最先进的方法可以满足真正的增量学习者的所有特征。本文的主要贡献是解决这一挑战,我们的端到端的方法,专为增量学习。该模型可以用任何深度学习架构以及我们的代表性存储器组件来实现,该组件类似于用于维护与旧类对应的一小组样本的示例集(参见第二节)。第3.1节)。该模型通过最小化交叉提取损失来学习,这是两个损失函数的组合:交叉熵学习新类和蒸馏保留与旧类对应的先前知识(参见第二节)。3.2)。详见第二节。4.任何深度学习架构都可以适应我们的增量学习框架,唯一的要求是用我们新的增量损失替换其最后,我们说明了我们的图像分类方法在CIFAR-100[15]和ImageNet[27]上获得最先进的增量学习结果的有效性(见第二节)。6、第(七).2相关工作我们现在描述与我们的方法相关的方法,通过将它们组织成使用固定特征集的传统方法,以及通过深度学习框架学习特征的其他方法,以及训练分类器。传统方法。增量学习的初始方法针对SVM分类器[6],利用其核心组件:支持向量和Karush-Kuhn-Tucker条件。其中一些[26]保留了支持向量,这些支持向量对在旧数据上学习的分类器进行编码,以与新数据一起学习新的决策边界。Cauwenberghs和Poggio[4]提出了一种替代方案,通过保留所有先前看到的数据(对应于旧类)上的Karush-Kuhn-Tucker条件,同时根据新数据更新解决方案。虽然这些早期尝试显示出一些成功,但它们仅限于特定的分类器,并且也没有扩展到联合学习表示和分类器的当前范例。端到端增量学习3另一个相关的方法是随着时间的推移学习概念,以终身[33]或永无止境[5,7,20]学习的形式终身学习类似于将从旧任务中获得的知识转移到新任务中。另一方面,永无止境的学习专注于不断获取数据以改进现有的分类器或学习新的分类器。这两种范例中的方法要么需要整个训练数据集,例如,[5],或依赖于固定表示,例如,[7]的文件。诸如[19,25,29]的方法通过在没有完整训练集的情况下学习分类器来部分解决这些问题,但由于固定或工程数据表示而仍然受到这是通过以下方式实现的:(i)限制分类器或回归模型,例如,那些是线性可分解的[29],或(ii)使用最近均值分类器(NMC)[19],或随机森林变体[25]。然后通过更新基或每类原型来执行增量学习,即,的平均特征向量。总的来说,所有这些方法的主要缺点是缺乏特定于任务的数据表示,这导致性能较低。我们提出的方法通过特征和分类器的联合学习来解决这个问题。深度学习方法。这类方法提供了一种自然的方式来联合学习特定于任务的特征和分类器[3,24,31]。然而,在这种范式中,学习模型的增量导致灾难性遗忘,这是一种在原始(旧)类集合上的性能急剧下降的现象[2,8,10,16-18,22,23,30]。 克服这个问题的最初尝试是针对连接主义网络[2,8,18],因此不适用于当今计算机视觉问题的深层架构。在[16]中提出了一种更近期的尝试,即结合使用蒸馏损失和标准交叉熵损失来保持旧任务的性能。最初被提出用于在不同神经网络之间传递知识的Disillation loss [12],被用来保持网络对旧任务的响应,同时用新的训练样本更新它[16]。尽管这种方法在一定程度上减少了遗忘,特别是在旧样本和新样本来自不同数据集且它们之间几乎没有混淆的简单场景这可能是由于旧类的知识表示较弱,并且没有像我们的方法中所做的那样使用范例集来增强它。[23,34]等作品证明了[16]的这种弱点,在顺序学习场景中显示出显著的错误,其中不断添加新类的样本,特别是当新样本和旧样本来自相关分布时-我们在本文中考虑的挑战性问题。其他使用蒸馏损失的方法,如[13],建议冻结与原始模型对应的一些层,从而限制其对新数据的适应性Triki等人。[34]建立在[16]中的方法上,使用自动编码器来保留旧任务中的知识,而不是蒸馏损失。这种方法也在限制性场景中进行了评估,其中旧网络和新网络在不同的数据集上进行训练,类似于[16]。 蒸馏损失也被用于增量学习对象检测器[30]。尽管它在对象检测方面取得了成功,但我们在这里针对的更一般的增量学习场景的这种特定架构的实用性尚不清楚。减轻灾难性遗忘的替代策略包括,增加网络中的层数以学习新类的特征[28,32],或减慢4Castro等人图1:我们的增量模型。给定输入图像,特征提取器产生由分类层(CLi块)使用以生成一组logit的一组特征。灰色分类层包含旧类,并且它们的logit用于蒸馏和分类。绿色分类层(CLN块)包含新的类,其logits只涉及分类。(最好是彩色的)。通过每参数正则化选择性地降低学习速率[14]。 Xiao等[37]也遵循相关方案,并随着观察到新类而递增地增长其树结构模型。所有这些方法的主要缺点是参数数量的快速增加,其随着权重、任务和新层的总数而增长。相比之下,我们提出的模型对原始网络的大小变化最小,如第2节所述。3.第三章。Rebufi等人[23]提出iCaRL,一种增量学习方法,其中学习分类器和数据表示的任务被解耦。iCaRL使用传统的NMC对测试样品进行分类,即,它维护包含旧和新数据样本的辅助集数据表示模型是一个标准的神经网络,当新的样本可用时,使用蒸馏和分类损失的组合进行更新[12,16]。虽然我们的方法也使用了一些旧类的样本作为代表性记忆组件中的范例(参见秒3.1),它通过以端到端的方式联合学习分类器和特征来克服先前工作的局限性。此外,如图所示,在SEC。6、第7,我们的新模型优于[23]。3我们的模型我们的端到端方法使用了一个深度网络,该网络使用交叉提取的损失函数进行训练,即,交叉熵和蒸馏损失。该网络可以基于为分类设计的大多数深度模型的架构,因为我们的方法不需要任何特定的属性。用于分类的典型架构可以是端到端增量学习5参见图1,具有一个分类层和一个分类损失。该分类层使用来自特征提取器的特征来产生一组logit,该logit由softmax层(图中未示出)转换成类别得分。唯一必要的修改是损失函数,如第2节所述。3.2. 为了帮助我们的模型保留从旧类中获得的知识,我们使用了一个代表性的记忆(Sec. 3.1),其存储和管理来自旧类的最具代表性的样本除此之外,我们还执行数据增强和平衡微调(第2节)。4). 所有这些组件放在一起,使我们能够获得最先进的结果。3.1代表性存储器当一个新的类或一组新的类被添加到当前模型中时,选择其中具有最具代表性的样本的子集我们调查两个内存设置在这项工作中。第一设置考虑具有K个样本的有限容量由于存储器的容量是独立的在类的数量中,存储的类越多,每个类保留的样本越少。因此,每个类别的样本数n由n=K/c给出,其中c是存储在存储器中的类别数,K是存储器容量。第二个设置存储每个类的固定数量的样本因此,内存的大小随着班级数量代表性存储器单元执行两个操作:选择要存储的新样本,以及移除剩余样本。选择新样品。这是基于羊群选择[36],它根据与该类平均样本的距离产生一个类的样本的排序列表给定样本的排序列表,选择列表的前n个样本。根据平均值,这些这种选拔方法基于我们测试不同方法的实验选择,例如随机选择,从每个样本到类平均值的距离的直方图,如第2节所示。6.3. 每当向内存中添加新类时,每个类执行一次选择。取出样本。该步骤在训练过程之后执行,以分配用于来自新类的样本的由于样本存储在排序列表中,因此该操作是微不足道的。存储器单元仅需要从存储器单元的末端移除样本。每个类的样本集。请注意,在此操作之后,删除的样本将不再使用。3.2深度网络架构该网络是由几个组件,如图所示。1.一、第一组件是特征提取器,其是用于将输入图像变换成特征向量的一组层下一个组件是分类层,它是模型的最后一个全连接层,输出与类的数量一样多该组件获取特征并生成一组logit。在训练阶段,更新网络权重的梯度是通过我们的交叉蒸馏损失函数用这些logit在测试时,损失函数被softmax层(图中未示出)替换6Castro等人为了构建我们的增量学习框架,我们从传统的,即,用于第一组类的分类的非增量、深度架构。当训练新的类时,我们添加与这些类相对应的新分类层,并将其连接到特征提取器和用于计算交叉蒸馏损失的组件,如图所示。1.一、请注意,特征提取器的架构在增量训练过程中不会改变,只有新的分类层与之连接因此,任何架构(甚至是预先训练的模型)都可以与我们的方法一起使用,只需在必要时添加增量分类层和交叉蒸馏损失函数这将保留旧类知识的蒸馏损失[12]与学习对新类进行分类的多类交叉熵损失相蒸馏损失被应用于旧类的分类层,而多类交叉熵被用于所有分类层。这允许模型更新类的决策边界 损失计算如图所示。1.一、交叉蒸馏损失函数L(ω)被定义为:L(ω)=LC(ω)+ ΣFf=1LDf(ω),(1)其中LC(ω)是应用于来自旧类别和新类别的样本的交叉熵损失,LDf是分类层f的蒸馏损失,并且F是旧类别的分类层①的人。交叉熵损失LC(ω)由下式给出:1ΣN ΣCLC(ω)=−N(2)第一次见 面,i=1j =1其中qi是通过将softmax函数应用于样本i的分类层的logit而获得的分数,pi是样本i的基本事实,并且N和C分别表示样本和类别的数量蒸馏损失LD(ω)定义为:1ΣN ΣCLD(ω)=−Npdistijlogqdistij,(3)i=1j =1其中pdist_i和qdist_i分别是pi和qi如[12]中所述,通过将pi和qi提高到指数1/T来获得它们,其中T是蒸馏参数。当T=1时,具有最高分数的类显著影响损失,例如,大于0. 9,最大值为1。0,其余分数较低的班级对损失的影响最小。然而,在T>1的情况下,剩余的类具有更大的影响,并且必须最小化它们的更高损失值。这迫使网络学习它们之间更细粒度的分离。因此,网络学习到更有区别的类表示。根据我们的经验结果,我们将所有实验的T端到端增量学习7存储器新样本训练集的构建培训过程平衡鳍片调谐代表性记忆更新图2:增量训练。灰点对应于存储在代表性存储器中的样本。绿点对应于来自新类的样本。具有红色边界的点对应于要存储在存储器中的所选样本。(Best以颜色查看)。4增量学习我们的方法中的增量学习步骤包括四个主要阶段,如图所示二、 第一阶段是训练集的构建,其准备要在第二阶段(训练过程)中使用的训练数据,其拟合给定训练数据的模型。在第三阶段中,利用训练数据的子集进行微调。该子集包含每个类别相同数量的样本。最后,在第四阶段中,代表性存储器被更新以包括来自新类的样本。我们现在详细描述这些阶段。训练集的构建。我们的训练集由存储在代表性内存中的新类样本和旧类样本由于我们的方法使用两个损失函数,即,在分类和蒸馏中,我们需要每个样品的两个对于分类,我们使用一个热向量,它指示出现在图像中的类 对于蒸馏,我们使用由具有旧类的每个分类层(图1中的灰色全连接层)产生的logit作为标签。①的人。因此,我们每个样本具有与具有旧类的分类层一样多的蒸馏标签。为了加强旧的知识,新类的样品也用于蒸馏。这样,所有图像都为两种损失产生梯度因此,当网络评估图像时,输出编码构成深度模型的每一层的权重的行为,与其标签无关。我们的训练集的每个图像将有一个分类标签和F蒸馏标签;参见当量1. 请注意,此标签提取在每个增量步骤中执行。考虑一个示例场景,以更好地理解这一步骤,其中我们正在执行模型的第三个增量步骤(图2)。①的人。在这一点上,模型具有三个分类层(N=3),其中两个将处理旧类(灰色框),即,F=2,其中一个对新类进行操作(绿色框)。样本时评估后,由两个分类层与旧类生成的logit为用于蒸馏(黄色箭头),由三个分类层产生的logit用于分类(蓝色箭头)。培训过程。我们的交叉蒸馏损失函数(等式1)采用具有其对应标签的增强训练集,并产生一组梯度以优化深度8Castro等人模型注意,在训练期间,模型的所有权重都被更新。因此,对于任何样本,从特征提取器获得的特征可能在连续的增量步骤之间改变,并且分类层应该调整它们的权重以处理这些新特征。这是与其他一些创造性方法的重要区别,如[16],其中特征提取器被冻结并且仅训练分类层平衡微调。由于我们不存储来自旧类的所有样本,因此可用于训练的来自这些类的样本可能显著低于来自新类的样本为了处理这种不平衡的训练场景,我们添加了一个额外的微调阶段,具有较小的学习率和平衡的样本子集。新训练子集包含每个类相同数量的样本,无论它们属于新类还是旧类。该子集通过减少来自新类的样本的数量来构建,仅保留来自每个类的最具代表性的样本,根据第2节中描述的选择算法。3.1. 通过从新类中移除样本,模型可能会忘记在先前训练步骤中获得的知识。我们通过向新类的分类层典型的记忆更新。在平衡微调步骤之后,必须更新代表性存储器以包括来自新类的样本。这是通过第2节中所述的选择和移除操作来执行的。3.1. 首先,内存单元从存储的类中删除样本,为样本分配空间从新班级。然后,根据选择算法从新类别中选择最具代表性的样本,并将其存储在存储器单元中。5实现细节我们的模型在MatConvNet上实现[35]。对于每个增量步骤,我们执行40个时期,并且另外30个时期用于平衡微调。 我们前40个epoch的学习率从0开始。1,并且每10个时期除以10。在微调的情况下使用相同的减少,除了起始速率为0。01. 我们使用标准的随机梯度下降训练网络,小批量的128个样本,权重衰减为0。0001,动量为0。9 .第九条。我们应用L2正则化和随机噪声[21](参数η=0。3,γ=0。55)在梯度上,以最小化过拟合。根据He et al. [11],我们使用特定于数据集的CNN/深度模型。这使得网络的架构能够适应特定的特性-数据集的统计学。我们使用CIFAR-100的32层ResNet和ImageNet的18层ResNet作为深度模型。在这两种情况下,我们将K=2000个蒸馏样品存储在代表性存储器当训练CIFAR-100的模型时,我们通过将像素值除以255并减去训练集的平均图像来归一化输入数据。在ImageNet的情况下,我们只执行减法,没有像素值归一化,遵循[11]的实现。由于没有现成的类增量学习基准,我们遵循将传统多类数据集的类拆分为增量批次的标准设置[23,30]在下面的所有实验中,iCaRL是指最终方法端到端增量学习9在[23]中,hybrid1 指的是它们的变体,它使用CNN分类器而不是NMC。LwF.MC是LwF [16]的多类实现,如[23]中所做。我们使用了GitHub4中公开的iCaRL实现。LwF.MC的结果也是从这个代码中得到的,没有使用范例。我们将每种方法的结果报告为所有增量批次的平均准确度。请注意,我们不考虑这个平均值中第一批的准确性,因为它不对应于增量学习。这与[23]中的评估不同,这是我们报告的方法结果与已发表结果之间存在差异的原因。数据扩充。我们的方法的第三阶段(cf.秒4)在训练步骤之前执行数据增强。具体地,执行的操作是:1. 亮度:通过添加范围[-63,63]中的随机强度值来改变原始图像的强度。2. 对比度归一化:原始图像的对比度由范围[0. 二一[8]。所执行的操作为imaltered=(im-mean)×contrast+mean。其中,im是原始图像,mean是每个通道的像素的平均值,并且contrast是随机对比度值。3. 随机裁剪:所有图像(原始,亮度和对比度)都是随机裁剪的。4. 镜像:为所有图像(原始、亮度、对比度和裁剪)计算镜像应用于每个数据集的其他操作在第节中详细说明。6对于CIFAR-100和第7为ImageNet。6CIFAR-100的评价我们在CIFAR-100数据集上进行了三种类型的实验。在第一个(Sec。6.1),我们按照[23]中的实验方案设置我们的代表性存储单元的最大存储容量。第二个实验(Sec。6.2)在没有固定内存大小的情况下评估方法,并对每个旧类使用常量样本。这里,当新的类被存储在代表性存储器单元中时,存储器大小随着每个增量步骤而增长最后,在第6.3中,我们进行消融研究以分析我们的方法的不同组件对准确性的影响。数据集。CIFAR-100数据集[15]由100个类别的60k32×32RGB图像组成,每个类别600个图像。每个类有500张图像用于训练,100张图像用于测试。我们以随机顺序将100个类分成2、5、10、20和50个类。因此,我们将分别有50、20、10、5和2个增量训练步骤。在每个增量步骤之后,在测试上评估结果模型由所有训练的类组成的数据,即,新的和旧的我们在每个增量步骤的评估指标是标准的多类精度。我们用不同的随机类顺序执行实验五次,报告平均准确度和标准偏差。此外,我们还报告了平均增量精度(每个增量步长的精度值如前所述,我们不…4https://github.com/srebuffi/iCaRL10Castro等人100100100 10Our-CNNOur-CNNOur-CNN(63.8)(63.8)(63.8)iCaRLiCaRLiCaRL(54.1)(54.1)(54.1)iCaRL-杂合体1iCaRL-杂合体1(34.9)808080LwFLwF.MCLwF.MC(9.6)(9.6)(9.6)8上边界(69.5)(69.5)(69.5)70707076060606精度y精度y精度404040精度 45050505303030320202021010101000000 202020 404040 606060 808080 1001001000Our-CNNOur-CNNOur-CNN(63.4)(63.4)(63.4)0iCaRLiCaRLiCaRL(57.8)(57.8)(57.8)iCaRL-杂合体1iCaRL-杂合体1(48.4)0LwFLwF.MCLwF.MC(29.5)(29.5)(29.5)上边界(69.5)(69.5)(69.5)0000000000000 202020 404040 606060 808080100100100a)b)图3:CIFAR-100的准确度。5次执行的平均值和标准差(a)2和(b)每个增量步骤5个类。显示增量步长的平均值在括号中表示每种方法。(Best查看PDF)考虑该平均值的第一步的准确性,因为它不代表增量学习。在CIFAR上,我们遵循第2节中描述的数据扩充步骤 5,并且对于每个训练样本,生成11个新样本:一个亮度归一化、一个对比度归一化、三个随机裁剪(应用于原始、亮度和对比度图像)和六个反射镜(应用于先前生成的图像和原始图像)。6.1固定内存大小我们评估了五种不同的分裂与不同的类顺序和增量步骤2,5,10,20和50类。类顺序对于所有被评估的方法都是相同的,以确保结果是可比较的。选项卡. 1(a)总结了实验结果和图。3显示了2和5类的增量步长 其余图见附录[1]。“上限”结果,如图所示。图3中最后一个步骤中具有大的十字(品红色)的所有类别,通过使用所有类别及其所有训练样本训练非增量模型来获得。我们观察到,我们的端到端方法在2、5、10和20个类中获得了最佳结果。对于50个类,尽管我们获得了与Hybrid1(使用CNN分类器的iCaRL变体)相同的分数,但我们比iCaRL低1%。这种行为是由于内存大小有限,导致严重不平衡的训练集包含12个。来自新样本的数据是来自旧类的数据的5倍。为了突出我们的方法的性能与iCaRL相比的统计显著性相应的p值为0。00005,0。0005,0。003,0。0077,0. 9886,分别为2,5,10,20,和50类,这表明我们的方法比iCaRL的改进是统计学上显著的(p<0. 01)在所有情况下,除了50个类,其中两种方法表现出相似的性能。还可以观察到,我们的方法的性能在Tab中的增量步长(从2到20个类/步)中保持稳定。1(a)与所有10010090我们的CNN(63.8)iCaRL(54.1)iCaRL-hybrid1(34.9)LwF.MC(9.6)908080我们的CNN(63.4)iCaRL(57.8)iCaRL-hybrid1(48.4)LwF.MC(29.5)70 7060 6050 5040 4030 3020 2010 100 00 20 40 60 80 100 0 20 40 60 80 100班级数班级数精度精度端到端增量学习11#类25102050我们的CNN63.8±1.963.4±1.663.6±1.363.7±1.160.8 ±0.3iCaRL54.1 ±2.557.8 ±2.660.5 ±1.662.0 ±1.261.8±0.4混合物134.9 ±4.548.4 ±2.655.8 ±1.860.4 ±1.060.8 ±0.7LwF.MC9.6 ±1.529.5 ±2.240.4 ±2.047.6 ±1.552.9 ±0.6#类10100我们的CNN90.4 69.4iCaRL85.0 62.5混合物183.5 46.1LwF.MC 79.1 43.8(a)CIFAR-100(b)ImageNet表1:固定内存大小:CIFAR-100和ImageNet的准确性。每列表示每个增量步骤的不同类数。每一行代表一种不同的方法。最佳结果以粗体标记。其他方法,取决于每个步骤中添加的类的数量。这是因为在每个增量步骤处的少量类有益于增量学习过程的早期阶段中的然而,随着更多的步骤被应用于训练所有类,最终阶段的准确性降低。当在每个递增步骤中添加更大数量的类时,行为相反。较低的准确度值在早期阶段,但这是补偿与更好的值在最后阶段。这些影响可以在图中看到。图3示出了每个增量步骤的两个不同数量的类(2和5)。图3还表明,当采用每个增量步骤的少量类时,我们的方法明显优于iCaRL。在每个步骤中有更多的类,iCaRL接近我们的性能,但总体上仍然较低我们的方法在所有情况下都明显优于LwF.MC,从而突出了我们模型中代表性记忆的重要性。6.2固定数目的样本在这个实验中,我们使用每个旧类的固定数量的训练样本来训练模型。此限制不适用于来自新类别的样本。因此,我们允许的内存增长成比例的类的数量,在固定的内存实验,内存大小保持不变。此外,为了测量样本数量对准确度的影响,我们评估了每个类别的不同样本数量:50,75和100。我们专注于实验的增量步长值为5,10和20类。我们认为相同的类顺序iCaRL和我们的方法,以确保结果是可比的。由于LwF.MC算法的性能低于iCaRL和Hybrid 1算法,因此在本实验中我们重点对这两种算法进行了比较;参见第二节。6.1.选项卡. 图2(a)总结了这些实验的结果。表的第一行中指示了每个增量步骤的类数。第二行包含训练期间使用的每个旧类的样本数。其余行显示了所评估的不同方法比较Our-CNN和[23]中开发的方法之间的结果,我们看到在所有情况下,我们的方法都表现得更好。正如在“固定内存大小”实验中一样(Sec.6.1),我们的方法对于范围从5到20个类的增量步长实现了类似的平均精度,例如,62. 四,六十二。七,六十三。3,每类50个样本,显示其稳定性。以测量IM-12Castro等人#类51020# img /cls5075 100 5075 1005075100我们的CNN62.4 66.9 68.6 62.7 65.7 68.5 63.3 65.4 67.3iCaRL56.5 59.9 62.2 60.0 62.3 63.7 61.9 63.0 64.0混合物145.7 49.2 50.9 55.3 56.5 57.4 60.4 61.5 62.2(a) 固定数目的样本(b) 消融研究表2:CIFAR-100的准确度。每一行代表一种不同的方法。最佳结果以粗体标记。更多详情请参阅正文。在训练中每个类的样本数量的影响,我们在表中比较结果。1(a)在表中。第2段(a)分段。在所有情况下,用于训练的样本越多,获得的准确性越好50个样本的结果比表1中的结果差1,因为在早期的增量步骤中,可用的样本数量较低,并且这些初始模型是训练不足的。这导致了连锁效应,即使有更多的样本,在最后阶段获得的模型也比预期的要差。6.3消融研究现在,我们分析我们的方法的组成部分,并展示其对最终性能的影响所有这些消融研究均使用固定内存设置进行我们首先通过使用10个类的增量步骤和用于选择样本的三种方法的实验来评估样本选择策略:聚集、随机和直方图选择。羊群是我们的选择方法,在第二节中介绍。3.1. 随机选择是指随机选择要存储在存储器中的样本。在直方图选择策略中我们首先计算距离的直方图,具有十个箱,并将每个样本分配到这些箱中的一个然后,我们根据其包含的样本比例从每个bin中选择样本根据结果(放牧:63岁6%,随机:63。1%,直方图:五十九1%),羊群和随机选择策略表现最好。在下面的消融研究中,我们分析了增强和微调的影响。我们首先用数据增强来训练我们的模型,但没有平衡的微调('Our-CNN-DA')。在第二个实验中,我们在没有数据增强的情况下进行训练,但进行了平衡的微调最后,我们在没有数据增强和平衡微调的情况下训练我们的模型在这里,我们重点关注实验的增量步长值为5,10和20类。与先前的实验一样,iCaRL的第一次分割和我们的方法以相同的类顺序运行选项卡. 图2(b)和图4总结了本研究的结果。基线然而,在这方面,当添加数据增强(‘Our-CNN-DA’)时,结果在所有情况下都得到改善,获得了5个类的最佳结果(59. 2)的情况。然而,由于旧类和新类之间的样本数量不平衡当添加平衡微调#类51020我们的CNN基地57.0 53.7 50.1Our-CNN-DA 59.2 57.9 57.2我们的-CNN-BF57.9 58.1 57.1我们的-CNN-全63.8 64.0 63.2端到端增量学习1310010010010010101090909090999808080808887070707077760606060666精度y精度y精度y精度40404040精度精度44505050505553030303033320202020Our-FusionOur-FusionOur-FusionOur-CNN(62.4)(77.6)(49.6)(55.4)222(56.5)(80.4)(46.0)(53.4)iCaRLiCaRLiCaRLiCaRL-杂合体1(58.5)(57.6)(57.8)(45.7)111iCaRL-杂合体1iCaRL-杂合体1上限(69.5)(69.9)(50.2)(53.3)000000 20202020 40404040 60606060 80808080100100100100数字r数字r数字r数字r类别类别000100009000800070006000精度400050003000Our-FusionOur-FusionOur-FusionOur-CNN(66.9)(77.4)(59.4)(62.9) 2(59.9)(78.8)(57.1)(61.4)iCaRiCaRiCaRLiCaRLiCaRLiCaRL-杂合体1(63.8)(59.1)(60.0)(49.2)1iCaRL-杂合体1iCaRL-杂合体1上限(69.5)(76.2)(51.0)(55.3)00000000 20202020 40404040 60606060 80808080100100100100数字r数字r数字r数字r类别类别0000000000Our-CNN(68.5)iCaRL(63.7)00 20 40 60 80100班数a)b)c)图4:使用CIFAR-100的消融研究。(a)5、(b)10和(c)20类的结果。对于每种方法,括号中显示了所有增量步骤的平均值。(Best查看PDF)步骤,这突出了平衡训练集的重要性。最后,当这两个组件都添加到基线时,获得我们的完整模型7ImageNet评估数据集。ImageNet Large-Scale Visual Recognition Challenge 2012(ILSVRC 12)[27]是一项使用ImageNet子集的年度竞赛。该子集由1000个类组成,每个类具有超过1000个图像。总共有大约120万张训练图像,5万张验证图像和15万张测试图像。我们用这个数据集做了两个实验。在第一个中,我们随机选择100个类,并将它们分成随机选择的10个类。在第二个中,我们将1000个类分成随机选择的100个类。请注意,所有方法都考虑了相同的类集,以确保结果具有可比性。在每个增量步骤之后,在由所有训练类组成的测试数据上评估所得到的模型我们执行一次实验,并报告每个增量步骤的前5个准确度。我们还报告了第2节中描述的平均增量精度。六、我们使用第二节中描述的数据增强。5,并且对于每个训练样本,生成其镜像,然后随机应用变换(cf.秒5)所有图像(原始和镜像)。因此,通过我们的数据增强,我们将训练样本的数量增加了一倍。固定内存大小。我们为所有评估的方法保持相同的类顺序,以确保结果是可比较的。我们还遵循[23]中的协议,以实现与iCaRL和hybrid1的公平兼容选项卡. 1(b)总结了这个固定内存大小实验的结果,和图。5示出了具有10和100个类的增量步骤。在图中用十字示出的“上限”结果是通过使用所有类的训练样本训练非增量模型来获得的。从结果中,我们观察到,在这两种情况下,我们建立了一个新的国家的最先进的,提高了以前的平均结果超过5%。这表明我们的方法也适用于具有许多类的大型数据集。此外,由于来自新的和10010010090909080808070707060606050505040404030我们的CNN(63.8)Our-CNN-BF(57.9)Our-CNN-DA(59.2)Our-CNN-Base(57.0)iCaRL(58.8)iCaRL-hybrid130我们的CNN(64.0)Our-CNN-BF(58.1)Our-CNN-DA(57.9)Our-CNN-Base(53.7)iCaRL(60.9)iCaRL-hybrid130202020101010我们的CNN(63.2)Our-CNN-BF(57.1)Our-CNN-DA(57.2)Our-CNN-Base(50.1)iCaRL(61.2)iCaRL-hybrid100 20 4060800100020 4060800100020 406080100班数班数班数精度精度精度14Castro等人10080604020Our-CNN(71.3)iCaRL(62.5)iCaRL-杂交1(46.1)00 200 400 600 8001000班数100100100100109090808精度精度7070精度80808060660Our-CNN(90.4)404前5名前5名6 060Our-CNNiCaRL(85.0)(90.4)前5名前5名iCaRLiCaRL-混合物1(85.0)(83.5)5050Our-CNNiCaRL-hybrid1上边界d(90.4)(83.5)(95.1)iCaRL上边界d(85.0)(95.1)4040iCaRL-hybrid1(83.5)040020406080100002020404060608080100100NumberNumber类s类s类的数量0000Our-CNN(69.4)(62.5)0iCaRL iCaRL-杂合体I(62.5)(46.1)iCaRL-混合1上限(46.1)(89.2)0020020040040060060080080010001000类别的数量a)b)图5:ImageNet上的准确性。一次执行,每个增量步骤(a)10和(b)100个类。每种方法的增量步长的平均值显示在括号中。(Best查看PDF)旧类比CIFAR-100更平衡,我们的方法即使在100个类的大增量步骤下也能达到良好8总结本文提出了一种新的方法,用于训练CNN在增量的方式使用交叉熵和蒸馏损失函数的组合在CIFAR-100和ImageNet上的实验结果得出以下结论。(i) 我们的端到端方法比其他最近的方法(如iCaRL)更强大,依赖于次优的独立学习的外部分类器。(ii)代表性记忆、其大小和不平衡的训练集在最终准确度中起重要作用。作为未来工作的一部分,我们计划探索新的样本选择策略,每个类使用鸣谢。这项工作得到了TIC-1692(Junta de Andaluc´ıa),TIN 2016 - 80920 R(西班牙科技部),ERC高级补助ALLEGRO和EVEREST(编号:#30302;,由中央财政支持我们非常感谢NVIDIA公司为这项研究捐赠的Titan X PascalGPU。引用1. 花絮也可以在arXiv技术报告中https://github. com/fmcp/EndToEnd增量学习2. Ans,B.,Rousset,S.,法语,R.M.,Musca,S.:人工神经网络中的自刷新存储器网络:学习时间
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 深入理解23种设计模式
- 制作与调试:声控开关电路详解
- 腾讯2008年软件开发笔试题解析
- WebService开发指南:从入门到精通
- 栈数据结构实现的密码设置算法
- 提升逻辑与英语能力:揭秘IBM笔试核心词汇及题型
- SOPC技术探索:理论与实践
- 计算图中节点介数中心性的函数
- 电子元器件详解:电阻、电容、电感与传感器
- MIT经典:统计自然语言处理基础
- CMD命令大全详解与实用指南
- 数据结构复习重点:逻辑结构与存储结构
- ACM算法必读书籍推荐:权威指南与实战解析
- Ubuntu命令行与终端:从Shell到rxvt-unicode
- 深入理解VC_MFC编程:窗口、类、消息处理与绘图
- AT89S52单片机实现的温湿度智能检测与控制系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功