Representation Compensation Networks for Continual Semantic Segmentation翻译

RCIL:Representation Compensation Networks for Continual Semantic Segmentation (CVPR, 2022)
RCIL:连续语义分割的表示补偿网络

传送门

paper
code

Abstract 摘要

在这项工作中,我们研究了连续语义分割问题,其中深度神经网络需要纳入新的类持续而没有灾难性遗忘。我们建议使用一种结构的重新参数化机制,命名为表示补偿(RC)模块,以解耦新旧知识的表示学习。RC模块由两个动态演化的分支组成,其中一个是冻结的,另一个是可训练的
此外,我们在空间维度和通道维度上设计了集合立方体知识提炼策略,进一步增强了模型的可塑性和稳定性。我们对两种具有挑战性的连续语义分割场景进行了实验,连续类分割和连续域分割。在推断过程中没有任何额外的计算开销和参数,我们的方法优于最先进的性能。代码: https://github.com/zhangchbin/RCIL

1. Introduction

数据驱动的深度神经网络[65,73,98,109]在语义分割方面取得了许多里程碑式的成就。然而,这些完全监督模型[17,24,95]只能处理固定数量的类。在实际应用程序中,可以动态扩展模型以识别新类是最好的。一个简单的解决方案是重建训练集,并使用所有可用的数据重新训练模型,称为联合训练。然而,考虑到再训练模型的成本、算法的可持续发展以及隐私问题,仅使用当前数据更新模型以实现识别新类和旧类的目标尤为关键。然而,用新数据对训练过的模型进行天真的微调可能会导致灾难性的[49]遗忘。因此,在本文中,我们寻求持续学习,它可能使模型在不发生灾难性遗忘的情况下识别新的类别.
在连续语义切分的场景中[9,28,63,64],给定之前训练的模型和训练数据的新类,模型应该区分所有看到的类,包括以前的类(旧类)和新的类。然而,为了节省标记成本,新的训练数据通常只对新类有标签,将旧类作为后台处理。在没有任何额外设计的情况下直接学习新数据是非常具有挑战性的,这很容易导致灾难性的[49]遗忘。

在这里插入图片描述
图1。说明我们提出的连续语义分割训练框架,以避免灾难性遗忘。在我们的方法中设计了两种机制,表示补偿(RC)模块和汇聚立方蒸馏(PCD)。

如[29,49,52]所指出的,在新数据上对模型进行微调可能会导致灾难性遗忘,即模型会快速拟合新类的数据分布,而失去对旧类的判别能力。一些方法[44,49,57,67,68,81,97]对模型参数进行正则化处理以提高其稳定性。但是,所有参数都是在新类的训练数据上更新的。然而,这是具有挑战性的,因为新知识和旧知识在模型参数中纠缠在一起,很难保持学习新知识和保持旧知识的脆弱平衡。其他一些方法[46,58,76,77,83,93]增加了模型的容量,以更好地权衡稳定性和可塑性,但代价是增加网络的记忆。

在本研究中,我们提出了一个易于使用的表示补偿模块,旨在记住旧知识,同时允许额外容量的新知识。受结构重新参数化的启发[25,26],我们将在训练过程中,网络中具有两个并行分支的卷积层称为表示补偿模块。如图1所示,在训练过程中,将两个并行卷积的输出融合在非线性激活层之前。在每一个连续学习步骤的开始,我们等价地将两个并行卷积的参数合并为一个卷积,这个卷积将被冻结以保留旧的知识。另一个分支是可训练的,它从上一步中相应的分支继承参数。表示补偿策略是使用冻结的分支记忆旧知识,同时使用可训练的分支允许额外的能力记忆新知识,重要的是,该模块在推断过程中不会带来额外的参数和计算成本。

为了进一步缓解灾难性遗忘,我们在中间层之间引入了一种知识蒸馏机制71,名为Pooled Cube蒸馏。它可以抑制局部特征图中误差和噪声的负面影响。本文的主要贡献有:

•我们提出了一个表示补偿模块,在训练过程中有两个分支,一个用于保留旧知识,一个用于适应新数据。在推断过程中,随着任务数量的增加,它始终保持相同的计算和内存开销

•我们分别对连续类分割和连续域分割进行实验实验结果表明,该方法在三种不同的数据集上的性能都优于最新的性能。

2. Related Work

Semantic Segmentation.语义分割。
早期的方法专注于对上下文关系建模[3,50,104]。目前的方法更多地关注多尺度特征聚合[4,35,53,54,60,66,69,82]。一些方法[15,23,33,38,39,51,56]受非局部[86]的启发,利用注意机制建立图像上下文之间的联系。另一项研究[16,62,96]旨在融合来自不同接收野的特征。最近,变压器体系结构[8,27,87,99,105,110]在语义分割方面表现突出,重点是多尺度特征融合[13,85,91,102]和上下文特征聚合[59,80]。

Continual Learning.持续学习
持续学习的重点是减轻灾难性遗忘,同时对新学习的班级有区别对待。为了解决这一问题,许多研究[5,6,12,48,78]提出通过预演机制来复习知识。知识可以存储为多种类型,如示例[5,7,10,12,74,84]、原型[36,107,108]、生成网络[61]等。虽然这些基于排练的方法通常能达到较高的性能,但它们需要存储和存储权限。在没有任何回放的更具挑战性的场景中,许多方法探索正则化来保持旧知识,包括知识蒸馏[11,19,22,29,52,70,75],对抗性训练[30,90],香草正则化[44,49,57,67,68,81,97,100]等。其他人则专注于神经网络的容量。其中一条研究路线[46,58,76,77,83,93]是在学习新知识的同时扩展网络架构。另一条研究路线[1,45]探讨了网络参数的稀疏正则化,其目的是在每个任务中激活尽可能少的神经元。这种稀疏正则化减少了网络中的冗余,同时限制了每个任务的学习能力。一些工作提出通过结合自监督学习特征提取器[10,88]和解决类不平衡[40,47,55,101,103]来学习更好的表示。

Continual Semantic Segmentation.持续的语义分割。
连续语义切分仍然是一个亟待解决的问题,主要集中在语义切分中的灾难性遗忘[49]。在这一领域,连续类分割是一种经典的设置,之前的几项工作取得了很大的进展:[42,94]探索了基于排练的方法来复习旧知识;MiB[9]对潜在的类进行建模以解决背景类的二义性;PLOP[28]将知识精馏策略应用于中间层;SDR[64]利用原型匹配对潜在空间表示进行一致性约束。而其他人[32,79,97]则利用高维信息、自我训练和模型适应来克服这一问题

此外,连续域分割是PLOP[28]提出的一种新的设置,旨在集成新的域而不是新的类。与以往的方法不同,我们着重于动态扩展网络,解耦旧类和新类的表示学习。

3. Method

3.1. Preliminaries

设D = {xi, yi}为训练集,其中xi为输入图像,yi为对应的分割ground-truth。在具有挑战性的连续学习场景中,我们将新添加的数据集Dt上的每次训练称为一个步骤。在步骤t,给定参数为θt−1的模型ft−1训练在{D0, D1…Dt−1}与{C0, C1,…连续Ct−1}类时,当模型遇到新添加的数据集Dt和额外Ct新类时,拟学习对Pt n=0 Cn类的判别。在Dt上训练时,旧类的训练数据是不可访问的。此外,为了节省训练成本,Dt中的ground truth中只包含Ct新类,而旧类被标记为background。因此,有一个紧迫的问题,灾难性遗忘。验证了不同方法的有效性经常需要进行多次连续学习,例如N步。

在这里插入图片描述
图2。说明我们的代表补偿机制。我们将3 × 3卷积修改为两个并行卷积。来自两个分支的特性在激活层之前进行聚合。因此,在第t步开始时,可以将第t−1步训练的两个并行分支合并成一个等价的卷积层,冻结该卷积层,视为第t步的一个分支。从第t−1步对应的分支初始化第t步中的另一个分支。我们在图的右边演示了合并操作。

3.2. Representation Compensation Networks 3.2. 表示补偿网络

如图2所示,为了将旧知识的保留和新知识的学习解耦,我们引入了表示补偿机制。在大多数深度神经网络中,一个3 × 3的卷积,然后是归一化和非线性激活层是常见的组成部分。我们修改了这个架构,添加了一个并行的3 × 3卷积,然后为每个组件添加一个规范化层。将两个并行卷积归一化层的输出进行融合,然后用非线性激活层进行校正。形式上,该架构包含两个权值为{W 0, W 1}、偏差为{b0, b1}的并行卷积层,然后分别是两个独立的归一化层。设N orm0 ={µ0,σ0, γ0, β0}, N orm1 ={µ1,σ1, γ1, β1}表示N orm0和N orm1两层归一化层的均值、方差、权重和偏差。因此,非线性激活函数之前输入x的计算为在这里插入图片描述
这个方程表明,两个并行的分支可以等价地表示为一个权重ˆW和偏差ˆb,我们还在图2的右侧显示了这种转换,因此,对于这种改进的结构,我们可以等价地将两个分支的参数合并成一个卷积。

更准确地说,在步骤0中,所有参数都是可训练的,以训练一个可以区分C0类的模型。为在后续的学习步骤中,模型将对新添加的类进行分段。在这些连续的学习步骤中,网络将使用上一步训练的参数进行初始化,这有利于知识[9]的转移

在第t步开始时,为了避免模型遗忘旧知识,我们将第t−1步训练的并行分支合并到一个卷积层。这个合并分支中的参数被冻结以记忆旧的知识,如图2所示。另一个分支是可训练的,可以学习新的知识,在前面的步骤中用相应的分支进行初始化。此外,我们还设计了一个drop-path策略,将其应用于两个分支的输出x1和x2的聚合。训练时,非线性激活前的输出记为在这里插入图片描述
式中,η为随机通道加权向量,均匀从集合{0,0.5,1}采样。在推断过程中,向量η的元素设为0.5。实验结果表明,该策略具有一定的改进效果。

Analysis on RC-Module’s Effectiveness. rc模块的有效性分析。
如图3所示,并行卷积结构可以看作是多个子网络的隐式集合[37,41]

这些子网络中某些层的参数继承自合并的教师模型(在上一步中训练过),并被冻结。在训练过程中,类似于[34,92],这些冻结的教师层将对可训练参数进行正则化,鼓励可训练层表现得像教师模型一样。如图3(a)所示,在子网络中只有一层可训练的特殊情况下,在训练过程中,这一层将同时考虑对冻结层的表示进行调整和对新知识的学习。因此,该机制可以缓解可训练层的灾难性遗忘。我们进一步将这种效应推广到图3(b)这样的一般子网络,这也将鼓励可训练层适应冻结层的表示。此外,所有子网络集成,将不同子网络的知识集成到一个网络中,如图3©所示。
在这里插入图片描述
图3。我们提出的代表补偿网络的说明。我们的架构©可以被视为众多子网络(a)、(b)等的隐式集成。蓝色表示从合并的教师模型继承的冻结层,绿色表示可训练层。灰色表示子网络中被忽略的层。

3.3. Pooled Cube Knowledge Distillation 3.3. 汇集的立方体知识蒸馏

为了进一步缓解旧知识的遗忘,在PLOP[28]之后,我们还探索了中间层之间的知识提取。如图4(a)所示,PLOP[28]引入条带池化[39],分别集成教师模型和当前模型的特征。池化操作在保持对旧类的区分和允许学习新类方面发挥了关键作用。在我们的方法中,我们按照空间维度设计了基于平均集合的知识蒸馏。此外,我们还在每个位置使用通道维度的平均池化来维持它们各自的激活强度总的来说,如图4(b)所示,我们在空间和通道维度上都使用了平均池化。

形式上,我们选择特征映射{X1, X2,…, XL}之前的最后一个非线性激活层的所有L阶段,包括解码器和骨干中的所有阶段。对于来自教师模型和学生模型的特征,我们首先计算每个像素的值的平方,以保留负面信息。然后,分别对空间和渠道维度进行多尺度平均池化。教师模型ˆXlT,学生模型ˆXlS,可以通过平均池化操作?来计算:在这里插入图片描述
其中M表示第M个平均池核,l表示第l阶段。对于空间维度上的平均池化,我们使用多尺度窗口来模拟局部区域内像素之间的关系。核M的大小为M = {4, 8, 12, 16, 20, 24} 步长设置为1。对于通道维度上的平均池化,我们简单地将窗口大小设置为3。然后,中间层的空间知识蒸馏损失函数Lskd为

在这里插入图片描述
其中H、W、D分别表示高度、宽度和通道数。同样的方程可以应用于M ={3}的通道维,形成Lckd。总的来说,蒸馏目标可以表示为:
在这里插入图片描述
A verage pooling vs. Strip pooling.
得益于其强大的聚合特征和建模长期依赖的能力,strip pooling在许多全监督语义分割模型中发挥着巨大的作用[39,43]。连续分割的性能仍然比完全监督分割差很多。在连续分割的情况下,预测结果往往比完全监督分割有更多的噪声或误差。因此,在蒸馏过程中,当使用条带池化来聚合特征时,这种长程依赖会给交叉点引入一些不相关的噪声,导致噪声扩散。这将导致学生模型预测结果的进一步恶化。在我们的方法中,我们在局部区域使用平均池化来抑制噪声的负面影响。具体来说,由于局部区域的语义往往相似,当前的关键点可以通过聚合局部区域的特征找到更多的邻居来支持其决策。因此,当前关键点受局部区域噪声的负面影响较小。

如图5(b)顶部所示,strip pooling为教师模型的交叉点引入了噪声或错误。在蒸馏过程中,噪声进一步传播到学生模型中,使噪声扩散对于图5底部的平均池化,关键点将考虑许多附近的邻居,从而产生一个对噪声更鲁棒的聚合特征。
在这里插入图片描述
图5。PLOP[28]中使用的条带池化(顶部行)和我们的方法中平均池化(底部行)的影响。

4. Experiments

猜你喜欢

转载自blog.csdn.net/m0_37690430/article/details/125972990