Incremental Learning Through Deep Adaptation

转from:https://blog.csdn.net/qq_33880788/article/details/80455714

摘要:

 

鉴于现有的训练过的神经网络,通常需要学习新的能力而不妨碍已经学过的人的表现。现有的方法要么学习次优解决方案,需要联合培训,要么大大增加每个添加域的参数数量,通常与原始网络一样多。我们提出了一种称为深度适应网络(DAN)的方法,将新学习的过滤器限制为现有过滤器的线性组合。 DAN在原始域中精确地保持性能,与标准微调程序相比,需要一小部分(通常取决于网络体系结构的13%)参数数量,并且在较少的培训周期内收敛到相当或更好的性能水平。当与标准网络量化技术结合使用时,我们将参数成本进一步降低到原来的3%左右,精度可以忽略不计或没有损失。可以控制学习的体系结构以在各种学习表示之间切换,从而使单个网络能够解决来自多个不同领域的任务。我们进行了广泛的实验,展示了我们的方法在一系列图像分类任务中的有效性,并探索了其行为的不同方面。

1.引言

 

尽管深度神经网络在图像分类[1],语义分割[2],目标检测[3],语音识别[4]医学图像分析[5]等等各个领域继续显示出显着的性能增益,仍然是这样的情况,通常情况下,需要为每个新任务训练单独的模型。给定两种完全不同的形式或性质的任务,例如预测单词序列中的下一个单词与预测图像中某个对象的类别,理所当然的是每个都需要不同的体系结构或计算。一个更受限制的情景 - 我们打算在这项工作中处理的一个情景 - 是学习一个能够在多个相关领域运行良好的表示。这种情况最近由Rebuffi等人提出。 [6]作为多领域学习(MDL),将其置于多任务学习之外,即在同一个领域执行不同的任务。 MDL的一个例子是图像分类,其中图像可能属于不同的领域,例如绘图,自然图像等。在这样的设置中,期望解决方案可以自然地会:
1)利用相同的计算流水线
2)要求每个添加域的所需参数数量适度增加
3)保留已学习数据集的性能(避免“灾难性遗忘”)
4)逐步学习,放弃对联合训练的要求,例如在先前学过的任务的训练数据不再可用的情况下。
我们的目标是让网络在遵守上述要求的同时逐一学习一系列相关任务。我们这样做是通过增加一个已经学习过另一个任务的控制器模块学习新的任务。控制器模块的参数经过优化,以最大限度地减少新任务的损失。在这个阶段不需要原始任务的训练数据。原始任务数据上的网络输出保持原样;任何数量的控制器模块可以被添加到每一层,使得单个网络可以同时编码多个不同的域,其中从一个域到另一个域的转换可以通过设置二进制交换变量或自动控制来完成。由此产生的架构是DAN,表示深度自适应网络。我们证明了我们的方法在最近推出的Visual Decathlon Challenge [6]上的有效性,它的任务是生成一个分类器,以在十个不同的图像分类数据集上运行良好。虽然每个新学到的任务只增加13%的原始参数数量(具体数量取决于网络架构),但平均性能超过了微调所有参数的平均性能 - 没有加倍参数数量的负面影响和灾难性遗忘。在这项工作中,我们专注于各种数据集中的图像分类,因此在我们的实验中,“任务”一词是指特定的数据集/域。所提出的方法可扩展到多任务学习,例如执行图像分割和分类的单个网络,但本文不讨论这一点。
我们的主要贡献在于引入了一种改进的传输学习方法,这种方法与微调所有网络参数以实现新任务一样有效,能够精确保留旧任务性能,需要一部分(网络相关,通常为13%)在新权重方面的成本的分数,并且能够在任何数量的学习任务之间切换。 实验结果验证了该方法对各种图像分类数据集的适用性。

我们介绍了该方法的两个变体,一个完全参数化的版本,其优点如上所述,一个参数少得多,对于可比数目的参数显着地执行浅传递学习(即特征提取)。 在下一节中,我们将回顾一些相关的工作。 第3节详细介绍了所提出的方法。 在第4节中,我们展示了各种实验,包括与相关方法的比较,以及探索如何使我们的方法更有效的各种策略,随后进行了一些讨论和总结发言。

2.相关工作

2.1 多任务学习

 

在多任务学习中,目标是训练一个网络同时在同一个输入上执行多个任务。这通常通过对所有任务进行联合训练来完成。这样的训练是有利的,因为单个表示被用于所有任务。另外,据说多重损失是另一个正规化者。一些例子包括面部标志定位[7],语义分割[8],3D推理[9],对象和零件检测[10]等。虽然所有这些学习在同一数据集上执行不同的任务,但最近的工作[11]探索了单个网络在各种图像分类数据集上执行任务的能力。我们还旨在对来自多个数据集的图像进行分类,但我们建议以逐一学习而非共同学习的方式进行。与我们的方法相一致的是[6]中介绍的数据集特定的附加残差单元。我们与第4节中的这项工作进行了比较。我们的工作与[12]有些相似,其中两个网络共同训练,附加的“cross-stitch”单元允许来自一个网络的每一层具有输出的附加输入线性组合从另一个下层。但是,我们的方法不需要联合培训,并且需要的参数显着减少。

2.2 增量学习

 

向神经网络添加新的能力常常导致所谓的“灾难性遗忘”[13],阻碍了网络工作在旧任务中表现良好的能力。解决这个问题最简单的方法是固定网络的所有参数,并使用其倒数第二层作为特征提取器,然后可以训练分类器[14],[15]。虽然保证不改变旧的性能,但观察到的结果大大低于对整个架构进行微调[3]。 Li和Hoiem [16]的工作提供了这种方法几种变体的简洁分类。另外,他们提出了一种微调整个网络的机制,同时通过引入一个损失函数来保证旧任务的性能,该函数鼓励旧特征的输出在新引入的数据上保持不变。虽然他们的方法为每个新任务添加了非常少量的参数,但并不能保证该模型在旧任务中保留其全部功能。 Rusu等人[17]显示新的表示可以与旧的表示一起添加,同时保持旧的任务性能不受影响。但是,这需要为每个添加的任务复制原始网络的参数数量。在Kirkpatrick等人[18]如果发现它们对于旧任务很重要,则神经元的学习率降低。我们的方法完全保留了旧的表示,同时导致每个添加任务的参数数量适度增加。最近,Sarwar等人[19]提出通过分享早期层次的子集和分裂后期层次来逐步培训网络。通过构建,他们的方法也保留了旧的表示。然而,正如他们的实验所显示的,重新学习新网络分支的参数,无论是用类似的分布随机初始化还是仅仅复制旧分支,都会导致比没有任何网络共享的学习更糟的性能。我们的方法在重新利用现有权重的同时,获得的结果平均好于简单的转移学习或从零开始学习。

2.3 网络比较

 

多篇关于减少神经网络的数量权重的文章已经发表[20],[21],增加加速[22]或避免过度拟合[23],使用编码, 量化,修剪和张量分解。 这些方法可以与我们的方法结合使用,以进一步改善结果,如我们在第4节中所示。

3.方法

 

我们从一些符号开始。让T 成为一些需要学习的任务。具体而言,我们使用深度卷积神经网络(DCNN)去学习图像分类解决T 这个图像分类任务。当代大多数DCNN都遵循一个共同的结构:对于每一个输入 xi,DCNN通过让输入在一组中 l 个层 ϕii∈1...l 之间用交错的非线性传递来计算输入的表示形式。网络的初始(较低)层是计算块,例如:在更新的结构中与可选的残差单元进行卷积[24]。我们的方法同样适用于有或没有残差连接的网络。至少有一个全连接层 fii∈1...c 被附加到最后一个卷积层的输出。设 ΦFN=σ(ϕl)∘...σ(ϕ2)∘σ(ϕ1) 是网络N 的所有卷积层的组成,由非线性交织。我们使用一种结构,所有的非线性σ都是相同的函数,没有可调参数。用ΦFN(x)表示网络N 的特征部分。类似的 ΦCN=fc∘...σ(f2)∘σ(f1)

表示N 的分类器部分,即N 的所有全连接层。然后N 被简单的定义为:

N(x)=ΦCN∘ΦFN(x)(1)

为简洁起见,我们没有在上述符号中指定批量规范化层。如果网络是完全卷积的,可以放弃ΦCN项[2]。

 

3.1 调整表示

 

假设我们有两个任务 T1 和 T2 需要学习,并且我们已经学习了一个基础网络 N 来解决T1。 我们假设T2的一个很好的解决方案可以通过与N具有相同架构但具有不同参数的网络来获得。 我们增加N,以便它能够通过将控制器模块附加到其每个卷积层来解决T2。 每个控制器模块使用 N 的相应层的现有权重来创建适用于新任务T2的新卷积滤波器:对于N中的每个卷积层ϕl,令FlRCCi×k×k为该组的滤波器层,其中C0是输出特征的数量,C1是输入的数量,并且k×k是内核大小(假设是方形内核)。 由blRC表示偏差。 用FlRCD表示其行是Fl的滤波器平坦版本(原文为flattened version )的矩阵,其中D=Ci×k×k; 令fRCi×k×k是一个来自Fl

的滤波器,其值为:

f1=⎛⎝⎜⎜⎜f111⋯⋱f11kf1kk⎞⎠⎟⎟⎟,⋯,fi=⎛⎝⎜⎜⎜fi11⋯⋱fi1kfikk⎞⎠⎟⎟⎟(2)

f的平坦版本(flattened version)是一个行向量:

f˜=(f111,⋯,f1kk,⋯,⋯fi11,⋯,fikk)∈RD(3)

解开(“unflattening”)行向量f˜将其恢复为其张量形式fRCi×k×k。这样,我们可以写

Fal˜=WlFl˜(4)

其中 WlRCC0 是定义 Fl 的平坦滤波器的线性组合的权重矩阵,C0 为新滤波器个数。 将 Fal˜ 解开为其原始形状,FalRCCi×k×k ,我们称之为 ϕl 的自适应滤波器。 使用符号 XY 作为 flattern Ymatrix multiply by X→ unflatten 的缩写,我们可以这样写:

Fal=WlFl(5)

如果卷积包含一个偏差,我们实例化一个新的权重向量 bal 代替原来的 blϕl层的输出计算如下:令 xlϕl 在自适应网络中的输入。 对于给定的开关参数α∈{0,1},我们将修改的层的输出设置为交换卷积参数和偏差的应用:

xl+1=[α(WlFl)+(1−α)Fl]∗xl+αbal+(1−α)bl(6)

上述公式用于切换两种不同的行为 - 基础网络和控制器模块的行为,这些行为是为新任务学习的。
为了允许网络执行多个任务,我们将α变为向量 α∈{0,1}n,其中 n 是任务的总数,因此如果我们想要执行第 j 个任务,则αj=1,否则为 0。 然后,类似于等式6确定 l 层的输出:

xl+1=∑ni=1αi(Failxl+bil)

其中Failbil是第 i 个任务的适配滤波器/偏差集合,我们定义Fa1l=Fl; bil=bl包含原始任务。
一组完全连接的层 fai 从头开始学习,为每个新任务附加一个新的“头”到网络。 在整个训练和测试过程中,F 的权重( N 的过滤器)保持固定并作为 Fa 的基础函数。 给定损失函数,通过反向传播学习控制器模块的权重。 任何批量标准化(BN)层的权重要么保持固定,要么重新学习。 批量标准化输出在新旧BN层的值之间切换,与公式6相似。 DAN的可视化可以在图1中看到,而在图2中可以看到单个控制模块。
这里写图片描述图1 提出的方法概述。 对于新学习的域,控制器模块被附加到参数被冻结的基础网络的卷积中。 切换变量 α 允许切换卷积的原始行为与新域的重新参数化之间的网络行为。 α 可以手动确定,也可以通过确定图像源域的子网络(“数据集决策器”)确定,并在不同的控制参数组之间切换。 α 还控制要应用哪个分类器。 其他层(例如,非线性,批量标准化,skip层)未出于展示目的示出。 虽然可以添加任意数量的任务,这里我们假设增加一个任务。
这里写图片描述
图2 控制器模块:基础网络的卷积层的滤波器通过控制器模块重新组合它们的权重而被修改,其中切换变量 α 可以在原始滤波器 Fl 和新创建的 Fal 之间进行选择。 我们给一个添加的任务显示一个控制器模块,这里可以添加任意数量的控制器,其中 α 是向量而不是标量。
我们将为数据集/任务 S 学习的网络表示为 NS。 使用 NS 作为基础网络学习到的控制器将被表示为 DANS ,其中 DAN 代表深度自适应网络,DANST 意味着使用DANS 处理特定任务 T .虽然在这项工作中我们将该方法应用于适用于分类任务,但是也可以应用于其他任务。

 

3.2 额外的设计选择

 

在下文中,我们提到一些额外的设计选择,用于通过控制器来增强网络的可能方式,并提供一些关于参数所发生成本的分析。

3.2.1 弱化参数(Weaker parametrization)

 

我们方法的一个较弱的变体是强制矩阵 Wl

变成对角矩阵,例如,仅缩放原始网络的每个滤波器的输出。 我们称这种变体为“diagonal”(仅指比例系数,例如对角线矩阵)和我们的方法“linear”(指滤波器的线性组合)的完整变体。 对角线变体可以看作是一种显式正则化的形式,它限制了学习表示的表达能力。 虽然需要的参数显著减少,但导致分类准确性较差,但如后面所示,也优于传统学习的常规特征提取,尤其是在网络压缩情况下。

3.2.2 多控制器

 

以上描述提到了一个基础网络和一个控制器网络。 但是,任何数量的控制器网络都可以连接到一个基础网络,而不管已经连接的网络。 在这种情况下,α

扩展到由另一个子网络确定的值的一个独热向量 ,从而允许每个控制器网络根据需要被打开或关闭。

3.2.3 参数成本

 

为每项任务添加的新参数数量取决于每层中的滤波器数量以及全连接层中的参数数量。由于后者不被重用,它们的参数被完全复制。令M=CD 是某个卷积层 ϕl 的滤波器维数,其中 D=Ci×k×kϕl 的控制器模块需要 FalC20 系数和 bal附加的 C0。因此,对于 ϕl,新参数w.r.t与旧的比率是 C0×(C0+1)C0×(D+1)=C0+1D+1≈C0D。例如:对于 C0=Ci=256 的输入和输出单元和内核大小 k=5,这等于 256+1256⋅52+1≈0.04。在最终的结构中,我们使用所需的权重总数来适应卷积层 Φl 与新的全连接层相结合,约占原始参数的13%。对于VGG-B,这大概是21%。例如,使用一个基础网络和 9 个控制器网络构建 10 个分类器需要(1+0.13∗9)⋅P=2.17⋅P 个参数,其中 P 是仅基础网络的数量,而独立训练每个网络需要 10⋅P 。成本取决于网络结构,例如在VGG-B结构上应用时会更高。虽然我们的方法可以应用于任何具有卷积层的网络,但是如果 C0≥D

,即输出滤波器的数量大于每个输入滤波器的维数,它只会增加参数的数量。

3.3 限制

 

从我们的表述中产生的一个直接问题是关于所得到的自适应网络的表达能力。我们在这里提供一些分析。在常规的微调或学习方案中,根据优化方案和训练数据,每层的权重可以取任意值。相反,所提出的方法将每个滤波器限制为相应层中的原始滤波器的线性组合。总的来说,这可能成为网络性能的一个强大限制因素。l 层的过滤器 F=f1,⋯,fk 可以通过展开张量形式,形成向量。F 定义了所提出的方法创建新过程的过滤器的子空间的基础。由于我们的方法通过对 F

应用线性变换来定义新的滤波器,所以其初始值可能对所得到的网络具有几个影响。两个重要的情况是:(a)网络表达能力和(b)网络效率受到影响。我们提供了这些场景何时可能发生的示例以及一些实验来演示它们。

3.3.1 表达能力

 

我们可以轻松地构建一个例子,通过选择适应不合适的基础网络,网络的表达能力受到严重阻碍。 例如,假设网络的输入是RGB图像。 另外,假设 - 出于某种原因 - 所有第一层滤波器在绿色和蓝色通道中的系数精确为0。 如果这些信道中的信息对于所提出的方法需要学习的任务来说是关键的,那么它明显会失败,因为信息驻留在基础网络的过滤器表示的正交特征空间中。

3.3.1.1 残差连接

上述声明不适用于具有残差连接的网络[24]。 在残差连接中,第 i

层的输出 yi

具有以下一般形式:

yi=F(xi;Wi+xi(7)

其中 xi 是该层的输入,Wi 是该层的参数。 这允许保留来自前一层的信息,因为由此允许的可能功能是身份功能。 如果保留了信号 x 的足够信息,那么下一层仍然可以恢复,因为在该层中没有充分表示它。因此,网络的表达能力可能对单层基础函数的选择较不敏感。 不过,正如我们下面介绍的那样,它的效率可能会受到影响。

 

3.3.2 效率

 

某些情况下,网络的表达能力不会立即受到基础函数选择的影响,但我们认为网络的效率会立即受到影响。 我们将网络w.r.t 的效率定义为给定图像切片作为通过单个过滤器区分其他图层所需的最小层数(深度)。 换句话说,存在一些滤波器的最浅层的深度,其响应与切片的存在强相关。 一个例子是 3x3 灰度色块,其中1个在所有角落,其他0个。 在第一层中,一个值为的过滤器 v

v=⎛⎝⎜⎜+1−1+1−1−1−1+1−1+1⎞⎠⎟⎟

会完美匹配这个切片。 另一方面,可以第一层的9个滤波器设置为delta函数,滤波器分别为

⎛⎝⎜⎜+100000000⎞⎠⎟⎟,⎛⎝⎜⎜000+100000⎞⎠⎟⎟,⋯,⎛⎝⎜⎜00000000+1⎞⎠⎟⎟

。这些过滤器涵盖了所有可能的 3x3 切片,因此它们不会影响表达。 然而,保持第一层固定,第二层需要创建一个过滤器来匹配 p ,而 v 直接表达了这一点。

 

3.3.3 小样本集(Toy Dataset)

 

为了进一步展示上述限制,我们构建了一个小样本分类任务。我们首先描述数据集和实验,然后讨论结果。
任务是:给定一个尺寸为28x28x3的输入图像,预测图像中条的长度。在此数据集中,图像被限制为长度为 3⋅k的1像素宽度条,其中在空白背景上 k∈{3,4,5,6,7},并且类是条的相应长度。条的长度被设置为3的增量,因为较小的条导致网络难以学习,这可能是最大化操作造成的。
数据集由1000个例子组成,其中训练、测试集的划分为75%/ 25%。我们测试的网络故意非常简单:第一层包含一个5x5滤波器,第二层包含20个滤波器,接下来是两个全连接层,分别为320x50和50x5。
我们创建了这个数据集的3个变体,以测试它的不同传输学习场景。数据集变体是(1)仅红色水平条,(2)仅红色竖条(被称为“转置”)和(3)仅绿色水平条(被称为“新通道”)。请注意,我们限制了我们的方法仅在第一层操作,在这种情况下归结为将滤波器的输出乘以标量并学习新的偏差。
在所有情况下,该网络使用Adam [26]优化器(SGD在这种情况下不会收敛)训练了50次。我们测试了七个场景。这些涉及数据集中图像的不同组合,第一层的初始化以及优化程序可能会修改或不可修改哪些层。
•原始:水平数据集,第一个过滤器固定到水平绿色栏,学习其他层
•原创+学习:水平数据集,学习所有层
•转置:转置数据集,第一个过滤器固定到一个水平栏,学习其他层
•频道切换:新频道数据集,第一个过滤器固定到水平绿色栏,学习其他层
•通道切换+噪声:新通道数据集,第一个滤波器固定为水平绿色条+高斯噪声,学习其他层
•频道切换+干净启动:新频道数据集,学习所有层
•频道切换+学习:新频道数据集,首先将过滤器初始化为水平绿色栏,了解所有层。
每个实验重复20次以解释可变性。我们绘制了50次训练在验证集上的平均准确度。
这里写图片描述图4 演示小样本示例中可能方法的不同可能限制。从第一层包含从正交子空间的特征到任务所需特征的网络传输可能会导致机会的准确性。详情请参阅文字。
图4总结了这些实验的结果。左侧的子图显示了50次训练的平均表现,右侧显示了每种情景下获得的最大(20次试验)。这些表明,在大多数情况下,我们可以达到很好的准确性,但是在平均情况下,获得的性能之间存在巨大差异,尽管这是一个非常简单的数据集。第一层固定的原始场景达到100%的准确性。将通道从绿色切换到红色(“通道切换”),但保持第一个滤波器的固定结果的机会准确性,例外:纯粹“绿色”滤波器的线性组合不能代表来自红色通道的信息。在这种情况下,如果我们允许学习所有层(“信道切换+学习”),网络的确可以最终收敛到一个很好的精度(图4(b)),但20次试验的平均性能远不及最优(图4(a)) - 网络收敛到约50%的准确度(机会表现为20%)。这证实,即使对于非常简单的情况,错误的初始化也可能对训练过程不利。
平作为一项“健全测试”,我们确保随机初始化网络并允许在“频道切换”案例中学习所有层次,从而实现100%的性能(在平均和最好的情况下)。这确实是这种情况(“通道切换+干净启动”),尽管我们看到随机初始化首先收敛的速度比“原始”的已知初始化要慢得多。接下来,我们将网络初始化为“原始”,但使用“频道切换”数据集。但是,我们将随机噪声添加到第一层滤波器,然后保持固定(“通道切换+噪声”)。由于初始滤波器不与绿色通道正交,优化能够在平均和最佳情况下从初始化中恢复。
“原始+学习”初始化为“原始”,但允许修改第一层。平均而言,它最初的收敛速度比“原始”情景慢,平均而言,它表现更好。
最后,将原始滤波器固定为与所需形状(水平条)正交的“转置”情况下,性能平均降低,在最佳情况下接近100%。请注意,虽然我们无法通过线性变换垂直线条来生成水平条形,但由于其卷积性质,信息不会丢失并且可以由第二层的滤波器恢复。这是通过对具有适当系数的水平滤波器的移位响应的加权总和来完成的。这是降低网络“效率”的一个例子,即委托到第一层可以完成的第二层计算。
总而言之,我们从这个小数据集上的实验得出以下结论:
1)使用强领域特定知识设置一些网络权重并修正它们的值,只学习其他层可以导致快速收敛的强解决方案。
2)如果所有图层都是随机初始化的,然后允许更新,即使收敛速度会变慢,也会出现更强的解决方案。
3)将某些权重初始化为“坏”值可能会导致平均值显着低于前两种情况,偶尔但很少出现性能良好的情况。
4)将一些权重初始化为“坏”值,修正它们,并学习其余的权重将完全无法挽回地阻止网络的学习。

在下一节中,我们将测试我们的方法,使用更丰富,更多样化的数据集,更少的退化网络(例如,第一层中的多个过滤器),以及在某些情况下残差网络,这些网络都可能会减少人工示例。

4 真实数据集上的实验

 

我们进行了几次实验来测试我们的方法并探索其行为的不同方面。实验部分分为两部分,第一部分是更具探索性的部分,第二部分是针对近期多任务学习基准的结果。我们使用两种不同的基本网络结构,分别针对各个部分的两个(有些重叠的)分类基准集。第一个是VGG-B [25]。我们首先列出我们使用的数据集(4.0.1),然后通过使用几个初始网络为每个数据集训练一个单独的模型来建立基线。我们继续测试我们提出的方法的几个变体(4.1)以及测试不同的训练方案。接下来,我们讨论如何预测网络作为基础网络的性能(4.3)。我们展示如何辨别输入图像的域,并输出适当的分类(4.3.1),而无需手动选择控制参数 α。在第二部分实验中,我们展示了如何使用我们的方法在Visual Decathlon挑战赛中取得领先分数[6],并使用不同的更新的结构。在总结之前,我们将展示我们方法的一些有用特性。

所有实验均使用PyTorch框架使用单个Titan-X Pascal GPU执行。

4.0.1 数据集和评估

 

我们的评估协议的第一部分类似于[11]:我们在以下数据集上测试我们的方法:Caltech-256 [27], CIFAR-10 [28], Daimler [29] (DPed), GTSR [30],Omniglot [31], Plankton imagery data [32] (Plnk), HumanSketch dataset [33] 和 SVHN [34]。 所有图像都调整为64×64像素,复制灰度图像以使它们具有RGB通道的3个通道。 我们通过减去平均像素值并除以每个通道的方差来美白所有图像。 这是分别为每个数据集完成的。 我们选择80%用于训练,20%用于未提供固定分组的数据集中进行验证。 我们使用[25]中描述的B结构,此后称为VGG-B。 在从零开始训练时,它在各种数据集上表现相当好(请参见表1)。请参阅[11]以获取每个数据集的简要说明。
作为基准,我们在8个数据集的每一个上独立地训练网络。 这部分的所有实验都是用Adam优化器[26]完成的,初始学习率为1e-3或1e-4,这取决于每个数据集的几个试验时期。 学习率在每10个迭代后减半。 大多数网络工程在前10-20个迭代后收敛,之后几乎可以忽略不计。 我们选择Adam作为这部分的原因在于其对于非自适应优化方法(例如SGD)的快速初始收敛,代价是可能较低的最终准确度[35]。 表1中汇总了top-1(%)。
这里写图片描述
表1Perf:针对几种基线和我们方法的几种变体,各种数据集和参数成本(#par.,越低越好)的top-1准确率(%,越高越好)。 第1,2行:独立基准表现。 VGG-B:VGG [25]结构B。(S) - 从头开始培训。 (P) - 在ImageNet上预先训练好。 第3-7行:(我们的)控制器网络性能; 在大多数数据集上,DANsketch 作为基础网络胜过DANcaltech−256。 基于随机权重的控制器网络(DANnoise)工作得很好,因为其学习参数的数量是其他方法的五分之一。 DANimagenet:控制器网络从在ImageNet上预训练的VGG-B模型初始化而来。 DANimagenet+sketch

:基于VGG-B(P)&Sketch的选择性控制网络。 我们对每列中的第一(红色),第二(绿色)和第三(蓝色)个最高值进行颜色编码(#par的最低值)。 #par:为了实现所有任务的所述性能而划分的权重的分摊数量除以所处理任务的数量(越低越好)。

4.1 控制器网络

 

为了测试我们的方法,我们依次在8个数据集的每一个上训练了一个网络,作为所有其他网络的基础网络。我们将这与每个数据集从头开始(VGG-B(S))或预训练(VGG-B(P))网络的训练基线进行比较。表1总结了两个代表性基础网络的所有数据集的性能:DANcaltech−256(79.9%)和DANsketch(83.7%)。其他基准网络的平均性能如图5(a)所示。每个设置的参数成本(3.2.3)在表格的最后一栏中报告。这与[6]类似,是一组完全参数化网络标准化的一组任务所需的参数总数。我们还检查了网络在充分训练后能够作为基础网络执行的程度,例如:DANimagenet是基于ImageNet上预训练的VGG-B,这使得平均性能提高了很多(83.7%至86.5%),在Caltech-256上我们看到了从88.2% 开始的提升(从头开始训练)。但是,对于Sketch和Omniglot,性能都支持DANsketch,注意这些是严格非自然图像的唯一两个域,此外,DANimagene

t仍然略低于非预先训练的VGG-B(S)(86.5% vs 87.7%),尽管后者参数成本更高。

4.1.1 多种基础网络

 

可以说,一个好的基础网络应该具有足够通用的特征,以便控制器网络可以将它们用于广泛的目标任务。实际上,这可能不是必然的。我们推测,使用多种特征(例如通过多个任务的训练学习)将为转移学习提供更好的基础。为了同时使用两个基础网络,我们通过使用DANcaltech−256和DANsketch并连接到控制器网络来实现双控网络。所得子网络的特征部分的输出在全连接层之前被级联。这导致与DANsketch单独完全相同的性能。然而,通过使用每组任务中选定的控制器模块,我们可以改进结果:对于每个数据集,最大性能的网络(基于验证)是控制模块的基础,即我们对除Omniglot和Sketch之外的所有数据集使用DANimagenet。对于后两者,我们使用DANsketch作为基础网络。我们称该网络为DANimagenet+sketch

。以更多参数为代价,它将平均性能提升至87.76% - 比使用任何单个基本网络用于控制器或从头开始进行培训要好。由于它被用于9个任务(包括ImageNet),其参数成本(2.76)仍然相当不错。

4.1.2 从随机初始化的基础网络开始

 

我们测试了我们的方法在没有任何现有知识的情况下性能表现,例如,在随机初始化的基础网络上构建控制器网络。 这个结构的参数总数是~12M。 然而,由于10M已经被随机初始化,并且只有控制器模块和全连接层已经被学习,所以有效数目实际上是2M。 因此其参数成本被确定为0.22。 我们在表1中总结了结果。 值得注意的是,这种初始化的结果非常好, 该网络获得的平均top-1精度为76.3%,比DANcaltech−256(79.9%)略差。 这比使用DANdaimler

进行初始化要好,其平均准确度为75%。 这是可能的,因为基础网络中的随机值仍然可以通过我们的方法线性组合,以创建对分类很有用的值。

4.2 初始化

 

出现的一个问题是如何初始化控制模块的权重W。我们测试了几个选项:(1)将W设置为单位矩阵(对角线(diagonal))。这相当于控制器模块从一个有效模仿基础网络行为的状态开始(2)将W设置为随机噪声(随机(random))(3)从头开始为新任务训练独立网络,然后将W设置为最佳用基本权重线性近似新的权重(线性近似(linear_approx))。为了找到最佳的初始化方案,我们在训练DANsketchcaltech256 的过程中逐轮观察了损失。每个实验重复5次,结果取平均值。从图5(a)可以看出,对角线初始化是根号的,或许直观地反映出,不需要训练完全参数化的目标网络。简单地从基础网络的行为开始,并通过控制模块进行调整,可以加快收敛速度​​。因此,我们用对角线方法训练控制器模块。有趣的是,[6]中的残差适配单元最初与对角线配置类似。如果其适配器单元中的所有过滤器都设置为1(达到标准化),则适配器的输出最初将与使用单位矩阵初始化的控制器单元的输出相同。
这里写图片描述
图5

(a)控制器初始化方案。 对于初始化控制器模块的不同方式,在5次实验中的平均损失的平均值,用最小值和最大值重叠。 随机初始化性能最差(随机)。近似微调网络的性能略好(线性近似)且初始化基础网络(对角线表现最好(b)考虑到其可转移性测量,控制网络的整体准确度在所有数据集上的可预测性。

4.3 可转移性(Transferability)

 

如何选择一个良好的网络作为其他网络的基础?作为每个独立训练网络N 的特征的代表能力的指标,我们在其他数据集上测试性能,使用N 进行微调。我们将一个源任务S w.r.t的目标任务T 的可转移性定义为通过对在S 上训练的N 进行微调以在 T 上执行而获得的top-1精度。我们测试3种不同的场景,如下:(1)仅微调最后一层(也称为特征提取)(ft-last); (2)微调 N 的所有层(ft-full); (3)与ft-full相同,但冻结批处理标准化层的参数 - 在某些情况下,这已被证明是有益的 - 我们将此选项称为ft-full-bn-off。图3中的结果显示了一些有趣的现象。首先,如预期的那样,特征提取(ft-last)不如微调整个网络。其次,通常从头开始的训练是最有利的选择。第三,我们看到自然图像(Caltech-256,CIFAR-10,SVHN,GTSR,Daimler)和非自然图像(Sketch,Omniglot,Plankton)之间的区别;Plankton图像本质上是自然的,但似乎表现出与其他行为不同的行为。
这里写图片描述
图3不同数据集相互之间的可转移性(ft-last)只调整最后一层(full)微调所有层(ft-full-bn-off)微调所有层,同时禁止批量标准化层要更新的权重。 总的来说,网络往往更容易转移到相关领域的问题(例如,自然/绘图)。 放大查看数字。 建议在线观看该图。
很明显,自然图像的特征对于不自然的图像不太有利。有趣的是,相反的情况并非如此:从Sketch或Omniglot开始训练一个网络对于大多数数据集来说工作得非常好,既自然又不自然。这在表2中进一步示出:我们通过图3的可转移矩阵的每行的平均值来计算每个数据集的平均可转移性。 DANCaltech−256最适合特征提取。但是,使用DANPlankton 作为最佳起点的全面微调,紧随其后的是DANCaltech−256。对于控制器网络,使用DANsketch(83.7%)获得从零开始训练的单个基准网达到的最佳平均准确度。这与通过完全转移学习获得的性能接近(84.2%,参见表2),参数数量的一小部分。这与我们的可转让性措施一致。为了进一步测试可转移性与特定基础网络的性能之间的相关性,我们使用每个数据集作为所有其他网络的控制网络的基础,并测量平均总体准确度。结果见图5(b)
这里写图片描述
表2

平均转移学习表现。 我们展示了通过微调从每个域到所有域的网络获得的平均top-1精度(%)。 在上面的数据集中,从Caltech-256开始,证明了最通用的特征提取器(ft-last)。 但是,在初始训练Sketch数据集时(ft-full),微调是最好的,

4.3.1 统一网络

 

最后,我们测试一个单一网络的可能性,它既可以确定图像的域,也可以对其进行分类。 我们训练一个分类器,使用8个数据集中的训练图像来预测图像来源于哪个数据集。 网络(也称为VGG-B)很容易学会这一点,其迅速收敛到99%的准确度。 使用这个名为 Ndc的“数据集-决策器”,我们增加了DANsketch,以便为来自任何数据集Di的每个输入图像 I 设置 DANsketchDi的控制器值 αi 为1,当且仅当 Ndc 认为 I 源自 Di 否则为0。 这产生了一个网络,它将适用于每个输入图像的正确控制器分类到它自己的域中。 虽然 αi

的预测值是实值,但我们将最高值设置为1,其余为零。

4.3 视觉十项全能挑战赛

 

我们现在展示最近的[6]的视觉十项全能 挑战赛的成绩。挑战介绍涉及10个不同的图像分类数据集:ImageNet [36];Aircraft[37]; Cifar-100 [28];Daimler Pedestrians[29];Dynamic Textures[38];GTSR [30];Flowers[39];Omniglot [40];SVHN [34]和UCF-101 [41]。我们的目标是使用作者确定的train / val / test splitting,在保持小模型大小的同时,在每个数据集上实现准确的分类。所有图像都调整大小,因此每个图像的较小边是72像素。预计分类器可以在64x64像素的图像上运行。在挑战中的每个条目都被赋予一个十项全能得分,这是一个为所有10个数据集上的高亮度方法设计的功能,其比基线要好。有关评分和数据集的详细信息,请参阅挑战网站:http://www.robots.ox.ac.uk/~vgg/decathlon/。与[6]类似,我们选择使用整个深度为28和扩展因子为4的宽残差网络[42],在每个基本块的开始卷积处步长为2。下面我们描述挑战结果,然后再进行一些额外的实验,显示我们方法在各种环境中的附加价值。在本节中,我们使用了最近的YellowFin优化器[43],因为它需要的调整少于SGD。我们使用0.1的初始学习率因子,并在25次迭代后将其降至0.01。这适用于除ImageNet外的所有数据集,我们用SGD进行150迭代,初始学习率为0.1,每35次迭代降低10倍。这是我们使用可用验证数据确定的配置,然后用于在验证集上进行训练(如挑战的作者),并从评估服务器获取结果。在这里,我们从头开始对降低分辨率的ImageNet进行训练,并使用生成的网络作为所有其他任务的基础。表3总结了我们的结果以及基线方法和[6]中的方法,所有方法都使用相似容量的基础架构。通过使用明显更强的基础结构,他们获得了更高的结果(平均值为79.43%),但参数成本为12,即需要原始参数的12倍。所有的行都从[6]中复制,包括它们重新实现的LWF,除了最后一个显示我们的结果。表中的最后一列显示了十项全能评分。 2500分的分数反映了将ImageNet上学习的网络独立地微调到每个数据集所产生的基线。对于同样的结构,残差适配器方法所获得的最好结果在十项全能评分方面略低于我们,在平均性能方面略高于我们。然而,与他们不同的是,我们避免对所有数据集进行联合训练,并使用数据集相关的权重衰减。
这里写图片描述
表3

视觉十项全能挑战的结果。 Scratch:独立进行每项任务的培训。Feature:使用预先训练的网络作为特征提取器。 Finetune:香草(vanilla)微调。 性能良好但需要许多参数。 无需学习的学习(LWF,[16]略胜过它,但参数成本较高,Residual adapt[6]显著减少了参数数量,在所有任务上共同训练的结果会提高(Res.Adapt(Joint)) 。所提出的方法(DAN)虽然增加了每个任务的独立性,但仍胜过残差适配器,S是十项全能挑战分数。

4.5 压缩和收敛

 

在本节中,我们重点介绍一下我们方法的其他有用属性。以下所有实验均使用与上一节中相同的结构完成,但仅对视觉十项全能挑战赛的训练集进行训练并在验证集上进行测试。首先,我们检查网络压缩的影响是否与我们的互补或可能阻碍他们。尽管最近出现了复杂的网络压缩技术(例如[20]),但我们仅使用一种简单的压缩方法作为概念验证,并指出使用最新的压缩方法可能会产生更好的结果。我们对网络权重应用简单的线性量化,使用4,6,8,16或32位来表示每个权重,其中32表示无量化。我们没有量化批标准化系数。图7(b)显示了量化每个网络的系数如何影响准确性。使用8位仅导致精度的边际损失。这实际上意味着我们的方法可以用来学习新的任务,同时需要增加3.25%的原始参数量。很多人甚至保持在6位的性能(DPed,Flowers,GTSR,Omniglot,SVHN)。接下来,我们比较量化对不同转移方法的影响:特征提取,微调和我们的方法(对角线和线性变体)。对于每个数据集,我们记录每种方法/量化级别(将其转换为所需参数的百分比)的归一化(除以最大值)精度。如图9所示,我们的方法达到与微调相同的精度,需要的参数明显更少。 如果参数使用有限,则我们方法的对角线变体显着优于特征提取。 最后,我们表明,直到接近最大性能时的迭代次数明显低于我们的方法。 这可以在图8中看到。
这里写图片描述
图7(a)准确性与学习方法。 仅使用最后一层(特征提取器)表现最差。 finetune:香草(vanilla)微调。 Diagonal:我们的控制器模块具有对角组合矩阵。 Linear:我们的完整方法。 平均而言,我们的完整方法胜过了香草(vanilla)微调。 (b)精度与量化:低至8位,我们看不到网络量化对我们方法的显着影响,表明它们可以一起使用。
这里写图片描述
图8(a)我们的方法(线性)比微调收敛速度快。 我们方法的较弱变体收敛速度与特征提取一样快,但达到了较高的准确性(7(a))。(b) 放大(a)的右上方。
这里写图片描述
图9

平均分类准确率(标准化,对数据集进行平均)w.r.t no. paramters 我们的方法在基线上获得了更好的性能,适用于大范围的参数预算。 对于极少数参数对角线(我们的)胜过特征提取。 为了获得最大的准确度,我们完整的方法需要的参数少得多(参见线性与微调)。

4.6 讨论

 

我们已经观察到,所提出的方法比香草微调更快地收敛到相当好的解决方案,并且最终获得稍好的性能。尽管网络具有表现力,但分类精度的提高仍受到我们的结构限制。我们推测,将每一层约束为表示为原始网络中相应层的线性组合,用于规范解空间,并且在任务彼此充分相关时是有利的。人们可以想出简单的例子,其中提出的方法可能会失败。如果任务不属于同一类型,则可能会发生这种情况。例如,一个任务需要计算水平线,另一个需要计算垂直线,而且这些例子都出现在训练集中,那么所提出的方法可能会比从头开始的香草微调或训练的工作差得多。我们在第3.3节中尝试了这种场景。根据经验,我们没有看到在我们的任何关于“真实”数据集的实验中发生了这种情况。这可能只是源于图像分类任务中的一些内在相似性,这使得一些基本特征对大多数都有用。我们离开了对这个问题的调查,并找到了在特征重用和学习新特征之间取得平衡的方法,以此作为未来的工作。

5 总结

 

我们已经提出了一种转移学习方法,可以将现有网络适应新的任务,同时完全保留现有的表示。我们的方法匹配或优于微调,但需要一小部分参数,当与净压缩结合时达到原始参数的3%而不损失精度。该方法快速收敛到高准确度,同时达到或超越其他具有相同目标的方法。内置于我们的方法中的是能够轻松切换各种学习任务之间的表示,使单个网络能够在各个领域无缝执行。控制参数 α 可以作为实值向量来转换,从而允许不同任务的表示之间的平滑过渡。这种平滑过渡的效果的一个例子可以在图6中看到,其中 α 用于在不同学习配对任务的表示之间线性内插,允许人们平滑地控制不同行为之间的转换。允许每个添加的任务使用现有控制器的凸面组合将潜在地更有效地利用控制器,并将控制器的数量与任务的数量分离。
这里写图片描述
图6 转移表示。 使用单个基础网络 Nsketch,我们通过在[0,1]范围内改变它来检查该方法对 α 的变化值的敏感性。 增加 α 使网络远离基本表示并转向学习任务 - 逐渐降低基础任务(菱形)的性能并改进已知学习任务(圆形)。图上的性能(蓝色菱形)相对较慢的下降以及Plankton(蓝色圆圈)的增加表明学习表示之间的相似性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值