本文是对《Incremental Learning Techniques for Semantic Segmentation》一文的总结,如有侵权即刻删除。
目录
1 文章信息
论文《Incremental Learning Techniques for Semantic Segmentation》于2019年发表在ICCV workshop (CCF-A 类会议)。
作者团队来自意大利帕多瓦大学。
2 摘要
深度学习架构在需要增量学习新任务时,由于灾难性的遗忘,其性能出现了严重下降(挑战)。当代的增量学习框架专注于图像分类和对象检测,而在这项工作中,我们正式引入了语义分割的增量学习问题,其中考虑了逐像素标记(创新点)。为了解决这一任务,我们建议提取先前模型的知识以保留关于先前学习的类的信息,同时更新当前模型以学习新的类。我们提出了对输出logits和中间特性都有效的各种方法。与最近的一些框架相反,我们不存储来自先前学习的类的任何图像,并且只需要最后一个模型来保持这些类的高精度(为解决挑战,本文的处理方法及创新点)。Pascal VOC2012数据集的实验评估显示了所提出方法的有效性(实验有效性)。
3 介绍及相关工作
深度神经网络是计算机视觉系统的关键工具(深度神经网络的重要性)。尽管神经网络在许多视觉识别问题上取得了广泛的成功,但由于它们遭受灾难性遗忘的影响,在学习新任务的同时仍然难以在以前的任务上保持良好的性能(深度神经网络的不足)。更准确地说,增量学习问题被定义为机器学习架构在不丢失先前学习到的知识的情况下,通过输入新的数据来不断改进学习到的模型的能力(增量学习问题的定义)。这在图像分类和目标检测等问题中得到了广泛的研究。传统的学习模型要求在训练阶段的所有步骤中,新旧任务对应的所有样本都是可用的;相反,一个现实世界的系统应该能够在保持原有任务不变的情况下,用很少的训练步骤更新其知识。这种行为内在地存在于人脑中,在新任务不断被纳入但现有知识被保留的意义上是增量的。
灾难性遗忘是神经网络的主要局限性之一。它甚至在神经网络流行之前就已经被解决了,但最近它被重新发现并以不同的方式解决。一些方法利用在训练过程中增长的网络架构。另一种策略是冻结或减缓网络某些相关部分的学习过程。在旧任务上保持高性能的另一种方法是知识蒸馏。这个想法最初在研究中提出,然后在最近的研究中以不同的方式进行了调整,以保持网络对旧任务的稳定响应,同时用新的训练样本更新它(灾难性遗忘是难点,及现有研究是如何解决它的)。然而,与本文不同的是,以前的工作只关注对象检测或图像分类问题(本文应用于语义分割)。
一些研究保留了属于以前任务的一小部分数据,并在处理新问题时使用它们来保持旧任务的准确性。要存储的示例集是随机选择的或者根据相关性度量来选择的。有的工作中,分类器和用于选择要添加到代表性存储器中的样本的特征被联合学习,然后使用羊群选择。该家族的另一种方法是唯一考虑语义分割增量设置的工作,然而,该方法侧重于与卫星图像相关的非常具体的设置,并且在应用于一般语义分割问题时有几个局限性。事实上,它将分割视为一个多任务学习问题,其中每个类别的二进制分类取代了多类别标记,并存储了一些先前看到的图像补丁。此外,它假设一个增量步骤对应的训练图像只包含新的类别,而旧图像的能力通过存储旧图像的子集来保存。对于大量的类和广泛的应用,该方法没有适当的扩展(知识蒸馏调整的第一种方式)。
存储以前看到的数据可能会对某些存在隐私问题或存储预算有限的应用程序造成严重限制。因此,最近的一些方法不存储旧数据,而是通过训练生成对抗性网络(GANs)来补偿旧数据,以在学习新类的同时生成包含先前类的图像。其他一些方法不使用范例集。在[1]中,提出了一种端到端学习框架,其中在不存储任何原始训练样本的情况下联合学习表示和分类器。在[2]中,先前的知识是直接从上次训练的模型中提取的。在[3]中,当前模型从所有先前模型快照的修剪版本中提取知识(知识蒸馏调整的第二种方式)。
即使以前的研究集中在不同的任务上,并且没有对密集标记任务的增量学习进行研究,但语义分割是计算机视觉系统在各种应用中必须经常面对的关键任务,例如在机器人或自动驾驶中。请注意,与图像分类不同,在语义分割中,每个图像都包含属于多个类别的像素,并且标记是密集的。特别地,像素可以表示新添加的类和先前存在的类,这使得该问题在概念上不同于图像分类中的增量学习,在图像分类中,通常图像中存在单个对象,并且结果是唯一值(语义分割的特点)。此外,与许多现有方法相反,我们考虑最具有挑战性的设置,其中来自旧任务的图像不被存储,不能用于帮助增量过程,这对于绝大多数具有隐私关注或存储需求的应用来说特别重要。
在本文的第一部分中,我们形式化了这个问题,并提出了增量学习任务的可能设置。然后,我们引入了一个新的框架来执行语义分割的增量学习。特别是,我们重新构建了其他领域中使用的蒸馏损失概念,并提出了一种将蒸馏损失应用于中间特征级别的新方法。此外,我们利用了冻结网络编码器部分的想法来保留特征提取能力。据我们所知,这是第一项针对语义分割的增量学习工作,该工作不保留以前看到的图像,并且已经在标准数据集上进行了评估,即Pascal VOC2012。实验结果表明,由于所提出的蒸馏方案,即使不存储任何先前的例子,所提出的方法也能获得高精度。(文章创新点总结)
4 问题定义
当涉及语义分割时,增量学习任务可以被定义为学习系统(例如,神经网络)在不忘记或过度恶化先前学习的类的性能的情况下学习新类的分割和标记的能力。增量学习算法的性能应该考虑新类的准确性和旧类的准确性来评估。虽然第一个应该尽可能大,这意味着算法能够学习新类,但第二个应该与添加新类之前的那个尽可能接近,从而避免灾难性的遗忘。因此,关键的挑战是如何在保留先前的分割和标记知识与学习新类的能力之间取得平衡。此外,当不能保留以前任务的数据时,所考虑的问题尤其困难,这是大多数应用程序感兴趣的场景。在这项工作中,我们专注于最通用的增量学习框架,其中:不使用以前看到的图像;新图像包含与属于旧类的像素组合在一起的看不见类的示例;该方法的复杂性随着类数量的增长而扩展。
假设可用的样本集为
D
\mathcal{D}
D,由
N
N
N幅图像组成。由于通常数据的一部分用于训练,一部分用于测试:我们将
D
\mathcal{D}
D的训练分割称为
D
t
r
\mathcal{D^{tr}}
Dtr。
D
\mathcal{D}
D的每一幅图像中的每个像素都关联到一个唯一的类,属于
C
C
C个可能类的集合
C
=
{
c
0
,
c
1
,
c
2
,
.
.
,
c
C
−
1
}
\mathcal{C} = \{ c_0,c_1,c_2,..,c_{C-1} \}
C={c0,c1,c2,..,cC−1}。如果存在一个背景类,我们将其与
c
0
c_0
c0类联系起来,因为它被认为是一个特殊的类,它的非传统行为存在于几乎所有的图像中,并且在
C
\mathcal{C}
C的元素中发生的次数是迄今为止最大的。
在增量学习设置中,我们假设我们已经使用标记的子集
D
0
t
r
⊂
D
t
r
\mathcal{D}^{tr}_0 \subset \mathcal{D}^{tr}
D0tr⊂Dtr训练我们的网络来识别可见类的子集
S
0
⊂
C
\mathcal{S}_0 \subset \mathcal{C}
S0⊂C,其图像仅包含属于
S
0
\mathcal{S}_0
S0中的类的像素。然后我们执行一些增量步骤
k
=
1
,
2
,
.
.
.
k=1,2,...
k=1,2,...,其中我们想要识别不可见类的新子集
U
k
⊂
C
\mathcal{U}_k \subset \mathcal{C}
Uk⊂C。请注意,在第
k
k
k个增量步骤中,所看到的类的集合
S
k
−
1
\mathcal{S}_{k-1}
Sk−1是之前学习的所有类的并集,在该步骤之后,我们添加在当前步骤
k
k
k中学习的类:更正式地说,
S
k
=
S
k
−
1
∪
U
k
\mathcal{S}_k=\mathcal{S}_{k-1}\cup \mathcal{U}_k
Sk=Sk−1∪Uk和
S
k
−
1
∩
U
k
=
∅
\mathcal{S}_{k-1}\cap \mathcal{U}_k=\emptyset
Sk−1∩Uk=∅。在每一步都有一组新的训练样本可用,即
D
k
t
r
⊂
D
t
r
\mathcal{D}^{tr}_k \subset \mathcal{D}^{tr}
Dktr⊂Dtr,其图像仅包含属于
S
k
−
1
∪
U
k
\mathcal{S}_{k-1}\cup \mathcal{U}_k
Sk−1∪Uk的像素。该集合与以前使用的样本不相交,即
{
U
j
=
0
,
.
.
.
,
k
−
1
D
j
t
r
}
∩
D
k
t
r
=
∅
\{ U_{j=0,...,k-1}\mathcal{D}^{tr}_j\}\cap \mathcal{D}^{tr}_k=\emptyset
{Uj=0,...,k−1Djtr}∩Dktr=∅。需要注意的是,与图像分类不同,
D
k
t
r
\mathcal{D}^{tr}_k
Dktr中的图像也可能包含属于
S
k
−
1
\mathcal{S}_{k-1}
Sk−1的类,但它们的出现是有限的,因为
D
k
t
r
\mathcal{D}^{tr}_k
Dktr被限制为仅考虑包含至少一个属于
U
k
\mathcal{U}_k
Uk的类的图像。此外,属于
S
k
−
1
\mathcal{S}_{k-1}
Sk−1的特定类的具体出现与所添加的类集(即
U
k
\mathcal{U}_k
Uk)高度相关。例如,如果我们假设
S
k
−
1
\mathcal{S}_{k-1}
Sk−1={椅子,飞机},
U
k
\mathcal{U}_k
Uk={餐桌},那么可以合理地预期
D
k
t
r
\mathcal{D}^{tr}_k
Dktr包含一些具有椅子类的图像,这些图像通常与餐桌一起出现,而飞机类则极不可能。
在这种情况下,存在许多不同的方法来对看不见类的集合
U
k
⊂
C
\mathcal{U}_k \subset \mathcal{C}
Uk⊂C进行采样,并在每一步选择集合
U
k
\mathcal{U}_k
Uk的基数,从而导致不同的实验。先前的工作使用数据集创建者提供的序列对类进行排序,并分析了添加单个类、添加一批类和顺序添加类的算法行为。我们的结果坚持这些设置来重现相同的场景。
5 方法
在这项工作中,我们从重新构建为语义分割任务中的其他领域开发的增量学习技术开始。然后,我们针对这个问题提出了一些新颖的策略。
所提出的方法可以适用于任何深度网络架构,但在评估中,我们选择了Deeplab v2网络(没有基于CRF的后处理),ResNet-101作为特征提取器,在MSCOCO数据集上预训练。由于Pascal VOC 2012太小,无法用于从头开始训练Deeplab v2,因此需要对特征提取器进行预训练。然而,MSCOCO数据仅用于特征提取器的初始化,并且所包含的标记信息,即使存在重叠的类,也与不同的任务(即图像分类)有关。
现在介绍了在语义分割中实现增量学习的各种过程:见图1,了解该方法的总体概述。我们首先在第一阶段中训练所选择的网络架构,以使用相应的训练数据
D
0
t
r
\mathcal{D}^{tr}_0
D0tr来识别
S
0
\mathcal{S}_0
S0中的类。以标准交叉熵损失的监督方式训练网络,训练后我们将获得的模型保存为
M
0
\mathcal{M}_0
M0。然后,我们执行一组增量步骤,索引为
k
=
1
,
2
,
.
.
.
k=1,2,...
k=1,2,...以使模型每次学习一组新的类
U
k
\mathcal{U}_k
Uk。在第
k
k
k个增量步骤中,用包含来自至少一个新类的样本的图像来构建当前训练集
D
k
t
r
\mathcal{D}^{tr}_k
Dktr。请注意,它们可能还包含属于以前看到的类的像素,当然背景类几乎存在于所有图像中。在步骤
k
k
k期间,利用两种损失的线性组合加载和更新模型
M
k
−
1
M_{k−1}
Mk−1:交叉熵损失
L
C
E
\mathcal{L}_{CE}
LCE,它学习如何标记类;蒸馏损失
L
D
\mathcal{L}_{D}
LD,它有助于保留以前看到的类的知识,将在下文中详细介绍。在第
k
k
k个增量步骤之后,我们将当前模型保存为
M
k
M_k
Mk,并且每当考虑要学习的一组新类时,都会重复所描述的过程。训练模型的总损失
L
\mathcal{L}
L为:
参数
λ
D
\lambda_{D}
λD平衡了这两项。如果我们设置
λ
D
=
0
\lambda_{D}=0
λD=0,那么我们考虑的是最简单的微调场景,其中不应用知识蒸馏,交叉熵损失应用于看不见的类和看到的类(但在
D
k
t
r
\mathcal{D}^{tr}_k
Dktr中,对新类存在很大的不平衡,见第2节)。正如已经指出的那样,我们预计这起案件将表现出灾难性的遗忘。
在第
k
k
k个增量步骤期间,交叉熵损失
L
C
E
\mathcal{L}_{CE}
LCE被应用于所有类别,并且它被定义为:
其中
Y
n
[
c
]
Y_n[c]
Yn[c]和
M
k
(
X
n
)
[
c
]
M_k(X_n)[c]
Mk(Xn)[c]分别是一个热编码的地面实况和对应于类
c
c
c的估计分数的网络的输出。注意,该和是在旧类和新类上计算的,因为在实践中旧类将继续出现。然而,由于新类在
D
k
t
r
\mathcal{D}^{tr}_k
Dktr中的可能性要大得多,因此它们之间存在明显的不平衡,导致灾难性的遗忘。我们介绍了两种定义蒸馏损失
L
D
\mathcal{L}_{D}
LD的可能策略,这两种策略仅取决于之前的模型
M
k
−
1
M_{k−1}
Mk−1,从而避免了对大量储存的需求。
5.1 输出层上的蒸馏( L D ′ \mathcal{L}^{'}_{D} LD′)
用于语义分割的第一个考虑的蒸馏项
L
D
′
\mathcal{L}^{'}_{D}
LD′是由先前模型
M
k
−
1
M_{k−1}
Mk−1中的softmax层的输出和当前模型
M
k
M_k
Mk中的softmax层的输出产生的logit之间的掩蔽交叉熵损失(假设我们当前处于第
k
k
k个增量步骤)。交叉熵被掩盖,只考虑已经看到的类,因为我们想引导学习过程来保留它们,即:
损失
L
D
′
\mathcal{L}^{'}_{D}
LD′是我们的基线模型,并对该方案的一些改进进行了评估。第一种修改是考虑编码器
E
E
E旨在从输入信息中提取一些中间特征表示:因此,网络的编码器部分可以冻结到之前步骤之后达到的状态(简而言之,
E
F
E_F
EF,见图2)。通过这种方式,网络被约束为仅通过解码器学习新类,同时保持特征提取能力与前一训练阶段相比不变。我们评估了这种方法,无论是否应用方程3中的蒸馏损失。
5.2 中间特征空间上的蒸馏( L D ′ ′ \mathcal{L}^{''}_{D} LD′′)
我们设计的一种不同的方法是通过保持编码器与已经学习的模型相似来保存先前的知识,即在解码阶段之前将知识提取函数应用于特征空间的中间级别。在这种情况下,特征空间上的蒸馏函数应该不再是交叉熵,而是
L
2
L_2
L2损失。这种选择是由于所考虑的层不再是分类层,而只是一个内部阶段,在该内部阶段,输出应保持接近前一个阶段,例如
L
2
L_2
L2范数。根据经验,我们发现使用交叉熵或
L
1
L_1
L1会导致更糟糕的结果。考虑到模型
M
k
M_k
Mk可以分解为编码器
E
k
E_k
Ek和解码器,提取项将变为:
其中
E
k
(
X
n
)
E_k ( X_n )
Ek(Xn)表示当通用图像
X
n
∈
D
k
t
r
X_n\in \mathcal{D}^{tr}_k
Xn∈Dktr作为输入时由
E
k
E_k
Ek计算的特征。
所提策略的总结如图1所示,其中显示了不同的损失。作为最后的评论,我们还尝试了描述的蒸馏损失的组合,但它没有提供相关的增强。
6 实验结果
对于实验评估,我们选择了Deeplab v2架构,并在Pascal VOC2012基准上进行了测试。该广泛使用的数据集由10582张训练分割图像和1449张验证分割图像组成,共有21个不同类别(包括背景)。由于测试集尚未提供,所有结果都是按照文献中大多数方法进行的验证分割计算得出的。
我们用随机梯度下降(SGD)训练我们的网络。网络在集合
S
0
\mathcal{S}_0
S0上的初始训练阶段是通过将起始学习率设置为
1
0
−
4
10^{−4}
10−4并训练
∣
S
0
∣
⋅
1000
|\mathcal{S}_0|\cdot1000
∣S0∣⋅1000步来执行的,使用幂为0.9的多项式衰减规则将学习率降低到
1
0
−
6
10^{−6}
10−6。我们包括
1
0
−
4
10^{−4}
10−4的权重衰减正则化,我们使用了4个图像的批量大小。增量训练步骤
k
=
1
,
2
,
.
.
.
k=1,2,...
k=1,2,...已经采用较低的学习率来执行以更好地保持先前的权重。在这种情况下,学习率从
5
⋅
1
0
−
5
5\cdot10^{−5}
5⋅10−5开始,在
∣
U
k
∣
⋅
1000
|\mathcal{U}_k|\cdot1000
∣Uk∣⋅1000步多项式衰减后下降到
1
0
−
6
10^{−6}
10−6。注意,我们训练网络的步骤数量与要学习的新类的数量成比例。我们使用TensorFlow来开发和训练网络:在NVIDIA 2080 Ti GPU上,整个训练过程大约需要5个小时。代码可在线获取,网址为https://lttm.dei.unipd.it/paper_data/IL。我们考虑的度量是最广泛用于语义分割的:每类并集交集(IoU)、平均像素精度(mPA)、平均类精度(mCA)和平均IoU(mIoU)。
6.1 增加一类
在[4]之后,我们首先分析最后一个类按字母顺序添加到我们的网络中的情况。具体来说,我们考虑
S
0
=
{
c
0
,
c
1
,
…
,
c
19
}
\mathcal{S}_0=\{c_0,c_1,…,c_{19}\}
S0={c0,c1,…,c19}和
U
1
=
{
c
20
}
=
{
t
v
∖
m
o
n
i
t
o
r
}
\mathcal{U}_1=\{c_{20}\}=\{tv \setminus monitor\}
U1={c20}={tv∖monitor}。表1中报告了对VOC2012验证划分的拟议方法的评估摘要。我们将使用
D
0
t
r
\mathcal{D}^{tr}_0
D0tr作为训练数据集的网络的第一个标准训练指示为
M
0
(
0
−
19
)
M_0(0−19)
M0(0−19)。然后利用数据集
D
1
t
r
\mathcal{D}^{tr}_1
D1tr来更新网络,并且所得到的模型被称为
M
1
(
20
)
M_1(20)
M1(20)。从表1的第一行可以看出,微调网络会导致性能明显下降,最终mIoU为65.1%。这清楚地证实了即使只添加一个类,语义分割场景中的灾难性遗忘现象。事实上,参考模型一次学习所有21个类(我们称之为
M
0
(
0
−
20
)
M_0(0−20)
M0(0−20)),其mIoU达到73.6%。微调方法的主要问题是它过于频繁地预测最后一个类,事实证明,该模型对于
t
v
∖
m
o
n
i
t
o
r
tv \setminus monitor
tv∖monitor类具有非常高的像素精度,但具有20.1%的非常差的IoU。这是由于像素精度测量没有考虑到所考虑的类的大量假阳性检测。在同一类中,所提出的方法都能够在IoU方面大幅度优于微调方法。知识提取策略和冻结编码器的过程提供了更好的结果,因为它们充当了正则化约束。有趣的是,这些程序不仅可以在以前学习的类上,而且可以在新添加的类上实现更高的精度,如果我们不考虑这些项的正则化行为,这可能是出乎意料的。我们可以理解,相对于标准情况,单独对输出
L
D
′
\mathcal{L}^{'}_{D}
LD′进行蒸馏能够将平均mIoU提高3.3%。此外,它在新类上带来了更好的IoU,大大减少了前面提到的误报问题。如果我们在不应用知识蒸馏的情况下完全冻结编码器
E
E
E,则模型将mIoU提高5.4%。如果我们将上述两种方法结合起来,即冻结
E
E
E并应用
L
D
′
\mathcal{L}^{'}_{D}
LD′作为蒸馏损失,则mIoU将进一步提高到71.5%,提高6.4%,高于单独使用这两种方法中的每一种(新类的性能也更高)。
如果我们在中间特征空间应用
L
2
L_2
L2损失,即使用
L
D
′
′
\mathcal{L}^{''}_{D}
LD′′,则该模型实现了71.6%的mIoU,比标准方法高6.5%。值得注意的是,保存先前模型中知识的两种完全不同的方法,即“具有
E
F
E_F
EF,
L
D
′
\mathcal{L}^{'}_{D}
LD′的
M
1
(
20
)
M_1(20)
M1(20)”(在编码器冻结的输出之间应用交叉熵)和“具有
L
D
′
′
\mathcal{L}^{''}_{D}
LD′′的
M
1
(
20
)
M_1(20)
M1(20)”(在特征空间之间应用
L
2
L_2
L2损失),在新类和旧类上都获得了相似且高的结果。请注意,如果编码器被冻结,那么启用
L
D
′
′
\mathcal{L}^{''}_{D}
LD′′损失是没有意义的。
一个有趣的方面是,以前看到的类的性能变化与要添加的类相关。一些课程在mIoU方面的成绩甚至比以前更高,因为他们的预测通过新的训练集得到了加强。例如,类对象沙发或餐桌通常出现在包含
t
v
∖
m
o
n
i
t
o
r
tv \setminus monitor
tv∖monitor的场景中。包含不存在于新的样本集合
D
1
t
r
\mathcal{D}^{tr}_1
D1tr内的不相关对象的类反而更容易丢失,例如不存在于通常与所添加的
t
v
∖
m
o
n
i
t
o
r
tv \setminus monitor
tv∖monitor类相关联的室内场景中的鸟或马。
6.1 增加五类
在本节中,我们将处理一个更具挑战性的场景,即初始学习阶段之后是一步渐进式学习,最后5类要学习。首先,讨论了同时添加最后5个类别(称为15−20)的问题,结果如表2所示。在这种设置中,由于要学习的信息量较大,因此结果比以前一次添加一个类的情况低得多。特别是,微调方法表现出更大的准确性下降,因为它高估了新类别的存在。我们可以通过查看新添加的类的IoU分数来证实这一点,这些类的IoU分数通常比所提出的方法低很多。在这种设置中,输出层“具有
L
D
′
\mathcal{L}^{'}_{D}
LD′的
M
1
(
16
−
20
)
M_1(16-20)
M1(16−20)”的蒸馏达到了最高的精度。一般来说,在这种情况下,基于
L
D
′
\mathcal{L}^{'}_{D}
LD′的方法优于其他方法。有趣的是,一些以前看到的类表现出明显的灾难性遗忘现象,因为更新后的模型用属于新类集的视觉相似的类误导了它们。例如,对于奶牛和椅子类来说尤其如此,它们经常被具有相似形状的新添加的类绵羊和沙发误导(这些类的低IoU和低像素精度)(这些类低IoU但高像素精度)。这也可以从图3中的定性结果中看出。例如,在前两行中,
t
v
∖
m
o
n
i
t
o
r
tv \setminus monitor
tv∖monitor和沙发类(在增量步骤中添加)在背景区域中被错误地预测,而这些类通过应用
L
D
′
\mathcal{L}^{'}_{D}
LD′和冻结编码器来正确处理。此外,在第三行中,尽管有沙发,但naıve方法预测了人物类别,而在使用
L
D
′
\mathcal{L}^{'}_{D}
LD′时不存在这种伪影。
这里呈现的最后一个实验是后5个类逐个递进相加的实验:最终的模型简称为
M
5
(
16
→
20
)
M_5(16\to 20)
M5(16→20)。结果如表3所示,其中我们可以在最佳提出的方法(即“具有
E
F
E_F
EF、
L
D
′
\mathcal{L}^{'}_{D}
LD′的
M
5
(
16
→
20
)
M_5(16\to 20)
M5(16→20) “)和标准方法。在这种情况下,冻结编码器并提取知识是最好的方法,因为添加一个类不会对整个网络的响应产生太大的改变:当编码器固定时,从以前的模型中提取知识会引导解码器只修改新类的响应。
表4中报告了模型平均性能随时间的演变,其中分析了不同步骤期间性能下降的分布。特别是,我们可以注意到精度下降是如何受到添加的特定类的影响的。正如预期的那样,当增加绵羊或火车类( M 2 ( 17 ) M_2(17) M2(17)和 M 4 ( 19 ) M_4(19) M4(19))时,会出现更大的下降,因为这些类与其他类的相关性很小(它们主要单独出现或与人类出现)。
7 结论和未来工作
在这项工作中,我们正式介绍了语义分割的增量学习问题。已经为该任务专门设计了几个新颖的蒸馏损失函数。它们与交叉熵损失相结合,并与冻结编码器模块的想法相结合,以优化新类的性能,同时保留旧类。我们的方法不需要以前数据集的任何存储图像,并且只使用以前的模型来更新当前模型,从而减少内存消耗。
在Pascal VOC2012数据集上的实验表明,所提出的方法能够在很大程度上优于标准微调方法,从而缓解灾难性遗忘现象。然而,语义分割的增量学习问题是一项新的具有挑战性的任务,需要先进的策略来解决。事实证明,在一步训练后,即当所有训练示例都可用并同时使用时,结果低于相同架构所获得的结果。未来,我们计划扩大我们的实验集,开发新的增量学习策略,并使用GANs生成包含已看到类的图像。最后,我们将考虑这样一种场景,即将来出现的类从一开始就存在,但被标记为背景。
参考资料
[1] K. Shmelkov, C. Schmid, and K. Alahari. Incremental learning of object detectors without catastrophic forgetting. In Proceedings of International Conference on Computer Vision (ICCV), pages 3400–3409, 2017. 1, 2, 3, 4
[2] Z. Li and D. Hoiem. Learning without forgetting. IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 40(12):2935–2947, 2018. 1, 2, 3
[3] P. Zhou, L. Mai, J. Zhang, N. Xu, Z. Wu, and L. S. Davis. M2kd: Multi-model and multi-level knowledge distillation for incremental learning. Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2019. 1, 2
[4] K. Shmelkov, C. Schmid, and K. Alahari. Incremental learning of object detectors without catastrophic forgetting. In Proceedings of International Conference on Computer Vision (ICCV), pages 3400–3409, 2017. 1, 2, 3, 4