摘要:深度神经网络的复兴与ImageNet数据集的公开为近期复杂识别任务的成功奠定了基础。然而,ImageNet并不能包含所有可能的应用场景的所有视觉概念。因此,应用科学家仍然不断地记录新的数据,并期望当这些数据可用时来使用他们。在这篇文章中,我们根据这一观察结果,采用深度神经网络中的经典概念微调(fine-tuing),用以解决不断有已知的数据或全新类别的数据添加进来的应用场景所面临的问题。除了一个连续微调的直接实现方法之外,我们还实验性地分析了如何进一步减少训练过程中计算成本。最终,我们可视化了网络的注意力图是如何随着时间逐步演化的,这将有助于我们可视化的研究网络在连续微调的过程中学习到了什么。

1. 介绍

“当包含部分全新类别的数据不断添加到训练集中时,你将如何训练一个深度神经网络?”
机器学习和视觉任务从固定数据集的标定测试(benchmarking)中获益良多,因为他们可以用于比较各种算法和开发中的模型。然而,我们的世界是一个持续变化的环境。不仅仅是目标类别的语义空间在不断变化,而且已知类别的视觉外表也不是一成不变的。为了解决这一问题,我们人类能够不断学习并改编自己的知识。固定的模型和不断变化的环境两者之间存在着不可调和的矛盾。因此,增量式学习(incremental learning)是改进视觉识别系统的重要研究领域,通过连续学习的方式解决已来自知类别和全新类别的新数据的分类问题。不仅如此,增量式学习也是主动学习(activ learning)和主动发现(active discovery)的重要组成部分,这两种学习方式都严格要求模型是连续变化的。针对多种模型的增量式学习方法已经得到了广泛的研究,但目前还没有对于深度神经网络的增量式学习方法。
除了大规模固定的数据集,深度神经网络的复兴也引起了计算机视觉领域里最新的创新浪潮。除了直接从头训练一个深度模型,对小型数据集进行微调的训练方式也表现出许多额外的优势。起初,微调是指在一个经过预训练的为解决通用目标问题的神经网络基础上,对于小规模数据集的特定目标进行额外训练的过程。最近,微调是指重新使用在大规模数据集上训练得到的参数值作为初始化值,应用于带有标签的数据有限的场景。这一方法已经在许多应用中展现出了重要的作用。
从持续学习的观点来看,后一种微调的场景可以被看做连续学习的一种极端情景,这一过程被限制在两个步骤中:预训练和更新参数。
对于深度卷积神经网络连续学习的通用形式之前很少有人研究过。问题在于如何鲁棒且高效的实现带有一系列更新步骤的连续学习。为了研究这一问题,我们对卷积神经网络进行连续的微调,并且通过实验评估每一个超参数对于学习鲁棒性的影响。连续学习的过程如图1所示。

图1在学习过程的一开始,我们用一个预训练好的网络作为初始化参数。第一步是典型的微调过程,其中最后一层网络被替换掉用于适应新的任务(如彩色的圆点)。随着更多数据的获得,初始权重估计的相关重要性在不断的减弱(通过蓝色的圆点不断变淡来表示)当新的类别被发现时,网络的结构也要随着改变,比如增加新的输出变量。
连续微调的概念是很广泛的,并且应用在多种形式的深度神经网络中。在这篇文章里,我们特别关注图像理解场景,并且采用深度卷积网络。一个可能的应用场景是主动学习,其中更新的模型要立即用于接下来的选择中。类似地,自动化的可视监控场景需要高效的概念,以便在昂贵但相当缓慢的专家逐步提供标记数据时进行持续学习。因此,我们特别关注这样一种场景:在每次更新步骤中只有少量的新数据可以使用,但更新的模型是立即可用的。
我们提供了试验证据说明在连续学习的场景下参数更新的计算时间可以明显缩短。尽管我们的实验性发现是凭直觉获得的,但我们仍然相信分享我们深入见解对于许多应用领域的广泛读者而言是有帮助的。进一步讲,我们揭示了卷积神经网络是如何随着时间逐步演化的,通过可视化网络的注意力是如何转移到新增加类别的可辨识区域的。这一可视化的方式使得我们可以控制并分析连续学习的过程。

2.相关工作

由于解决连续数据流问题是十分必要的,因此针对各种分类技术已经提出了多种更新方法。一个完整的综述已经超出了本文的范围,我们只是简要的介绍几个比较完善的分类技术的例子。
针对多种模型类别的连续学习 最常用的在线学习方式可以被看做连续学习的一种特殊情况。此时,训练集不是一次提供的(以批量训练的形式),而是每次只提供一个样本。支持向量机(SVM)可能是近二十年最广泛使用的模型。对于SVM而言,Cauwenberghs等人提出一种带有固定类别的在线学习方式。在此基础上,Tax等人介绍了一种支持向量数据描述(SVDD)模型的在线学习方法用于最新的检测场景。后来,Yeh和Darrell等人提出了针对分类数目不同的SVM求解器SMO(Sequential minimal optimization,序列最小优化)的增量学习。高斯过程模型,其与SVM非常接近,曾被Freytag等人应用于目标分类的连续学习任务。Mensink等人提出一种针对最近邻类别均值(nearest class mean,NCM)分类器的更新技术。在此基础上,Ristin等人提出了一种由NCM和RDF构成的可以连续拓展的混合模型。Sillito和Fisher推导出GMM模型的更新规则,这为Hospedales等人对于连续类别发现任务的工作奠定了基础。尽管有许多优势,但这些技术很少被采用,因为相对深度神经网络模型他们的模型复杂度太低了。因此让我们简要介绍一下针对深度网络的持续学习方法。
深度神经网络的连续学习 二十年前,Wilson和Martinez 比较了神经网络的批量学习和在线学习两种方式。根据他们的介绍,在线学习应该比批量学习的效果更好,尤其是在大规模数据集上。目前最受欢迎的小批量学习是介于两者之间的一种方式,但Wilson和Martinez发现小批量学习与在线学习相比没有任何实际优势。LeCun等人也提出相似的观点。然而在线学习假定数据流的类别数量是提前已知的。不仅如此,为了对参数进行稳健估计,需要通过数据集进行多次循环遍历(epochs)。
对于更加一般化的连续学习问题,新的类别也必须适当的包含在现有的网络之中。一个例子是参考文献【25】中所做的工作——训练一个逐步增加类别的深度网络。作者通过复制现有的网络,将可用的类平均分配给两个网络中的一个,分别对每个网络进行微调,并在上面添加第三个网络来预测使用哪一个网络,来探讨增加网络容量的必要性。因此这一策略可以被看做是在每一个节点都训练一个带有深度网络的决策树。除了这一相对复杂,内存密集并且计算要求高的方法,目前对于如何高效地连续训练深度神经网络还知之甚少。
深度神经网络的微调训练 如上文介绍的,将预训练得到的网络对新的任务进行微调训练可以被看做连续学习的一种特殊情况,在这种情况下仅包含两个步骤:一个是初始化学习步骤,另一个是参数更新步骤。许多文章指出了在大规模数据集上预训练的方法带来的好处。例如,Agarwal等人声称预训练能够显著提高目标识别任务的表现。类似地,Girshick等人得出结论说:“我们推测有监督的预训练/在特定领域上微调这一范式对于数据匮乏的视觉任务十分有效”。更多的优势已经在图像检索,语义分割,细粒度的识别和目标定位等任务中得到了证明。然而,微调只能用于带有固定数据集的新任务。在这篇文章中,我们通过实验揭示了数据和类别的数量不断增长的连续微调是如何改善一个单独任务的模型的。
更多的相关主题 在先前展示的工作中,越来越多的方法试图用可以连续改变自身的系统来取代固定的模型。一个更加相关的研究领域是领域适应(domain adaptation)。不同的领域可以来自于不同的记录技术(例如相机技术的改变),也可以来自于两个数据集之间数据分布的变化。与我们的应用场景相反,领域适应技术目的在于估计不同领域分布之间的差异性进而最大化地利用数据集合提供的信息。与之相反,我们采用原始数据,并且允许网络能够在领域变化时平稳地调整自身。
类似相关的研究领域是迁移学习(transfer learning),其被看做学习如何学习。在迁移学习场景中,新的类别逐步增添到先前已知的数据中。潜在的假设是从已知的但语义上相关的类别中迁移网络参数是有利于表征新的类别的。我们不是显式地寻找支持的任务或类别来传递参数,而是依赖于被所有类别共享的单个网络的学习表征能力。

3.深度神经网络学习概述

在我们研究深度神经网络的连续学习之前,我们先简要地回顾一下这些模型的学习方式并定义在实验中将要用到的超参数。
深度网络的批量学习 令f(x;θ)f(x;\theta)f(x;θ)表示输入图像为xxx,参数为θ\thetaθ的神经网络的输出。从给定标签的训练集D=(X,y)D=(X,y)D=(X,y)中训练一个网络可以归结为最小化一个学习目标。计算学习理论的结果告诉我们这一目标是由训练集的损失和正则化项www构成的:
L^(θ;D)=1N∑i=1NL(f(xi;θ),yi)+w(θ)\hat{L}(\theta; D)=\frac{1}{N}\sum^N_{i=1}L(f(x_i;\theta),y_i)+w(\theta)L^(θ;D)=N1​i=1∑N​L(f(xi​;θ),yi​)+w(θ)与整个训练的目标L^\hat{L}L^不同,损失项LLL作用于一个个体样本上,并得到的结果与期待的模型输出进行比较。对于回归任务通常选择二次损失作为LLL,对于多分类任务通常选择softmax损失。www通常将参数θ\thetaθ的L1L_1L1​和L2L_2L2​正则化结合起来作为一种弹性的网络正则化项。
与其他的许多应用领域一样,视觉任务需要高度复杂的模型函数。所以,f(x;θ)f(x;\theta)f(x;θ)普遍是由许多函数组成,通常称作层,每一层都有各自的参数:
f(x;θ)=fL(...(f2(f1(x;θ1);θ2)...);θL)f(x;\theta)=f_L(...(f_2(f_1(x;\theta_1);\theta_2)...);\theta_L)f(x;θ)=fL​(...(f2​(f1​(x;θ1​);θ2​)...);θL​)深度学习的含义就是通过一个单独的损失函数来优化所有涉及到的参数θ=(θ1,...,θ2)\theta=(\theta_1,...,\theta_2)θ=(θ1​,...,θ2​),进而直接从输入数据中训练这些分层式的模型的过程。不幸的是,除了一些简单的架构,这些学习目标通常是非凸的并且是高度非线性的。因此,最小化封闭式的解,例如最小二乘回归这样简单模型的解,是不可能存在的。相反,需要才有优化技术如梯度下降法来迭代优化初始参数,并理想化地收敛到一个适当的(局部)最优解。对于公式2中提到的分层式模型,利用链式法则对每个隐藏层中的参数求偏微分就得到了反向传播算法。
小批量学习 由于梯度下降算法要求所有的训练样本作为完整的一个批次一次性输入,这对于一些大规模数据集是不可能实现的。因此,目前标准的优化技术有随机梯度下降(SGD)和小批量梯度下降。两种技术都是在每次迭代kkk中随机选
取子集Sk⊆DS^k\subseteq DSk⊆D来近似真实的梯度▽θL^(θ;D)\bigtriangledown_\theta \hat{L}(\theta;D)▽θ​L^(θ;D)。SGD最初是指在每次迭代中只选取一个样本的特殊情况,而小批量梯度下降使用更大规模的子集。因为这两种方法都依赖于真实梯度值的随机近似值,因此他们豆本称作随机梯度下降法。在下文中,我们沿用这样的命名规则,并使用SGD来表示每一个梯度下降过程,而不是对整个训练集做梯度下降计算。
在每个迭代过程中,SGD基于当前选择的自己计算一个近似梯度▽θ\bigtriangledown_\theta▽θ​:
▽~θL^(θ;Sk)=1∣Sk∣∑i∈Sk▽θL(f(xi;θ),yi)+▽θw(θ)\tilde{\bigtriangledown}_\theta \hat{L}(\theta;S^k)=\frac{1}{\left |S^k \right |}\sum_{i\in S^k}\bigtriangledown_\theta L(f(x_i;\theta),y_i)+\bigtriangledown_\theta w(\theta)▽~​θ​L^(θ;Sk)=∣Sk∣1​i∈Sk∑​▽θ​L(f(xi​;θ),yi​)+▽θ​w(θ)在此基础上,参数估计值通过步长为γ\gammaγ的梯度下降步骤来更新,γ>0\gamma>0γ>0通常被称为学习率:θk+1=θk−γ▽~θL^(θk;Sk)\theta^{k+1}=\theta^{k}-\gamma\tilde{\bigtriangledown}_\theta \hat{L}(\theta^k;S^k)θk+1=θk−γ▽~​θ​L^(θk;Sk)目前有许多优化算法的变种包括momentum,weight decay, dropout 和学习率的退火算法。由于我们没有对训练神经网络本身或这些变种对于连续学习的影响进行试验分析,因此我们参考【36,40,37】来评估这些策略。

4.深度神经网络的连续学习

接下来,我们首先定义了连续学习场景,然后提出了如何在使用深度神经网络时将连续学习与直接的微调结合起来的多种策略。
连续学习场景 与标准的批量学习应用不同,我们感兴趣的是深度神经网络的连续学习。因此,我们给定一系列的学习数据集Dt⊂(Ω×yt)D^t\subset(\Omega \times y^t)Dt⊂(Ω×yt)。目标是对每个时刻t≥0t\geq0t≥0学习一个网络f(⋅;θ^(t))f(\cdot;\hat{\theta}^{(t)})f(⋅;θ^(t))。根据不同时刻ttt对应的集合DtD^tDt之间重叠部分的不同,我们可以分出三种情景:

  1. (F) 典型的对新任务的微调:只提供两个不相关的数据集和变化的任务。第一步,卷积神经网络在ImageNet数据集上进行预训练,然后对最后一层进行重新学习或者对所有层进行优化。为了简化符号标记,我们忽略了D1D^1D1中的数据可能包含在D0D^0D0中的情况。在新的数据集覆盖了部分原始数据集的网络进行一步微调时,这一情况是可能出现的。
  2. (C1) 对已知类别的连续学习:在这种情况下,我们得到额外的训练样本,这些样本的类别是在初始学习集D0D^0D0中已知的。这种情景描述了一个连续增长的训练数据集并整合了经典的在线学习设置。
  3. (C2) 对已知类别和新类别的连续学习:与之前的情景不同,我们也可以获得属于全新类别的样本。

在下文中,我们用Ut=Dt/Dt−1U_t=D^t/D^{t-1}Ut​=Dt/Dt−1表示时刻ttt的更新数据集。
连续学习,渐进微调 如上文所述,学习目标通常是非凸的且高度非线性的。因此,没有封闭的更新规则可用。然而,我们可以利用热启动优化的技术,我们使用在前一时刻得到的参数θt−1\theta^{t-1}θt−1作为当前时刻参数θt\theta^tθt的初始值。这一策略也用在标准的微调方法中,并且假设网络的参数能够随着训练数据集的扩展平稳变化。除此之外,他还表达了一种期望,即当从一个可能接近于适当解的参数向量开始训练时,优化结果能够对糟糕的局部最小值由更强的鲁棒性。因为(F)场景已经被广泛的研究了,下文中我们主要研究(C1)和(C2)两种情况。
在C1情况下,可以直接进行微调而不需要修改网络;而C2尝尽需要为新的类别拓展深度神经网络的最后一层。特别的,我们需要在最后一层增加新的输出节点,以及前面相应的全连接层中的参数。我们使用参考文献【44】中提出的规则化方法对这些新参数进行随机初始化。
对于两种设置C1和C2,在实际应用中仍存在一些问题。例如,在每次更新步骤中求解器是否需要运行到收敛状态。优化训练的提前停止可能有助于提高泛化能力。除此之外,当小批量的新数据接连增添进来,我们能够鲁棒地调整多少层尚未有明确的指导意见。最后,标签噪声对于模型更新的影响对于实际应用是非常重要的。在第五章,我们将通过实验来揭示这些问题。不仅如此,我们还在第六章对网络的注意力区域进行可视化展示,当新的数据不断添加进去时,网络的注意力区域有着明显地改变。

5. 连续深度神经网络的试验评估

我们对带有已知和未知类别的连续学习场景进行了实验。对于不同的更新策略,我们分别评估了各种连续学习模型的分类准确率。我们的主要发现可以总结为以下三点:

  1. 相比于标准的批量训练,连续学习在每次SGD中所需要的迭代次数有明显下降。当设定为一个小常数时,测试准确率并没有明显下降。(见5.3章)
  2. 如果忽略掉所有已知数据对模型进行连续微调将会导致更新样本的过拟合(见5.4章)
  3. 连续微调对于少量的标签噪声具有一定的鲁棒性(见5.5章)
    我们也对SGD中的批尺寸和学习率对连续微调的效果的影响进行了研究,但并没有发现意外的结果。这些结果可见于支撑材料。下面在详细介绍先前提到的三个方面之前,我们简单的解释一下实验的设置。此外,在我们在接下来的章节展示更多有效的实现结果之前,我们在第5.2章分析了对于卷积神经网络实现连续学习的可应用性。

5.1 实验设置,数据集和实现细节

网络结构和训练 因为我们主要的兴趣点是图像分类和理解,我们限制实验模型为卷积神经网络。因此,转化所需的不变性被显式地编码到网络布局中。在我们所有的实验中,我们使用经典的AlexNet的BVLC版网络结构,其网络权重是在ImageNet上进行预训练得到的。实验使用MatConvNet工具进行。
精心选择合适的学习率对于训练网络是最重要的一个方面,这一点是众所周知的并且已经被广泛深入的研究过了。因此,对于不同学习率的评估工作已经超出本文范围。我们使用之前的实验结果,并固定学习率为0.001。这一选择与报道的观察结果一致并在所有实验中都取得了颇有竞争力的结果。此外,我们使用小规模的更新数据集,每个子集仅包含25来自同一类别的样本。我们沿用了MatConvNet中参数的默认设置,并将权重衰减率设置为0.0005,动量为0.9。
用于评估的数据集 为了评估我们提出的训练策略,我们使用了两个最佳的数据集。首先,我们使用MS-COCO-full-v0.9,该数据集提供了与现实应用非常相似的具有挑战性的设置。因为我们感兴趣的内容是分类任务,所以我们只选择回归框的尺寸在256以上的目标。此外我们只使用包含500到1000个样本的类别。所以,我们得到了15个类别,其能够为初始训练和几个更新子集提供足够的训练样本。每个训练集和测试集的总图像数约为11,000张。
第二个评估数据集,我们选择了Stanford40Actions数据集。该数据集包含不同活动的静态图像,并分割出4000张用于训练,5532张用于测试。因此,明显需要调整预训练的模型来适应新的任务。
相比于ImageNet这样的大规模数据集,这两个数据集都只包含少量的样本。因此,他们非常适合用于评估连续学习对于少量数据的效果,并且能够深入研究一个对于深度神经网络而言向党不常见的应用场景。
实验设置 为了评估连续学习的效果,我们随机选择了10个类别的数据对卷积神经网络进行初步微调。从剩下的数据中我们随机选择5个类别作为新的数据被添加到接下来的训练过程中。对于每个类别,我们都随机选择100个样本。这些样本可以作为初始的已知数据,也可以作为更新集,这取决于是否选择了在实验期间添加的类别,或者是否选择了初始已知的类别。在每次更新步骤结束后在对应数据集的测试集上计算分类的准确率。为了减少评估中随机性的影响,我们重复随机选取样本三次。此外,整个实现过程都对三种不同的类别分割方法分别进行,这将得到九种不同的设置,最后取平均值作为结果。

5.2 连续微调与一步微调之间的比较

在第一个实验中,我们分析了对于深度神经网络的连续微调而不损失精度是否是有可能的。我们用所有可用的数据对预训练模型进行了一次更新,并以此作为典型的一步微调的参考网络。这与第四章中描述的F情况很相似。我们将连续微调的结果与参考网络进行比较,在连续微调过程中我们对C1和C2两种情况所对应的所有更新子集都进行了训练。受实验设计方案的影响,我们采用一种混合的方式对两种情况评估,因为并不是每一个更新子集中都包含新的类别。C1情况的补充评估结果可见于支撑材料。
可以说,如果最终对完全相同的数据量进行一步微调和连续微调,那么从直觉上说,估计的参数会得到相同的分类精度。然而,与一步微调相比,连续学习跟随着参数更新路径θT\theta^TθT得到一个完全不同的初始化参数值。对于初始化的重要性,可见参考文献【11】中对于初始化与正则化的讨论。我们按照之前描述的试验设置并以批尺寸为64的数据集对所有层进行了10个周期的SGD训练。即使我们也对任意层数的调整参数进行了分析,但实验结果得到了相同的发现。结果见图2。

图2.典型的一步微调(等到所有数据都可用才开始微调)和连续微调(一旦一个新的数据集可用就开始微调)的对比
由图易知在处理完所有的训练图片之后两种训练方式得到相似的准确率。因此,我们可下结论说对于深度神经网络的连续微调可以在精度上不产生明显下降。然而,一旦新的数据集可用就执行一整个微调训练过程是计算量非常大的。在接下来的实验中,我们将分析如何减少运算负担。

5.3 加速连续微调

减少每次微调步骤的计算时间最简单的方式就是减少整个训练周期中SGD的迭代次数。然而,这样做会带来过早打断梯度下降的风险,比如距离局部最优很远。接下来,我们通过实验探究我们在每次更新步骤中至少需要多少次迭代,才能保证训练的模型精度不损失。所以,我们保持先前实验的设置,只改变SGD的迭代次数TsgdT_{sgd}Tsgd​,并保持SGD的批尺寸为64。
通常的做法是将SGD的迭代次数表示为一个与已知训练样本总数有关的值,如在第eee个周期中,SGD的迭代次数Tsgd=⌈nt∣S∣⌉⋅eT_{sgd}=\left \lceil \frac{n_{t}}{\left | S\right |}\right \rceil \cdot eTsgd​=⌈∣S∣nt​​⌉⋅e, ∣S∣\left | S\right |∣S∣为批尺寸。在分析的第一部分,我们说明了我们需要多少个周期的训练才能使连续微调对于所有层都处于稳定状态。因此,我们测试了我们需要训练多少个周期才能成功的训练一个深度神经网络,在每个更新步骤中的训练不同周期的结果如图3所示。
斜体样式
图3.不同训练周期数量的性能比较,并且在微调中SGD的迭代次数也在增加
如图所示,即使在每次更新步骤中仅使用极少的迭代次数,最终的准确率仍惊人的变化不大。事实上,只使用一半的训练周期就已足够了,而且我们我们只在极端的使用0.1周期的情况先,观察到明显的准确率下降。我们将此观察结果归因于0.1 周期数很容易错过为SGD优化选择一个有代表性的子集。
基于之前的结果,问题在于是否有必要在每次更新中都看每一个样本。为了回答这个问题,我们越过先前的分析并进一步探索快速微调的可能范围。之前的实验中,SGD的迭代次数随着已知样本数量的增长而增加,现在我们将SGD的迭代次数固定为一个常数。这能够进一步加快DNN的训练。每次更新都是由一个单独的批次组成的,批尺寸为25,这与更新子集∣Ut∣\left | U_t\right |∣Ut​∣$的大小相同。结果见图4。


图4. 固定SGD迭代次数与迭代次数随着训练数据集增长而增加的效果对比
与我们之前对可变周期数(SGD迭代次数不断增加)情况的分析相似,我们再一次观察到我们能够在不造成明显精度损失的情况下大量减少所需要的计算量。如先前一样,我们将Tsgd=1T_{sgd}=1Tsgd​=1情况下的准确率下降归结于没能随机采样到具有代表性的子集。在接下来的分析中,我们研究了替代采样技术是否可以提高连续微调的精度。

5.3 可变更新对于连续学习的影响

大多数增量更新分类器的技术其参数都包含超参数λ\lambdaλ, 其表示当前更新子集中新数据的影响权重。下面我们通过实验解答了自然而然的疑问新老数据的不同比重是否会提高连续微调的深度神经网络的精度。因此,我们在SGD迭代过程中对样本进行非均匀采样,并依赖于特定于样本的概率pip_ipi​:
pi=1−λ∣Ut∣ifxi∈Utandλ∣Dt−1∣otherwisep_i = \frac{1-\lambda}{\left | U_t\right |}\;\; if \;\; x_i \in U_t \;\; and \;\; \frac{\lambda}{\left | D^{t-1}\right | } \;\; otherwisepi​=∣Ut​∣1−λ​ifxi​∈Ut​and∣Dt−1∣λ​otherwise其中0≤λ≤10\leq \lambda \leq 10≤λ≤1. 对于极限情况λ=0\lambda = 0λ=0, 在采样过程中先前步骤中的训练样本被全部忽略,他们的信息只能通过参数初始化过程间接利用。这可以被看做是一种连续学习的简单实现,因为它与在线训练的公共分类模型非常相似。除此之外,λ=1\lambda = 1λ=1等同于先前的连续微调的分析,只不过将样本的使用从当前更新集推迟到下一个更新步骤。对于范围内的λ\lambdaλ,我们可以通过改变样本被选中的概率来控制更新数据集的相对重要性。为了研究参数λ\lambdaλ的影响,我们固定批尺寸为25,迭代次数为10,进行试验。不同λ\lambdaλ值的结果如图5所示。实验中所有的层都做调整,值得注意的是我们也对只做高层级调整的网络进行了实验,结果是相似的。

图5. 不同λ\lambdaλ对应的增量微调训练结果
我们的结论是,只有在SGD迭代中考虑一部分新数据和旧数据时,CNN才能以连续的方式进行微调。必须仔细选择数据的平衡,因为已知的数据可以防止网络对新数据的过度拟合,而新数据太少不足以防止这种行为。
在我们设计的实验中,新的样本在被添加进去的下一步就被看做是已知数据。这可以解释为什么λ=0.75\lambda = 0.75λ=0.75 和λ=1.0\lambda =1.0λ=1.0的结果非常相似。对于极端情况λ=0\lambda = 0λ=0,迭代的微调训练完全失效了,这归因于网络对更新数据集的过拟合。

5.5 带有标签噪声的连续学习

与先前的分析不同,在现实应用中目标的标签很难是完美的,尤其是在循环中没有专家专门去标记。我们因此对于连续学习在对抗错误的标签信息时的鲁棒性非常感兴趣。为了解答这个问题,我们对每个更新步骤都进行了10个周期的训练,并对所有层的参数进行优化。批尺寸为64。为了研究标签噪声的影响,一定比例的新添加的图片被来自其余类别的样本替换掉,这部分样本的标签值由先前的试验预测得到。不同数量的标签噪声产生的结果如图6所示。

图6. 更新数据集中的标签噪声对于分类准确性的影响
如期待的那样,准确率随着错误标签样本的增加而连续降低。然而10%的噪声只造成了2%的精度损失,这在现实应用中是可以接受的。

6. 什么是新的?可视化网络的改变

尤其当新的类别被添加到训练集中时,我们能期待卷积层中的滤波器会特别调整到新类别的特征图案。为了可视化的解释我们的网络是如何随着时间变化的。我们首先选取了发生明显变化的滤波器,并将其对应的注意力区域在图片中可视化出来。
我们希望选中的滤波器能够对那些显著区分新添加的类别的图案给予更多的关注。一个直观的测量滤波器变化的方法是计算滤波器的权重值在更新前后的变化。然而这一策略可能很容易导致一个错误的解释,因为在某一层上的大的权重变可能是有前面几层的变化累积而成。因此,滤波器大的变化不需要对应最终学习特征的变化。处于这个原因,我们采用了另一种选择策略:我们选取输出变化最大的滤波器而不是参数变化最大的。输出的变化是通过计算单个滤波器在更新前后输出差值的L2范数得到的。我们只考虑AlexNet的conv5层,因为它被认为是与语义部分信息相关的。
为了可视化图片中滤波器对应的注意力区域,我们可以直接使用conv5的激活层。然而,conv5的分辨率太低了。为了保证滤波器注意力分析的空间定位准确性,我们使用了参考文献【51,52】中的梯度技术来计算注意力图。我们从这些图中计算了边界框,选择反应最大的位置作为中心,在X和Y方向上的标准差的两倍作为宽和高。这使得我们可以可视化得到选择的conv5滤波器的主要注意力区域。
可视化结果 我们对先前介绍的连续学习场景应用了我们的可视化技术并且对一个单一类别添加进去后滤波器的注意力图进行了可视化。我们使用的更新数据集大小为100,对所有层的参数进行训练。对新类别中所有样本对应的conv5层滤波器的输出变化进行计算。图7中展示了我们的可视化结果。

图7. 连续学习过程中网络变化的可视化结果。我们注意到conv5的滤波器的注意力区域在一个学习步骤期间会发生明显的变化。区域显示在各自的类别被识别之前和之后(品红框和青色框)。左:注意力转移到与行动相关的物体上。中间:注意力没有明显变化。右图:注意区域转移到与语境相关的区域。
如图7左侧所示,conv5中输出变化最大的滤波器将注意力转移到新添加类别的波分,尽管在训练过程中并没有提供位置信息。非常有意思的是看到卷积神经网络能够为很小的更新数据集而调整表征。更多的可视化结果可见支持材料。

7. 结论

在这篇文章中我们研究了深度神经网络对于连续输入的数据流进行连续学习的过程。之前的工作都集中于在预训练网络的一步微调上,我么通过实验研究了更加一般化的场景,即频繁的小批量的更新步骤。基于我们的研究,我们得出结论连续学习可以通过连续微调的方式实现。我们进一步研究了如何通过减少SGD的迭代次数来加速连续微调。事实上,在每一个更新步骤中,甚至不需要一个周期就能稳健地训练模型。除此之外,我们还分析了标签噪声的影响,因为这在现实应用中是很常见的,除了非常严重的噪声干扰会导致准确率的下降,我们发现即使有10%的错误标注,连续学习也可以成功的记性。最后我们可视化了网络注意力在连续学习期间的变化。所以我们能够可视化的展示模型是如何将注意力转移到最新学习的类别所对应的位置的。

论文阅读笔记《Fine-tuning Deep Neural Networks in Continuous Learning Scenarios》相关推荐

  1. 《Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs》论文阅读笔记

    <Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs>论文阅读笔记 主要挑战贡献: KG上的推理挑战主要 ...

  2. 论文阅读 | NIPS‘20 | Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs

    很有意思的一篇paper.在众多Knowledge Graph Embedding (KGE) 的论文中通过问题设计和有意思的解决方式脱颖而出. 首先来看看问题设计. 一般的KGE model都是利用 ...

  3. Beta Distribution Guided Aspect-aware Graph for Aspect Category Sentiment Analysis论文阅读笔记(EMNLP2021)

    目录 标题翻译:基于Beta分布引导方面感知图的方面类别情感分析 原文链接:https://aclanthology.org/2021.emnlp-main.19.pdf 摘要: 1 引言 2 相关工 ...

  4. Phrase-BERT: Improved Phrase Embeddings from BERT with an Application to Corpus Exploration论文阅读笔记

    问题: 因为bert是在长文本(512token长度)预训练的,因此,如果没有特定于任务的微调,BERT在短语和句子上的表现通常比简单基线(如GLoVe的平均池化)更差.且字节2020在EMNLP上的 ...

  5. DeepWeak: Reasoning Common Software Weaknesses via Knowledge Graph Embedding 阅读笔记

    DeepWeak: Reasoning Common Software Weaknesses via Knowledge Graph Embedding 阅读笔记 Article Background ...

  6. [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings

    [论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 购物返利 www.cpa5.cn 本文结构 解 ...

  7. 论文阅读笔记—Reasoning on Knowledge Graphs with Debate Dynamics(AAAI,2020)

    这是一篇非常有趣的工作,看完会觉得眼前一亮. 论文标题:Reasoning on Knowledge Graphs with Debate Dynamics 发表于AAAI,2020 动机  很多机器 ...

  8. 论文阅读笔记——《a simple but tough-to-beat baseline for sentence embeddings》

    <a simple but tough-to-beat baseline for sentence embeddings>published at ICLR 2017. ICLR会议的论文 ...

  9. Learning Hierarchy-Aware Knowledge Graph Embeddings for Link Prediction论文阅读笔记

    我的博客链接 0. 前言 1. 作者试图解决什么问题? 作者想在KGE中对语义层级(semantic hierarchies)进行建模. 2. 这篇论文的关键元素是什么? semantic hiera ...

  10. 斯坦福图机器学习CS224W笔记自用: Reasoning in Knowledge Graphs using Embeddings

    1. 基于嵌入的知识图推理 目标:如何对知识图进行多跳推理? 知识图推理: 回答多跳查询 路径查询 连接查询 Query2box 示例:生物医学图 知识图谱上的预测查询 我们是否可以进行多跳推理,即在 ...

最新文章

  1. cmake 编译curl源码_OpenCV4.0 源码编译
  2. Increasing Subsequence (easy version)
  3. 在最美好的年华里,不要辜负最美的自己
  4. Java多线程(5)--线程通信wait和notify
  5. python mysql in 参数_python mysql中in参数化说明
  6. 什么是抽象类?抽象类的作用_Java面试题amp;和amp;amp;的作用和区别
  7. Kali渗透测试——netdiscover
  8. matlab矩阵元素绝对值,如何解决矩阵内部元素绝对值化
  9. 使用Word 中的模板
  10. hist函数--matplotlib
  11. opencv计算机视觉学习笔记一
  12. SocketTool
  13. putty以及psftp的基本操作,使用方法等
  14. 计算机自带的画图软件工具介绍,电脑自带画图软件
  15. [附源码]java毕业设计宾馆客房管理系统
  16. 游戏背景音乐的种类—动态音效
  17. python——【2】gzip模块二进制格式读取压缩文件
  18. 如何创建一个uniapp项目,如何运行手机上,打包等,更换头部,底部图标等。一目了然,
  19. 简述linux下用户与组相关的配置文件,Linux用户和群组管理的主要配置文件
  20. linux操作系统未正常启动提示Entering emergency mode. Exit the shell to continue

热门文章

  1. 7-22 超市贴花 (15 分)
  2. Cadence中原理图模块化
  3. 没有100亿,你玩什么无人货架 | 深度
  4. 华为发布智能光伏十大趋势
  5. Matlab之频域滤波下三大LPF
  6. 关键绩效指标KPI项目
  7. 家用电梯的曳引式电梯井道尺寸及配置
  8. 2021年山东省安全员B证试题及解析及山东省安全员B证复审模拟考试
  9. 子曾经曰过,我平生第一次讨厌下雨。
  10. 子曾经曰过,先把历史遗留问题解决,然后再展鸿鹄