深度学习(增量学习)——ICCV2022:ContrastiveContinualLearning ⽂章⽬录
前⾔
CVPR2022上的增量⽂章有些繁杂,具体体现在不少⽂章提出了新的实验设置来评估模型,不是很合个⼈胃⼝,故总结的不多,但有⼀篇将因果推断与增量结合的⽂章很有趣,⽂章名为《Distilling Causal Effect of Data in Class-Incremental Learning》,ICCV2022上的增量⽂章⽐较常规,有不少⼯作将⾃监督与增量做结合,本⽂将总结《Contrastive Continual Learning》
Contrastive Continual Learning
蓝莓芝士蛋糕
⼀般⽽⾔,有监督算法会逐步过滤掉与任务⽆关的特征,例如雪梨和苹果的⼆分类任务,特征提取器器只需要编码颜⾊相关的特征,即可让分类器区分两者,这表明有监督编码的特征较为有限。如果我们能训练⼀个能编码冗余特征的特征提取器,即使特征提取器遗忘了部分特征,这些冗余特征可能也可以⽤来刻画新的类别,基于此,作者提出了使⽤⾃监督训练具有冗余特征的特征提取器,同时利⽤知识蒸馏抵抗灾难性遗忘。
设当前batch中共有张当前任务的图像,对这张图像分别施加两次数据增强,得到张图像,这张图像组成集合,为图像的正例集合,图像的正例集合包含图像数据增强后得到的图像,以及与图像同⼀类的图像,特征提取器针对图像的输出为,则Contrastive Continual Learning的损失函数为
其实就是InfoNCE的变种,为超参数,值得注意的是,旧样本只会作为对⽐学习中的负例,只参与计算中,如下所冬瓜怎么做好吃
⽰(IRD是知识蒸馏loss,下⽂会介绍),作者发现这么做效果会更好
设为batch中的图像集合,则上图中的为
N N 2N 2N S p i i i i i i z i L =asym sup log i ∈S ∑∣p ∣i −1j ∈p i ∑exp(z ∗z /T )∑k =i i k exp(z ∗z /T )i j (1.0)
补铁的食物和水果
T exp(z ∗∑k =i
五湖四海近义词i z /T )k M L sup L =sup log i ∈M ∑∣p ∣i −1j ∈p i ∑exp(z ∗z /T )∑k =i
i k exp(z ∗z /T )i j
为了抵抗灾难性遗忘,作者引⼊了知识蒸馏,针对图像,可以得到⼀个向量
其中
对于图像,设旧模型输出的式2.0为,新模型输出的式2.0为,则知识蒸馏的loss为
总的损失函数为
为超参数,上述流程为训练特征提取器,特征提取器训练完毕后,作者将freeze特征提取器,同时在顶层添加分类器,利⽤保留的旧数据和当前数据训练分类器,保存的旧数据总量是固定的。
实验
为了验证⾃监督相⽐于有监督,可以编码更多的特征,作者做了⼀个实验,持续学习完毕后,将特征提取器固定,同时提供所有的训练数据
训练分类器,在CIFAR10上,与有监督算法的对⽐如下图
我们看右边两幅图,这幅图表⽰学习完task i任务后,固定特征提取器,利⽤CIFAR10所有数据训练分类器,在CIFAR10上的准确率,可见⾃监督学习的确可以编码部分冗余特征,并且这类冗余特征有助于刻画后续的任务特征。
i P =[P ,P ,....P ,P ,....P ]i ,1i ,2i ,i −1i ,i +1i ,2N (2.0)
太阳图片卡通P =i ,j log exp(z ∗z /T )∑k =i
2N
i k exp(z ∗z /T )i j i P o P n L =IRD −P log P i =1∑2N o n (3.0)
七夕节干什么L =L +asym sup
λL IRD λ
创业3158
与其他method的实验对⽐如下图
思考
增量学习关注的是如何通过某种策略保留学到的旧知识,这篇⽂章并没有对此提出新的策略,反⽽是提出了如何让学到的特征更有助于编码新知识(这个问题是难以解决的,只能碰运⽓,⽐如新任务出现了严重的domain shift),换句话说,这篇⽂章只是给了⼀个策略⽤于构造较为鲁棒的特征空间,感觉上并没有解决增量学习的根源问题,有点写作⽂离题的感觉。但总体⽽⾔是值得发表的,这篇⽂章给⼈的insight便是⾃监督得到的模型能编码⼀些冗余特征,这类冗余特征可能有助于编码新任务。小孩喝酸奶好不好
⾃监督⼀般会引⼊额外的数据增强,如果有监督使⽤此类数据增强,是否也能让模型编码冗余特征?