Cognitively-Inspired Model for Incremental Learning Using a Few Examples
2021年1月27日,来自留校儿童的心酸科研,冲鸭
一、总结
二、翻译
0. 摘要
abstract:
增量学习尝试开发一个分类器,该分类器从分离为不同类的数据流中连续学习。 深度学习方法在逐步学习新类时会遭受灾难性的遗忘,而大多数增量学习方法每个类都需要大量的训练数据。 我们仅使用几个训练示例(称为“few shot incremental learning”(FSIL))来研究增量学习的问题。 为了解决这个问题,我们提出了一种新颖的方法,该方法受到了海马和新皮层概念学习模型的启发,该模型将每个图像类都表示为质心,并且不会遭受灾难性的遗忘。 我们在三个增量学习基准上评估了我们的方法:Caltech-101,CUBS-200-2011和CIFAR100的增量学习和少量增量学习,并表明我们的方法在分类准确性方面达到了SOTA。
1. 引言
introduction:
人类可以在一生中不断学习新概念。 相反,现代机器学习系统通常必须对成批的数据进行训练。 应用于对象识别任务的增量学习是一种研究途径,旨在开发能够随着新数据的到来而不断更新学习模型的系统。增量学习逐渐通过训练分类器识别新的对象类别来逐渐增加其宽度。
本文研究了增量学习的一种子类型,称为类增量学习。类增量式学习尝试首先学习一部分类,然后以新类逐步扩展。重要的是,在单个混合数据集上测试了最终模型的类增量评估,该评估称为单头评估。一个类增量学习算法必须:
1.可以从包括不同时间的不同类实例的数据流中进行训练;
2.为到目前为止所观察到的任何类别提供具有准确性的多类别分类器;
3.随着训练类别数量的增加,关于内存和计算要求的限制或仅缓慢增长。
但是,创建一个可以逐步学习的高精度分类器是一个难题。 创建增量学习器的一种简单方法是将模型调整为新类的数据。 然而,这种方法使模型忘记了先前学习的类,并且整体分类的准确性降低了,这种现象被称为灾难性遗忘。为了克服这个问题,大多数现有的基于类增量学习的方法通过存储来自较早学习的类的一部分训练数据并在存储的数据和包含新的新数据的混合数据上对模型(通常是神经网络)进行重新训练,从而完全避免了这一问题。但是,这些方法既无可扩展性,也无生物学启发,即当人类学习新的视觉对象时,他们不会忘记他们先前学习的视觉对象,人类也不必重新学习这些先前已知的对象。 此外,当前的增量学习方法需要大量的训练数据,因此不适合从一小部分示例中进行训练。
我们寻求开发一种实用的增量学习系统,该系统将允许人类用户逐步地向机器人教授不同类别的对象。 为了实用,增量学习者每个类只需要几个带标签数据的实例。 因此,在本文中,我们探讨了“few shot incremental learning”(FSIL)问题。
关于类增量学习和FSIL,本文贡献了一种新颖的认知启发方法,称为基于质心的概念学习(CBCL)。 CBCL受海马和新皮层概念学习模型的启发。CBCL将每个图像视为一个情节并提取其高级功能。 CBCL使用固定的数据表示(在ImageNet上预先训练的ResNet)进行特征提取。 特征提取后,CBCL使用认知启发式聚类方法(称为Agg-Var聚类)为每个类生成以质心形式的一组概念。在生成质心之后,为了预测测试图像的标签,使用了测试图像的特征向量到n个最接近的质心的距离。 由于CBCL会独立于其他类别存储每个类别的质心,因此在学习新类别时,总体分类准确性的降低不会造成灾难性的影响。CBCL在三个增量学习基准(Caltech-101 ,CUBS-200-2011,CIFAR-100)上进行了测试,其性能远远超过最新方法。 对FSIL的评估表明,即使CBCL每个类仅使用5或10个训练示例,而其他方法每个类使用完整的训练集(对于CIFAR-100,每个班级500张图像),CBCL的表现也优于某些类增量学习方法。 对于FSIL,CBCL甚至超越了从三个基准数据集上的所有类的训练数据(批次学习)的学习基准。 本文的主要贡献是:
1.提出了一种受认知启发的类增量学习方法,该方法在上面列出的三个基准数据集上优于最新方法。
2.提出了一种新颖的质心减少方法,该方法限制了内存占用空间,而不会显着降低分类精度。
3.对具有挑战性的增量学习问题(FSIL)进行了测试,实验评估表明,我们的方法适用于此问题,具有最先进的准确性
2. 相关工作
related work:
3. 方法
method:
CBCL从样本集
X
1
,
X
2
,
.
.
.
,
X
N
X_1,X_2,...,X_N
X1,X2,...,XN的类增量数据流中学习,其中来自集合
X
y
=
x
1
y
,
.
.
.
,
x
N
y
y
X^y= {x^y_ 1,...,x^y_{N_y}}
Xy=x1y,...,xNyy的所有样本均为来自
y
∈
N
y\in N
y∈N类别,带有
N
y
N_y
Ny个样本。 下面的小节首先说明了我们的类增量学习方法。
接下来,我们探索如何通过限制质心总数来管理内存占用。 最后,我们仅使用几个示例来演示如何使用我们的方法进行增量学习。
3.1 Agg-Var Clustering
agg-var:
我们的方法的完整架构如图1所示。一旦有了新类别的数据,CBCL的第一步就是使用固定的特征提取器从新类别的图像生成特征向量。 所提出的体系结构可以与任何类型的图像特征提取器一起使用,甚至可以与具有适当特征提取器的非图像数据集一起使用。为了实现以对象为中心的图像分类,我们使用在ImageNet 上预训练的CNN(ResNet)作为特征提取器。
基于记忆的预测误差,表示从传入情节到所有先前经历的概念的差异。 通过找到一个类的输入图像到每个质心之间的欧几里得距离,可以在Agg-Var聚类中复制此步骤。最初,新类y没有质心。 因此,此步骤从类y的第一个图像创建质心开始。 接下来,对于该类别的训练集中的每个图像,生成特征向量
x
i
y
x_i^y
xiy(对于第i个图像),并使用欧几里得距离与该类别y的所有质心进行比较。 如果
x
i
y
x_i^y
xiy到最接近的质心的距离小于预定义的距离阈值D,则通过计算质心和特征向量
x
i
y
x_i^y
xiy的加权平均值来更新最接近的质心:
C
n
e
w
=
w
C
×
C
o
l
d
+
x
i
y
w
C
+
1
C_{new}=\frac{w_C\times C_{old}+x_i^y}{w_C+1}
Cnew=wC+1wC×Cold+xiy其中,
C
n
e
w
C_{new}
Cnew是更新的质心,
C
o
l
d
C_{old}
Cold是更新之前的质心,
w
C
w_C
wC是质心已表示的数据点(图像)数。AggVar聚类的这一步骤旨在捕获海马概念学习过程中的内存整合。 当情节对先前概念的基于记忆的预测误差较小时,就会发生记忆集成。 另一方面,如果某个事件对先前概念的基于记忆的预测误差较大,则根据海马的概念学习过程,会发生模式分离,从而导致基于传入事件的新的不同概念的产生 。Agg-Var聚类捕获过程:如果第i个图像与最近的质心之间的距离大于距离阈值D,则为y类创建一个新的质心并将其等同于第i个图像的特征向量
x
i
y
x_i^y
xiy。 该过程的结果是集合一组类别为y的质心,
C
y
=
c
1
y
,
.
.
.
,
c
N
y
∗
y
C^y = {c^y_1,...,c^y_{N^∗_y}}
Cy=c1y,...,cNy∗y,其中
N
y
∗
N_y^*
Ny∗为类别y的质心数。 一旦它们可用于获得数据集中所有N个类的质心
C
=
C
1
,
C
2
,
.
.
.
,
C
N
C = C^1,C^2,...,C^N
C=C1,C2,...,CN的集合,就将此过程递增地应用于每个类的样本集
X
y
X^y
Xy。应当注意的是,对不同类别使用相同的距离阈值可以根据每个类别中图像之间的相似性(类别内方差)在每个类别中产生不同数量的质心。 因此,我们只需要调整一个参数(D)即可获得在每个类别中产生最佳验证精度的最佳质心数。请注意,我们的方法分别计算每个类的质心。 因此,当类以递增方式呈现时,我们的方法的性能不会受到很大影响。
3.2 分类加权投票策略
Weighted-Voting Scheme for Classification:
为了预测测试图像的标签
y
∗
y^∗
y∗,我们使用特征提取器生成特征向量x。接下来,计算x与到目前为止观察到的所有类别的质心之间的欧几里得距离。基于计算的距离,我们选择n个最接近未标记图像的质心。n个最接近的质心对确定测试图像类别的贡献是条件求和:
P
r
e
d
(
y
)
=
∑
j
=
1
n
1
d
i
s
t
(
x
,
c
j
)
[
y
j
=
y
]
Pred(y)=\sum _{j=1}^n\frac{1}{dist(x,c_j)}[y_j=y]
Pred(y)=j=1∑ndist(x,cj)1[yj=y]其中
P
r
e
d
(
y
)
Pred(y)
Pred(y)是类别y的预测权重,
y
j
y_j
yj是第j个最接近的质心
c
j
c_j
cj的类别标签,而
d
i
s
t
(
x
,
c
j
)
dist(x,c_j)
dist(x,cj)是
c
j
c_j
cj与测试图像的特征向量x之间的欧式距离。 到目前为止,所有观察到的图像类别的预测权重都首先初始化为零。 然后,对于n个质心中的每一个所属的类别,使用等式(2)针对n个最接近的质心来更新预测权重。 每个类别的预测权重进一步乘以该类别的训练集中的图像总数的倒数,以管理类别的不平衡。 由于具有更多训练数据的类比其他类更有可能具有更多的质心,因此预测权重可能会偏向于此类。 建议的加权方案避免了在预测期间偏向此类类别:
P
r
e
d
(
y
)
′
=
1
N
y
P
r
e
d
(
y
)
Pred(y)^{'}=\frac{1}{N_y}Pred(y)
Pred(y)′=Ny1Pred(y)其中
P
r
e
d
(
y
)
′
Pred(y)^{'}
Pred(y)′是类别训练图像总数
N
y
N_y
Ny与该类别的先前预测权重
P
r
e
d
(
y
)
Pred(y)
Pred(y)相乘后的类别y的预测权重。为测试图像分配具有最高预测权重
P
r
e
d
(
y
)
′
Pred(y)^{'}
Pred(y)′的类别标签。
3.3 减少质心
centroid reduction:
内存占用是增量学习算法的重要考虑因素。实际的系统实现具有有限的可用内存。因此,我们提出了一种新颖的方法,该方法在尝试保持分类准确性的同时限制了质心的数量。
如果我们假设一个系统最多可以存储
K
K
K个质心,并且当前系统已经为t类存储了
K
t
K_t
Kt个质心。 对于下一批类,系统需要存储
K
n
e
w
K_{new}
Knew更多的质心,但质心的总数
K
t
+
K
n
e
w
>
K
K_t+K_{new}>K
Kt+Knew>K。因此,系统需要将存储的总质心减少为
K
r
=
K
t
+
K
n
e
w
−
K
K_r = K_t+K_{new}-K
Kr=Kt+Knew−K个质心。 CBCL不会平均减少每个类的质心数量,而是根据类中先前的质心数量减少每个类的质心。 每个类y的质心数
N
y
∗
N_y^*
Ny∗的减少量计算为(整数):
N
y
∗
(
n
e
w
)
=
N
y
∗
(
1
−
K
r
K
t
)
N_y^*(new)=N_y^*(1-\frac{K_r}{K_t})
Ny∗(new)=Ny∗(1−KtKr)其中
N
y
∗
(
n
e
w
)
N_y^*(new)
Ny∗(new)是减少后y类的质心数。 我们不是简单地从每个类中删除多余的质心,而是将每个类中最接近的质心聚类以获得新的质心,并保留有关先前类的尽可能多的信息。 通过在每个类别y的质心集
C
y
C_y
Cy上应用k均值聚类将它们聚类为
N
y
∗
(
n
e
w
)
N_y^*(new)
Ny∗(new)个质心。
3.4 few shot
FSIL:
对于传统的few shot学习问题,对n-shots, k-way任务评估算法。 因此,对于每个类别的k个训练模型,总共给出n个示例。 在训练阶段之后,针对k个类中的每个类,在少量测试样本(通常是15个测试样本的1-shot,5-shot和10-shot学习)上评估模型。 已经提出了一些鲜为人知的学习方法,其中在新的k类和基类上对模型进行了测试。 但是,这些方法不适用于每个类仅使用几个样本递增地学习。这里建议的增量学习设置可解决此问题。
对于增量学习设置,我们建议对k个类每类n个示例为增量训练模型。 在当前增量期间,模型无法使用先前学习的l个类的训练数据。 训练后,针对迄今为止所学的所有类
k
+
l
k+l
k+l,在完整的测试集上对模型进行测试。 尽管此问题随着每次增量而变得更加困难,但我们证明了即使对于5-shot和10-shot增量学习案例,我们的方法也能很好地执行,因为每个类甚至有限数量的实例也会生成覆盖该类大部分概念的质心 。 FSIL对于难以获取标记数据的应用(例如,人类逐步教给机器人的应用)可能具有重要意义。
4. 实验
experiment:
我们在三个标准的类增量学习数据集上评估CBCL:Caltech-101,CUBS-200-2011和CIFAR-100。首先,我们介绍数据集和实现细节。 然后将CBCL与最新的方法进行类增量学习进行比较,并在5次和10次增量学习中进行评估。 最后,我们进行消融研究,以分析我们方法的每个组成部分的贡献。
4.1 数据集
datasets:
使用三个数据集评估了CBCL。 LWM也已在iLSVRC-small(ImageNet)数据集上进行了测试,但是由于我们的特征提取器已在ImageNet上进行了预训练,因此在此数据集上进行比较将是不公平的比较。Caltech-101包含101个类别的8,677张图像,每个类别40至800张图像。 CUBS-200- 2011包含200种鸟类的11,788张图像。 CIFAR-100由属于100个对象类别的60,000张32×32图像组成,每个类有500张训练图像和100张测试图像。
我们使用top-1准确性进行评估。 我们还报告了平均增量准确性,这是所有增量中实现的分类精度的平均值。由于CBCL的学习时间比训练神经网络所需的时间短得多,因此我们能够将所有实验随机进行10次,以随机安排类顺序。 我们报告了这十次运行的平均分类准确性和标准偏差。
4.2 实现细节
details:
Keras深度学习框架用于实现所有神经网络模型。 对于Caltech-101和CUBS-200-2011数据集,使用在ImageNet数据集上预训练的ResNet-18模型,对于CIFAR-100,使用在ImageNet上预训练的ResNet-34模型。 用于特征提取。 这些模型架构与LWM一致,可以进行公平的比较。 对于使用CIFAR-100数据集进行的实验,该模型最多可以存储K = 7500个质心,需要3.87 MB的空间,而对于LWM额外的ResNet-34老师模型,则需要84 MB的空间。 此外,与仅存储2000个以前的类的图像的方法相比,我们的方法中7500个质心比2000个完整的图像(17.6 MB)需要更少的内存。 对于Caltech-101,K = 1100个质心(LWM中的ResNet-18老师模型存储了0.5676 MB vs 45 MB);对于CUBS200-2011,K = 800个质心(0.4128 MB)被存储。
如第1节所述,没有一种现有的增量学习技术适合FSIL,因为它们每个类别需要大量的训练数据。 因此,我们将CBCL与few-shot baseline(FLB)进行了比较。 FLB使用来自预先训练的ResNet神经网络的特征,这些特征会传递到经过softmax损失训练的线性层(图3)。 此过程是基于先前的几次学习研究的工作,该研究表明FLB优于使用更深层主干的许多其他几次学习技术,例如ResNet-18或ResNet-34。
对于CBCL,对于每一新类别,都使用交叉验证来调整超参数D(距离阈值)和n(用于分类的最接近质心的数量)。 我们仅将先前学习的质心和新类的训练数据用于超参数调整。
4.3 Results on CIFAR-100 Dataset
4.4 Results on Caltech-101 Dataset
4.5 Results on CUBS-200-2011 Dataset
4.6 消融实验
ablation study:
我们进行了一次消融研究,以检查我们的方法的每个部分对整个系统精度的贡献。 使用每类的所有训练数据,对CIFAR-100数据集进行了这组实验,增量为10类,内存预算为K = 7500个质心。 我们报告了这些实验的平均增量精度。
5. 结论
conclusion:
在本文中,我们为类增量学习提出了一种新颖的认知启发式方法(CBCL),该方法不存储以前的类数据。 不同类的基于质心的表示不仅产生了最新的结果,而且还开辟了未来研究的新颖途径,例如鲜为人知的增量学习。 尽管CBCL为其他增量学习者提供了更高的准确性,但其准确性仍低于整个训练集上的单批学习。 CBCL的未来版本将寻求匹配single batch learning的准确性。
三、纸质版材料