Lifelong Learning and Selective Forgetting via Contrastive Strategy
文章目录
- Lifelong Learning and Selective Forgetting via Contrastive Strategy
- 摘要
- 1 引言
- 2 相关工作
- 2.1 终身学习
- 2.2 机器遗忘
- 2.3 对比学习
- 3 问题定义
- 4 提出的方法
- 4.1 概述
- 4.2 全局原型计算
- 4.3 终身学习与选择性遗忘
- 4.4 将被删除类别归入背景
- 4.5 总损失
- 5 实验
- 5.1 设置
- 5.2 结果
- 5.3 消融研究
- 5.4 敏感性分析
- 6 结论
- 本文是对原论文学习过程中的中文翻译,仅用于学术交流与科普分享,无任何商业目的。
- 翻译已尽力忠实原文,但受限于译者水平,可能存在偏差;术语或公式若有疑义,请以原文为准。
- 若原作者、期刊或版权方提出异议,译者将在收到通知后 24 小时内删除本文并致歉。
- 欢迎读者引用原文,并请注明出处
Lifelong Learning and Selective Forgetting via Contrastive Strategy
通过对比策略实现终身学习与选择性遗忘
Lianlei Shan, Wenzhang Zhou, Wei Li, Xingyu Ding
摘要
终身学习旨在训练一个模型,使其在新任务上表现良好,同时保留对先前任务的能力。然而,某些实际场景中,由于隐私问题,系统需要遗忘不良知识,这被称为选择性遗忘。将这两者结合的任务被称为选择性遗忘学习(LSF)。在本文中,我们提出了一种基于对比策略的新框架来实现LSF。具体来说,对于保留的类别(任务),我们使同一类别内不同样本提取的特征更加紧凑。而对于删除的类别,我们使同一类别内不同样本的特征分散且不规则,即网络对特定删除类别的样本没有任何规律性响应,就像网络从未进行过训练一样。通过维持或扰乱特征分布,不同类别的遗忘和记忆可以相互独立。我们在四个基准数据集上进行了实验,我们的方法达到了新的最先进水平。
1 引言
深度神经网络在基于强大计算设备和大规模训练数据的许多任务中取得了巨大成功。然而,深度学习存在灾难性遗忘的问题,即当网络学习新任务时,其对先前任务的性能会显著下降。为了解决这个问题,终身学习(也称为持续学习或增量学习)被提出,其中网络可以持续学习新任务而不会忘记先前的任务。终身学习的主要方法可以分为基于正则化的方法、基于动态架构的方法 和基于重放的方法。同时,随着人工智能进入人们生活的各个方面,隐私保护和数据泄露预防受到更多关注。新的挑战包括隐私保护定位、从加密数据中学习等。终身学习无法避免这个问题。保留所有先前类别或任务的完整知识是一把双刃剑,可能会导致数据泄露和隐私侵犯的风险。
为了解决上述问题,[Shi-bata et al., 2021] 首次提出了选择性遗忘学习(Learning with Selective Forgetting, LSF),其目标是在避免灾难性遗忘的同时,仅选择性遗忘指定的过去类别集合。该方法为每个类别设计了一个记忆代码,以控制哪些类别需要遗忘,哪些类别需要保留,并且仅使用属于保留类别的记忆代码进行后续训练,从而使网络能够实现选择性遗忘。尽管这是一个开创性的方法,但它仍有许多不足之处。首先,现有的终身学习方法需要添加额外的输入(记忆代码)来实现选择性遗忘,但对于像分割这样的复杂任务,准确生成记忆代码具有挑战性,这限制了其使用范围。其次,它通过分类头的损失间接影响特征提取。直观上,直接操作特征提取更为有效且更具普适性(几乎所有深度学习都有特征提取部分)。第三,它只是简单地忽略已删除类别的损失,而没有对它们进行特定的遗忘操作,导致遗忘速度非常缓慢且效率低下,并影响保留类别的准确性。
最近,对比学习在终身学习中显示出显著优势,基于此,我们进行了改进,使终身学习系统能够轻松获得选择性遗忘的能力。具体而言,对于保留的类别,我们仍然遵循之前的对比学习方式,即实现类别内特征的聚合和类别间特征的分散。对于已删除的类别,我们使同一类别内不同样本(像素或图像的特征)的特征分散且不规则,从而使网络反应出未经训练的状态,以实现选择性遗忘。遗忘和记忆都在特征层面(嵌入空间)进行操作,因此它们非常高效且快速,并且互不干扰。
总之,提出了一种基于对比学习的更通用策略,该策略完美地结合了终身学习和选择性遗忘。此外,所提出的方法直接在特征提取部分进行操作,使遗忘过程快速且通用,从而从根本上避免了信息泄露的可能性。在三个分类和一个分割基准数据集上的实验表明,所提出的方法具有显著的优势。
2 相关工作
2.1 终身学习
当前大多数终身学习技术可分为三类:正则化、动态架构和基于回放的方法。
基于正则化的方法:基于正则化的方法是目前应用最广泛的,主要有两种形式:惩罚计算和知识蒸馏。惩罚计算方法通过限制模型内部重要权重的变化来防止遗忘。知识蒸馏依赖于教师(旧)模型将知识传递给学生(新)模型,而学生模型仍然被训练以学习新任务。
基于动态架构的方法:动态架构为新任务生长新的分支,如果生长新的网络分支,则可以是显式的;如果某些网络权重仅对特定任务可用,则可以是隐式的。
基于回放的方法:基于回放的模型利用在学习新任务的过程中存储或生成示例。生成方法依赖于生成模型,这些模型随后用于生成人工样本以保留先前的知识。基于存储的方法保存了一组过去任务的原始样本用于后续训练。
与 [Shibata et al., 2021] 的开创性工作不同,他们同时使用了惩罚和蒸馏方法,而我们的方法仅归类为基于知识蒸馏的方法,其结构简单,更适合分割等复杂任务。
2.2 机器遗忘
最近的立法,如《通用数据保护条例》(GDPR),规定了“被遗忘权”,允许个人请求模型所有者删除其数据以保护隐私。此外,模型对目标的影响也应被消除。这一过程被称为机器遗忘 (MU),最初由 [Cao and Yang, 2015] 提出。一般方法是在训练数据的分离子集上训练多个小模型,以避免重新训练整个知识,或者利用学习过程的痕迹,即存储的学习模型参数和相应的梯度。受差分隐私 (Differential Privacy, DP)的启发,Sunshine of the Spotless Net [Golatkar et al., 2020]引入了一种擦除程序,使用费舍尔信息矩阵从深度神经网络的已训练权重中移除知识。
据我们所知,我们首次将潜在对比学习应用于 MU,并且操作直接在特征提取部分进行。
2.3 对比学习
对比学习最近已成为自监督学习方法中的主导组成部分。其目标是将同一样本的增强版本嵌入到彼此接近的位置,同时尝试将不同样本的嵌入分开。在终身学习中,SDR采用对比学习根据语义对特征进行聚类,同时将不同类别的特征分开。我们遵循 SDR 的框架,并进行了有效的改进,使其在不影响终身学习的情况下具备选择性遗忘的能力。
3 问题定义
{D1,⋯Dt,⋯DT}\left\{ {{\mathcal{D}}_{1},\cdots {\mathcal{D}}_{t},\cdots {\mathcal{D}}_{T}}\right\}{D1,⋯Dt,⋯DT} 表示一系列数据集,其中 Dt={(xti,yti)i=1nt}{\mathcal{D}}_{t} = \left\{ {\left( {\mathbf{x}}_{t}^{i},{\mathbf{y}}_{t}^{i}\right) }_{i = 1}^{{n}_{t}}\right\}Dt={(xti,yti)i=1nt} 是第 ttt 个任务的数据集。St={\mathcal{S}}_{t} =St= C1∪,…,Ct{\mathcal{C}}_{1} \cup ,\ldots ,{\mathcal{C}}_{t}C1∪,…,Ct 表示已学习的类别。我们将输入图像空间表示为 X∈RH×W×3\mathcal{X} \in {\mathbb{R}}^{H \times W \times 3}X∈RH×W×3,其空间维度为 HHH 和 WWW,类别(或分类)集合表示为 C={ci}i=0C\mathcal{C} = {\left\{ {c}_{i}\right\} }_{i = 0}^{C}C={ci}i=0C,输出空间表示为 Y∈RH×W\mathcal{Y} \in {\mathbb{R}}^{H \times W}Y∈RH×W(即分割图),或分类任务中的 Y∈R1×1\mathcal{Y} \in {\mathbb{R}}^{1 \times 1}Y∈R1×1。xti∈X{\mathbf{x}}_{t}^{i} \in \mathcal{X}xti∈X 是输入图像,yti∈Y{y}_{t}^{i} \in \mathcal{Y}yti∈Y 是对应的标签。
在LSF问题中,每个已学习的类别被分配到保留集或删除集中。保留集 Ctp{\mathcal{C}}_{t}^{p}Ctp 表示过去学习的类别集合,应在第 ttt 个任务中保留。删除集 Ctp‾\overline{{\mathcal{C}}_{t}^{p}}Ctp 表示在第 ttt 个任务之前应被遗忘的类别集合(即 Ctp{\mathcal{C}}_{t}^{p}Ctp 的补集)。LSF的目标是学习一个模型 fθ:X→Y{f}_{\theta } : \mathcal{X} \rightarrow \mathcal{Y}fθ:X→Y。对于当前学习集或保留集中的类别,网络应正确预测。而对于删除集中的类别,网络应错误预测。我们的工作更进一步,使被删除的类别被分类为背景类别(如果有的话),以消除对保留类别准确性的影响。需要注意的是,网络不会改变架构,如删除或合并分割头。
在终身学习中,当新任务开始时,先前学习类别的样本不可访问,并且 [Shibata et al., 2021] 和我们的工作都遵循这一规则。然而,旧类别的信息可以间接获得,例如分类任务中的记忆代码,或分割任务中通过伪标签获得的旧类别数据,这些信息可用于实现遗忘或记忆。
4 提出的方法
4.1 概述
遗忘的本质:如果网络遗忘了一个类别,即网络(包括特征提取部分和分类部分)不包含该类别的任何信息,那么任何攻击都不会导致信息泄露。总之,遗忘意味着网络为同一类别的不同样本提取的特征在所有特征空间中都是分散且不规则的。图1对于理解我们的想法至关重要,直观地展示了我们的动机和提出的操作。
图1:特征分布及特征操作。颜色代表类别,蓝色代表背景类别。点表示样本(图像或像素)的特征。未经训练的网络从同一类别的样本中提取的特征是分散的(如(a)所示),而经过训练的网络提取的特征是聚合的(如(b)所示)。受此现象启发,我们为每个类别计算全局原型(©中的粗点),然后分散属于同一删除类别的特征(©中的绿点),但压缩同一保留类别的特征(©中的蓝点和红点)。上述操作实现了选择性遗忘,但会导致删除类别的样本被随机分类为任何类别,从而降低保留类别的准确性((d)中被黑框包围的点)。我们将删除类别的特征移近背景类别(如(e)所示),因此删除类别类似于背景类别(如(f)所示),以避免影响其他类别。
遵循SDR [Michieli和Zanuttigh, 2021],我们为每个类别计算一个全局(不仅限于一个批次)原型,如第4.2节所示。然后,根据对比学习的思路,使用这些原型来保留和遗忘类别。具体来说,对于保留的类别,网络对同一类别样本的响应应保持一致且紧凑;对于删除的类别,我们的目标是使网络的响应随机且不规则,就像网络从未针对该类别进行过训练一样。这些过程在第4.3节中介绍。同时,对于分割任务,删除类别的特征被移近背景,以避免影响其他保留类别的准确性,如第4.4节所示。
符号定义:我们以步骤 ttt 为例,由于不同步骤的操作是一致的,为简化起见,我们省略了标志 ttt。yn′=fθ(xn).fθ(xn)[h,w,c]{\mathbf{y}}_{n}^{\prime } = {f}_{\theta }\left( {\mathbf{x}}_{n}\right) .{f}_{\theta }\left( {\mathbf{x}}_{n}\right) \left\lbrack {h,w,c}\right\rbrackyn′=fθ(xn).fθ(xn)[h,w,c] 是像素(h,w)中类别 ccc 的概率,其中 h=1,…,H,w=h = 1,\ldots ,H,w =h=1,…,H,w= 1,…,W1,\ldots ,W1,…,W。输出分割掩码计算为 y~n=argmaxc∈Cfθ(xn){\widetilde{\mathbf{y}}}_{n} = \arg \mathop{\max }\limits_{{c \in \mathcal{C}}}{f}_{\theta }\left( {\mathbf{x}}_{n}\right)yn=argc∈Cmaxfθ(xn)。真实值 yn{\mathbf{y}}_{n}yn 中的背景被替换为前一步骤(步骤 t−1t - 1t−1)的 y~n{\widetilde{\mathbf{y}}}_{n}yn,修改后的结果是一个综合的监督信息(伪标签),称为 y^n{\widehat{\mathbf{y}}}_{n}yn。这一操作背后的原理是旧模型对旧类别的预测是可靠的,背景类别可以包含先前类别的统计信息。如今,对于分割任务,fθ{f}_{\theta }fθ 通常是由编码器 EEE 和解码器 DDD 组成的自动编码器模型(即 fθ=D∘E{f}_{\theta } = D \circ Efθ=D∘E)。我们称 Fn=E(xn){\mathbf{F}}_{n} = E\left( {\mathbf{x}}_{n}\right)Fn=E(xn) 为 xn{\mathbf{x}}_{n}xn 的特征图,yn∗{\mathbf{y}}_{n}^{ * }yn∗ 是与 Fn{\mathbf{F}}_{n}Fn 空间维度匹配的下采样综合伪标签(即 y^n{\widehat{\mathbf{y}}}_{n}yn)。对于分类任务,只需将像素级改为图像级,伪标签改为记忆代码以获取旧类别信息,其余部分相同。
4.2 全局原型计算
原型(即类中心)是代表每个类的向量,我们遵循 SDR 来计算全局原型,而不是仅限于一个批次的原型。
对于包含 BBB 张图像的当前批次 B\mathcal{B}B,第 ttt 步的当前(或批次内)原型 p^c[t]{\widehat{\mathbf{p}}}_{c}\left\lbrack t\right\rbrackpc[t] 计算为类别 ccc 特征的平均值,具体形式如下
所示,
p^c[t]=1B∑xn∈B∑fi∈Fnfi1[yi∗=c]∣1[yn∗=c]∣,(1){\widehat{\mathbf{p}}}_{c}\left\lbrack t\right\rbrack = \frac{1}{B}\mathop{\sum }\limits_{{{\mathbf{x}}_{n} \in \mathcal{B}}}\frac{\mathop{\sum }\limits_{{{\mathbf{f}}_{i} \in {\mathbf{F}}_{n}}}{\mathbf{f}}_{i}\mathbb{1}\left\lbrack {{y}_{i}^{ * } = c}\right\rbrack }{\left| \mathbb{1}\left\lbrack {\mathbf{y}}_{n}^{ * } = c\right\rbrack \right| }, \tag{1} pc[t]=B1xn∈B∑∣1[yn∗=c]∣fi∈Fn∑fi1[yi∗=c],(1)
其中 fi∈Fn{\mathbf{f}}_{i} \in {\mathbf{F}}_{n}fi∈Fn 是一个通用特征向量,yi∗{y}_{i}^{ * }yi∗ 是 yn∗⋅1[yn∗=c]{\mathbf{y}}_{n}^{ * } \cdot \mathbb{1}\left\lbrack {{\mathbf{y}}_{n}^{ * } = c}\right\rbrackyn∗⋅1[yn∗=c] 中对应的像素标签,表示 yn∗{\mathbf{y}}_{n}^{ * }yn∗ 中与 ccc 相关联的像素,当特征对应的标签是类别 ccc 时,值为 1;否则,值为 0.∣⋅∣0.\left| \cdot \right|0.∣⋅∣ 表示基数。
在训练步骤 ttt 中,使用包含 BBB 张图像的批次 B\mathcal{B}B,通用类别 ccc 的全局原型 pc[t]{\mathbf{p}}_{c}\left\lbrack t\right\rbrackpc[t] 更新如下:
pc[t]=1t((t−1)pc[t−1]+p^c[t]),(2){\mathbf{p}}_{c}\left\lbrack t\right\rbrack = \frac{1}{t}\left( {\left( {t - 1}\right) {\mathbf{p}}_{c}\left\lbrack {t - 1}\right\rbrack + {\widehat{\mathbf{p}}}_{c}\left\lbrack t\right\rbrack }\right) , \tag{2} pc[t]=t1((t−1)pc[t−1]+pc[t]),(2)
其初始化为 pc[0]=0∀c{\mathbf{p}}_{c}\left\lbrack 0\right\rbrack = \mathbf{0}\forall cpc[0]=0∀c。对于分类任务,一张图像只有一个输出,计算方法相同。
4.3 终身学习与选择性遗忘
终身学习:对比学习旨在构建潜在空间,使同一类别的特征聚集在其原型附近,这也有助于终身学习以减轻遗忘并促进新类别的添加。形式上,对于同一保留类别内的特征,我们定义 Linp{\mathcal{L}}_{in}^{p}Linp 以维持类内特征的聚合,如下所示:
Linp=1Ncp∑cj∈(Ctp∪Ct)cj∈yn∗∑fi∈Fn∥(fi−pcj)1[yi∗=cj]∥F,(3){\mathcal{L}}_{in}^{p} = \frac{1}{{N}_{c}^{p}}\mathop{\sum }\limits_{\substack{{{c}_{j} \in \left( {{\mathcal{C}}_{t}^{p} \cup {\mathcal{C}}_{t}}\right) } \\ {{c}_{j} \in {\mathbf{y}}_{n}^{ * }} }}\mathop{\sum }\limits_{{{\mathbf{f}}_{i} \in {\mathbf{F}}_{n}}}{\begin{Vmatrix}\left( {\mathbf{f}}_{i} - {\mathbf{p}}_{{c}_{j}}\right) \mathbb{1}\left\lbrack {y}_{i}^{ * } = {c}_{j}\right\rbrack \end{Vmatrix}}_{F},\quad(3) Linp=Ncp1cj∈(Ctp∪Ct)cj∈yn∗∑fi∈Fn∑(fi−pcj)1[yi∗=cj]F,(3)
其中 Ncp=∣cj∈yn∗∩cj∈(Ctp∪Ct)∣{N}_{c}^{p} = \left| {{c}_{j} \in {\mathbf{y}}_{n}^{ * } \cap {c}_{j} \in \left( {{\mathcal{C}}_{t}^{p} \cup {\mathcal{C}}_{t}}\right) }\right|Ncp=∣cj∈yn∗∩cj∈(Ctp∪Ct)∣ 表示在 Fn{\mathbf{F}}_{n}Fn 中需要学习和保留的类别数量。我们使用 Frobenius 范数 ∥⋅∥F\parallel \cdot {\parallel }_{F}∥⋅∥F 作为度量距离。Linp{\mathcal{L}}_{in}^{p}Linp 实际上衡量了特征与其各自质心的接近程度,其目标是使来自同一保留类别的特征向量围绕类别特征质心收紧。Linp{\mathcal{L}}_{in}^{p}Linp 的效果对应于图 1 © 中围绕红色和蓝色点的箭头。对于分类任务,Fn{\mathbf{F}}_{n}Fn 既是从图像中提取的特征(当前学习类别的特征),也是从记忆代码中提取的特征(已学习类别的特征)。
选择性遗忘:相反,如果我们希望网络忘记某个类别,我们可以使该类别内的特征以不同的距离和方向远离原型。这一要求可以很好地满足,如下所示:
Lin,Fnd=1Ncd∑cj∈cˉrpcj∈yn∗∑fi∈Fn1∥(fi−pcj)1[yi∗=cj]∥F,(4){\mathcal{L}}_{{in},{\mathbf{F}}_{n}}^{d} = \frac{1}{{N}_{c}^{d}}\mathop{\sum }\limits_{\substack{{{c}_{j} \in {\bar{c}}_{r}^{p}} \\ {{c}_{j} \in {\mathbf{y}}_{n}^{ * }} }}\mathop{\sum }\limits_{{{\mathbf{f}}_{i} \in {\mathbf{F}}_{n}}}\frac{1}{{\begin{Vmatrix}\left( {\mathbf{f}}_{i} - {\mathbf{p}}_{{c}_{j}}\right) \mathbb{1}\left\lbrack {y}_{i}^{ * } = {c}_{j}\right\rbrack \end{Vmatrix}}_{F}}, \tag{4} Lin,Fnd=Ncd1cj∈cˉrpcj∈yn∗∑fi∈Fn∑(fi−pcj)1[yi∗=cj]F1,(4)
其中 Ncd=∣cj∈yn∗∩cj∈Ctp‾∣{N}_{c}^{d} = \left| {{c}_{j} \in {\mathbf{y}}_{n}^{ * } \cap {c}_{j} \in \overline{{\mathcal{C}}_{t}^{p}}}\right|Ncd=cj∈yn∗∩cj∈Ctp。此外,相同特征在不同空间中的分布是不同的。基于这一点,我们不仅在特征提取的最后一层进行类内分散,还在输出后添加两个 3×33 \times 33×3 卷积,将其特征维度分别改变为原始大小的 12\frac{1}{2}21 和 14\frac{1}{4}41(空间大小保持不变),然后在这三个特征空间中进行特征分散操作。这两个卷积可以被视为降维操作,使得特征从不同的嵌入空间中发散。因此,Lin d{\mathcal{L}}_{\text{in }}^{d}Lin d 计算如下:
Lind=Lin,Fnd+Lin,Fn∗d+Lin,Fn∗∗d,(5){\mathcal{L}}_{in}^{d} = {\mathcal{L}}_{{in},{\mathbf{F}}_{n}}^{d} + {\mathcal{L}}_{{in},{\mathbf{F}}_{n}^{ * }}^{d} + {\mathcal{L}}_{{in},{\mathbf{F}}_{n}^{* * }}^{d}, \tag{5} Lind=Lin,Fnd+Lin,Fn∗d+Lin,Fn∗∗d,(5)
其中 Fn∗{\mathbf{F}}_{n}^{ * }Fn∗ 和 Fn∗∗{\mathbf{F}}_{n}^{* * }Fn∗∗ 是 Fn{\mathbf{F}}_{n}Fn 经过一次和两次 1×11 \times 11×1 卷积后的输出。需要注意的是,这两个额外的特征仅用于计算 Lind{\mathcal{L}}_{in}^{d}Lind,不会进入分割网络的解码器部分或分类网络的分类器。
4.4 将被删除类别归入背景
对比学习不仅可以使同一类别内的特征彼此靠近,还可以使不同类别之间受到排斥力,从而使它们彼此远离。我们利用 Lexp{\mathcal{L}}_{ex}^{p}Lexp 来衡量不同语义类别对应的原型之间的距离,即:
Lexp=1Ncp∑cj∈(Ctp∪Ct)cj∈yn∗∑ck∈yn∗ck≠cj1∥p^cj−p^ck∥F(6){\mathcal{L}}_{ex}^{p} = \frac{1}{{N}_{c}^{p}}\mathop{\sum }\limits_{\substack{{{c}_{j} \in \left( {{\mathcal{C}}_{t}^{p} \cup {\mathcal{C}}_{t}}\right) } \\ {{c}_{j} \in {\mathbf{y}}_{n}^{ * }} }}\mathop{\sum }\limits_{\substack{{{c}_{k} \in {\mathbf{y}}_{n}^{ * }} \\ {{c}_{k} \neq {c}_{j}} }}\frac{1}{{\begin{Vmatrix}{\widehat{\mathbf{p}}}_{{c}_{j}} - {\widehat{\mathbf{p}}}_{{c}_{k}}\end{Vmatrix}}_{F}} \tag{6} Lexp=Ncp1cj∈(Ctp∪Ct)cj∈yn∗∑ck∈yn∗ck=cj∑pcj−pckF1(6)
在分割任务中存在背景,即除了前景类别之外的其他类别被标记为背景。为了防止影响保留类别的准确性,一个合理且可行的方法是将它们靠近背景以避免误报,如图1(e)所示。实现这一目标的损失函数如下所示:
Lexd=1Ncd∑fi∈Fn∥(fi−pb)1[yi∗∈Ctp‾]∥F,(7){\mathcal{L}}_{ex}^{d} = \frac{1}{{N}_{c}^{d}}\mathop{\sum }\limits_{{{\mathbf{f}}_{i} \in {\mathbf{F}}_{n}}}{\begin{Vmatrix}\left( {\mathbf{f}}_{i} - {\mathbf{p}}_{b}\right) \mathbb{1}\left\lbrack {y}_{i}^{ * } \in \overline{{\mathcal{C}}_{t}^{p}}\right\rbrack \end{Vmatrix}}_{F}, \tag{7} Lexd=Ncd1fi∈Fn∑(fi−pb)1[yi∗∈Ctp]F,(7)
其中 pb{\mathbf{p}}_{b}pb 是背景的原型,Ncd{N}_{c}^{d}Ncd 表示 Fn{\mathbf{F}}_{n}Fn 中被删除类别的数量。
4.5 总损失
与 SDR 一致,为了保持全局原型的有效性,我们引入 Lpc{\mathcal{L}}_{pc}Lpc 以确保全局原型的有效性。更正式地,
Lpc=1∣St−1∣∥pc−p^c∥Fc∈St−1(8){\mathcal{L}}_{pc} = \frac{1}{\left| {\mathcal{S}}_{t - 1}\right| }{\begin{Vmatrix}{\mathbf{p}}_{c} - {\widehat{\mathbf{p}}}_{c}\end{Vmatrix}}_{F}\;c \in {\mathcal{S}}_{t - 1} \tag{8} Lpc=∣St−1∣1pc−pcFc∈St−1(8)
我们将蒸馏损失从之前学习的所有类别 St{\mathcal{S}}_{t}St 修改为仅保留的类别 Ctp{\mathcal{C}}_{t}^{p}Ctp,即,
Ldis =−1WH∑w,h∑c∈Ctpy′′(w,h,c)logy′(w,h,c),(9){\mathcal{L}}_{\text{dis }} = - \frac{1}{WH}\mathop{\sum }\limits_{{w,h}}\mathop{\sum }\limits_{{c \in {\mathcal{C}}_{t}^{p}}}{y}^{\prime \prime }\left( {w,h,c}\right) \log {y}^{\prime }\left( {w,h,c}\right) , \tag{9} Ldis =−WH1w,h∑c∈Ctp∑y′′(w,h,c)logy′(w,h,c),(9)
其中 y′′{y}^{\prime \prime }y′′ 是前一步(步骤 t−1t - 1t−1)模型的输出,以保持已学习类别的记忆。
因此,训练目标总结为:
Ltot=Lce+Ldis+Lpc+λp⋅(Linp+Lexp)+λd⋅(Lind+Lexd),(10){\mathcal{L}}_{tot} = {\mathcal{L}}_{ce} + {\mathcal{L}}_{dis} + {\mathcal{L}}_{pc} + {\lambda }_{p} \cdot \left( {{\mathcal{L}}_{in}^{p} + {\mathcal{L}}_{ex}^{p}}\right) + {\lambda }_{d} \cdot \left( {{\mathcal{L}}_{in}^{d} + {\mathcal{L}}_{ex}^{d}}\right) ,\quad (10) Ltot=Lce+Ldis+Lpc+λp⋅(Linp+Lexp)+λd⋅(Lind+Lexd),(10)
其中权重用于平衡多个损失。权重与 SDR 相同,除了 λp{\lambda }_{p}λp 和 λd{\lambda }_{d}λd。除非另有说明,λp=λd=0.001{\lambda }_{p} = {\lambda }_{d} = {0.001}λp=λd=0.001。不同 λp{\lambda }_{p}λp 和 λd{\lambda }_{d}λd 比率的结果已在敏感性分析部分展示。Lce{\mathcal{L}}_{ce}Lce 是用于学习新类别的交叉熵损失。对于分类任务,没有 Lexd{\mathcal{L}}_{ex}^{d}Lexd 损失。
5 实验
5.1 设置
数据集:对于分类任务,我们使用了三个广泛使用的终身学习基准数据集,即 CIFAR-100、CUB200-2011和 Stanford Cars。CUB200-2011 包含 200 个类别,共有 5,994 张训练图像和 5,794 张测试图像。CIFAR-100 总共包含 50,000 张训练图像和 10,000 张测试图像。Stanford Cars 包含 196 种汽车的 8,144 张训练图像和 8,041 张测试图像。分割实验在 VOC (Pascal-VOC2012) 上进行。VOC 包含 10,582 张训练集图像和 1,449 张验证集图像(我们将其用于测试,因为测试集未公开,所有竞争工作均如此处理)。每张图像的每个像素都被分配到一个从 21 个不同类别(20 个类别加上背景)中选择的语义标签。
使用交叉验证,即训练集的 20% 作为实际验证集。根据 [Shibata et al., 2021],每个任务的前 30% 类别属于删除集,而其他类别属于保留集。如果前 30%{30}\%30% 个类别的数量不是整数,我们使用向上取整的方法。我们使用通常使用的重叠设置进行数据集划分。在初始阶段,我们选择仅包含 C0{\mathcal{C}}_{0}C0 标记像素的训练图像子集。然后,每个增量步骤的训练集包含来自 Ct{\mathcal{C}}_{t}Ct 的标记像素的图像,即 Dt=X×YCt∪{b}{\mathcal{D}}_{t} = \mathcal{X} \times {\mathcal{Y}}_{{\mathcal{C}}_{t}\cup \{ b\} }Dt=X×YCt∪{b}。与初始步骤类似,标签仅限于 Ct{\mathcal{C}}_{t}Ct 中的语义类别,而其余像素被分配给 bbb(背景)。
实现细节:对于分类任务,如 MC [Shibata et al., 2021] 中所述,我们使用 ResNet-18作为模型。最后一层被更改为 MC 中的多头架构。网络针对每个任务训练 200 个 epoch。CIFAR-100 中的小批量大小为 128,CUB-200-2011 和 Stanford Cars 中的小批量大小为 32。权重衰减为 5.0×10−4{5.0} \times {10}^{-4}5.0×10−4,并使用 SGD 进行优化。采用标准的数据增强策略:随机裁剪、水平翻转和旋转。对于分割任务,我们使用标准的 Deeplab-v3+ [Chen et al., 2018] 架构,以 ResNet-101 [He et al., 2016] 为骨干网络,输出步长为 16。使用 SGD 进行优化,学习率策略、动量和权重衰减与 SDR 相同。第一个学习步骤的初始学习率为 10−2{10}^{-2}10−2,随后步骤的学习率降低至 10−3{10}^{-3}10−3。学习率按照幂为 0.9 的多项式衰减规则降低。在每个学习步骤中,我们以批量大小为 20 训练模型 30 个 epoch。在训练和验证期间,图像被裁剪为 512×512{512} \times {512}512×512,并应用相同的数据增强,即使用 0.5 到 2.0 的因子随机缩放输入图像,并进行随机左右翻转。
由于分割任务能够展示我们所有工作的有效性,我们在分割任务上进行了消融实验。所有骨干网络都使用在 ImageNet 上预训练的模型进行初始化。对于分割任务,我们的项目基于 ,而对于分类任务,项目则基于,即我们可以通过背景中的记忆代码或伪标签间接获取被遗忘类别的信息。我们使用 Pytorch 在两块 NVIDIA 3090 GPU 上开发和训练所有模型。新模型使用上一步模型的参数进行初始化。
对比方法的介绍:我们将提出的方法与流行且最先进的基于蒸馏的终身学习方法进行了比较。此外,我们还比较了专门为 LSF 任务修改的版本。总结来说,具体比较的方法如下:
-
FT:微调,仅使用分类损失进行训练,可以视为遗忘的上限。
-
EWC, MA, LwF, MiB, SSUL, SDR, 以及 MC。
-
LwF*, EWC*, MiB*, SDR*, 和 SSUL*:LwF、EWC、MiB 和 SDR 的修改版本,即蒸馏损失或限制参数的计算从所有类别改为仅保留的类别。
-
LE∗:LwF∗+EWC∗{\mathbf{{LE}}}^{ * } : {\mathrm{{LwF}}}^{ * } + {\mathrm{{EWC}}}^{ * }LE∗:LwF∗+EWC∗ .
-
LM*:LwF*+MAS。
-
MCE:MC+LwF∗+EWC∗{\mathbf{{MC}}}_{E} : \mathrm{{MC}} + {\mathrm{{LwF}}}^{ * } + {\mathrm{{EWC}}}^{ * }MCE:MC+LwF∗+EWC∗ .
-
MCM:MC+LwF∗+MAS{\mathbf{{MC}}}_{M} : \mathrm{{MC}} + {\mathrm{{LwF}}}^{ * } + \mathrm{{MAS}}MCM:MC+LwF∗+MAS .
评估指标:我们遵循 [Shibata et al., 2021] 的评估指标 SSS,称为选择性遗忘学习度量(LSFM)。LSFM 是终身学习中两个标准评估指标的调和平均值:保留类的平均准确率 At{A}_{t}At 和删除类的遗忘度量 Ft{F}_{t}Ft,即,
St=2⋅At⋅FtAt+Ft.(11){S}_{t} = \frac{2 \cdot {A}_{t} \cdot {F}_{t}}{{A}_{t} + {F}_{t}}. \tag{11} St=At+Ft2⋅At⋅Ft.(11)
平均准确率 At{A}_{t}At 在模型训练到第 ttt 个任务后进行评估。具体定义由 At=1t∑p=1tat,p{A}_{t} = \frac{1}{t}\mathop{\sum }\limits_{{p = 1}}^{t}{a}_{t,p}At=t1p=1∑tat,p 给出,其中 at,p{a}_{t,p}at,p 是在第 ttt 个任务训练完成后第 ppp 个任务的准确率。At{A}_{t}At 仅针对保留类进行评估。类似地,遗忘度量 Ft{F}_{t}Ft 在第 ttt 个任务完成后针对删除类进行计算。该度量由 Ft=1t∑p=1tftp{F}_{t} = \frac{1}{t}\mathop{\sum }\limits_{{p = 1}}^{t}{f}_{t}^{p}Ft=t1p=1∑tftp 给出,其中 ftp=maxl∈1⋯tal,p−at,p{f}_{t}^{p} = \mathop{\max }\limits_{{l \in 1\cdots t}}{a}_{l,p} - {a}_{t,p}ftp=l∈1⋯tmaxal,p−at,p 表示从过去到当前第 ppp 个任务准确率的最大差距(下降)。该度量仅针对删除类进行评估。At{A}_{t}At 和 Ft{F}_{t}Ft 的范围均为 [0,1]\left\lbrack {0,1}\right\rbrack[0,1]。我们还报告了在最后一个任务完成后 St,At{S}_{t},{A}_{t}St,At 和 Ft{F}_{t}Ft 的平均值,分别表示为 S,AS,AS,A 和 FFF。
5.2 结果
分类任务结果:各种方法在分类任务上的结果如表1所示。"任务:5,类别:20"表示有5个任务(步骤),每个任务学习20个类别。可以看出,LwF在保留类别的记忆方面表现出色,但在删除类别的表现上较差。虽然修改版本取得了一些改进,但仍不理想。EWC、MAS及其修改版本由于自身的局限性,在保留类别的记忆方面表现较差;相反,它们在删除类别的表现上具有一定的优势。这种优势并非源于其优于遗忘的能力,而是因为它们几乎忘记了所有旧类别。LE∗{\mathrm{{LE}}}^{ * }LE∗和LM∗{\mathrm{{LM}}}^{ * }LM∗作为LwF∗{\mathrm{{LwF}}}^{ * }LwF∗与基于参数更新约束方法的结合,极大地弥补了LwF∗{\mathrm{{LwF}}}^{ * }LwF∗在遗忘能力上的不足,并取得了非常显著的进展。作为专门为LSF任务设置的网络,MCE{\mathrm{{MC}}}_{E}MCE和MCD{\mathrm{{MC}}}_{D}MCD相比之前的方法取得了巨大进展。我们的方法组织特征(嵌入)空间,使类别分散,减少了不同类别之间的耦合。此外,我们直接分散删除类别的特征分布,使遗忘更加彻底。因此,我们在遗忘和记忆的综合性能上取得了最佳结果。
分割任务的结果:分割任务的结果如表 2 所示。针对增量分割任务,我们设定了三种学习规则,即 19-1(删除前六个类别)、15-5(删除前五个类别)和 15-1(删除前五个类别)。15-1 是在五个步骤中增量学习一个类别,其他两种规则类似。FT 在遗忘性能上表现最佳,但它会遗忘所有先前学习的类别,导致保留类别的准确率较低。与 FT 相比,LwF 在记忆能力上取得了显著进展,但在遗忘能力上损失较大。LwF∗{\mathrm{{LwF}}}^{ * }LwF∗ 的遗忘性能显著提升,而记忆能力并未显著下降甚至有所提高。MiB 和 MiB∗{\mathrm{{MiB}}}^{ * }MiB∗ 具有较强的记忆能力,但在所有三种学习设置中,其遗忘能力较差。SDR、SDR*、SSUL 和 SSUL* 在记忆能力上优于 LwF,在遗忘能力上优于 MiB\mathrm{{MiB}}MiB,因此可以视为一种折衷版本。尽管 MC 在遗忘能力上略有优势,但在记忆能力上存在较大劣势,这是因为它在训练期间将记忆代码作为额外信息添加到输入中,导致训练和测试时的特征分布不一致。我们的方法在整体性能上表现最佳,且优势显著,这证明了对比学习在分割任务中的 LSF 任务上的优势。
删除不同类别的结果:为了更全面地展示每种方法的性能,我们删除了不同数量的类别,结果如表3所示。由于MC在分割中的固有缺陷,我们在此不进行比较。当遗忘较少的类别(如仅遗忘一个类别)时,所有方法都表现良好,表明遗忘一个类别的难度较低。当遗忘10个类别时,每种方法的遗忘性能显著下降。在所有情况下,我们的方法都表现出最佳性能。
每周期结果:图2展示了训练期间的结果。可以看出,所有方法在学习新类别时表现相似(如右图所示),但在遗忘类别时差异很大。其他方法(包括LwF*、MiB和SDR)仅通过不计算删除类别的损失来遗忘类别,因此遗忘速度非常慢。这些方法更准确地描述为不学习而不是遗忘删除的类别。而我们的方法进行了有针对性的遗忘操作,并直接作用于特征提取部分,因此仅需5个周期即可将删除类别的准确率降低74.1(从89.3降至15.2)。总之,我们提出的在同一删除类别内分解特征的方法使得遗忘极其高效和快速。
特征可视化:图3展示了遗忘前后的特征分布。由于类别众多且混杂在一起,我们仅展示被删除类别的特征,并分别显示以更清晰地展示变化。可以看出,在遗忘操作后,同一类别的特征从之前的紧凑状态变得分散且不规则。
5.3 消融研究
不同损失函数的有效性:各损失函数的有效性结果如表4所示。其中,Lpc{\mathcal{L}}_{pc}Lpc 用于使全局和局部原型保持一致,也是后续一系列操作的基础。Linp{\mathcal{L}}_{in}^{p}Linp 和 Lexp{\mathcal{L}}_{ex}^{p}Lexp 用于保留保留类的特征紧凑性以保持记忆。可以看出,添加这两个损失函数后,保留类的准确性有所提高,但也导致删除类的遗忘不完全。这种现象可能是因为 Linp{\mathcal{L}}_{in}^{p}Linp 和 Lexp{\mathcal{L}}_{ex}^{p}Lexp 增加了类内的紧凑性,而没有分散操作,使得网络无法遗忘删除类。Lind{\mathcal{L}}_{in}^{d}Lind 是确保遗忘的关键,它打破了删除类的特征分布以实现遗忘。可以看出,当添加 Lin d{\mathcal{L}}_{\text{in }}^{d}Lin d 时,遗忘性能显著提高。没有 Linp{\mathcal{L}}_{in}^{p}Linp 和 Lexp,Lind{\mathcal{L}}_{ex}^{p},{\mathcal{L}}_{in}^{d}Lexp,Lind 也会导致保留类的性能下降。然而,当 Linp,Lexp{\mathcal{L}}_{in}^{p},{\mathcal{L}}_{ex}^{p}Linp,Lexp 和 Lind{\mathcal{L}}_{in}^{d}Lind 同时存在时,保留类的记忆和删除类的遗忘都可以得到保证。LSF 的实现得益于这三个损失函数使保留类的特征分布保持稳定,同时破坏删除类的特征分布。添加 Lexd{\mathcal{L}}_{ex}^{d}Lexd 后,删除类的结果不会影响保留类的性能,避免了误报,从而提高了性能。简而言之,所有损失函数都发挥了作用,缺一不可。
不同特征空间发散的有效性:为了彻底打破被删除类别的特征分布,除了对提取并用于最终分类的特征进行对比遗忘外,我们还添加了两个卷积以在更高维的嵌入空间中进行分散。不同嵌入空间中的对比遗忘结果如表5所示。添加 Fn∗{\mathbf{F}}_{n}^{ * }Fn∗ 在所有三种不同的学习设置中都取得了效果。然而,在添加 Fn∗∗{\mathbf{F}}_{n}^{* * }Fn∗∗ 后,效果并不明显且依次下降,这可能是因为被删除类别的特征在嵌入空间中已经足够分散以实现遗忘。简而言之,三个嵌入空间中的分散都能带来改进。
5.4 敏感性分析
保留类别的记忆和删除类别的遗忘是两个不同的目标,因此探索记忆损失 (Linp\left( {\mathcal{L}}_{in}^{p}\right.(Linp 和 Lexp)\left. {\mathcal{L}}_{ex}^{p}\right)Lexp) 以及遗忘损失 (Lind\left( {\mathcal{L}}_{in}^{d}\right.(Lind 和 Lexd)\left. {\mathcal{L}}_{ex}^{d}\right)Lexd) 的权重,即 λp{\lambda }_{p}λp 和 λd{\lambda }_{d}λd,具有重要意义。与 SDR 一致,从特征计算的损失乘以 0.001,即 1:11 : 11:1 实际上是 0.001:0.001。实验结果如图 4 所示。λp{\lambda }_{p}λp 对应于记忆,λd{\lambda }_{d}λd 对应于遗忘。当 λp{\lambda }_{p}λp 较大时,保留类别的平均准确率较高,但遗忘指标相对较差。当 λp{\lambda }_{p}λp 在比例 (λd\left( {\lambda }_{d}\right.(λd 逐渐变大并逐渐占主导地位时,遗忘指标变得更好,但准确率下降。这一现象与之前的分析一致。当 λd{\lambda }_{d}λd 较小时,删除类别的分布无法被打破,因此无法实现完全遗忘。当 λp{\lambda }_{p}λp 较小时,打破遗忘类别会影响保留类别的准确率,从而导致错误。因此,当两者比例为 1:1 时,效果最佳。
6 结论
本文提出了一种基于对比策略的LSF方法,通过计算删除类别的分散损失来执行直接遗忘,从而破坏删除类别的分布,快速实现选择性遗忘,同时不影响保留类别的特征分布。该方法的有效性在分类和分割任务中得到了验证。此外,遗忘操作在特征提取部分进行,因此可以轻松扩展到其他任务(几乎所有基于深度学习的模型都需要提取特征)。我们的方法对于在实际应用中持续安全地使用基于深度学习的软件具有重要意义。在未来的工作中,如何更好地处理已分散的删除类别的特征以防止误报是一个需要解决的问题。同样,从特征分布而非网络结构的角度探索神经网络的学习能力和可解释性也是一个值得探索的方向。