概览:RKR这篇文章,基于网络结构进行增量学习。将新的类别的信息存储在额外的网络结构之中,文中称为rectification generator (RG)生成器和scaling factor generator (SFG)生成器。从而解决Few-shot和zero-shot增量学习的问题.
论文地址:
https://arxiv.org/abs/2103.16597
目录
-
一、贡献点概览
贡献点如下
- 不仅可以用于zero-shot 任务,也可以用于non zero-shot任务。
- 网络针对每个任务只需要学习额外的两个参数weight rectifications and scaling factors,这两个参数分别由rectification generator (RG)生成器和scaling factor generator (SFG)生成器生成,
- 因为rectification generator (RG)生成器和scaling factor generator (SFG)生成器的存在,网络结构的新增相比其他方法少了很多,相对节省了网络资源。
- 与现有的任务相比达到了State-of-the-art (甚至与一些基于特征回放的增量学习方法也达到了State-of-the-art)
二、方法
2.1 方法综述
本文的核心只有两个,rectification generator (RG)生成器和scaling factor generator (SFG)生成器。
- rectification generator (RG)生成器用于针对具体的增量任务,针对权重生成相应的矫正权重R,对权重weight进行矫正(element-wise的相加)。
- scaling factor generator (SFG)生成器针对具体的增量任务,针对feature-map生成feature-map的缩放F,用于对feature-map进行缩放(element-wise的相乘)
这也是题目rectification(矫正)的含义所在。即网络在保持原有权重的基础之上,通过矫正矩阵的矫正来适应新的增量任务。
2.2 权重矫正
假定网络第L层具有权重Θl,在增量任务中,学到了新的权重Θl*
,那么这两个权重之间就存在误差,因为增量任务学到的Θl*
与旧权重Θl
并不匹配,这也就是增量学习中灾难性遗忘的来源。
针对增量任务t,本文希望通过Rlt对原始权重进行矫正,从而在保持原有网络权重Θl
的基础上,针对具体的增量任务t生成Rlt
来保持增量的知识。公式如下:
即base权重Θl加上针对t任务的矫正矩阵Rlt
,生成了针对t任务的矩阵Θlt
。
- t表示具体的增量任务
- 小写字母l表示第l层
- 圆圈加号表示element-wise的相加。
- 生成矫正矩阵Rlt
的任务就是rectification generator (RG)生成器来完成。
同理,对于featuremap而言,公式如下:
即第l层的输出featuremap Olt,由缩放矩阵Flt
进行缩放,从而试应增量任务t
- t表示具体的增量任务
- 小写字母l表示第l层
- 圆圈乘号表示element-wise的相乘
- 生成缩放矩阵Flt
的任务就是scaling factor generator (SFG)生成器来完成。
图片表示如下:
卷积层如上图所示,很容易理解,RG网络生成R,用于对权重进行相加矫正,SFG网络生成F,用于对featuremap进行相乘矫正。
全连接层与卷积层类似:
Fc层仅仅是权重和featuremap的尺寸与conv层不同。
2.3 RG和SFG网络的具体实现
假定网络第l层的权重Θl具有尺寸W*H*Ci*Co (宽*高*输入通道*输出通道),则对应的变换矩阵Rlt也应该与其具有相同的尺寸。因此RG网络的任务就是生成一个W*H*Ci*Co (宽*高*输入通道*输出通道)尺寸的变换矩阵Rlt
作者为了网络容量,rectification generator (RG) 需要学习比变换矩阵R更小尺寸的东西,因此作者将R变换为了两个矩阵相乘,这两个矩阵分别是 K*H*Co和K*W*Ci维度,这两个矩阵进行矩阵乘,就能得到尺寸为R的W*H*Ci*Co的矫正矩阵R。其中K<<H*Co且K<<W*Ci,这就保证了RG网络存储这两个张量花费很少的开销。
即变换矩阵R通过两个更小的矩阵相乘得来,RG网络只需要针对增量任务t学会这两个gg小的矩阵即可。
Scaling factor generator (SFG)生成器的作用与RG生成器类似。
- RG是针对权重,SFG是针对feature-map,
- RG是与权重相加,SFG是与feature-map相乘
- SFG依然通过两个更小的张量相乘获得缩放矩阵F
Conv是这样的,fc就不详细推了,很接近,想详细了解的去看论文。
2.4 新增内存占用
相当于本文的方法针对每个增量任务t多一个RG网络和SFG网络。那么每一个增量任务需要多存RG网络和SFG网络的网络容量。每层增加的网络权重百分比如下:
分母即新增的网络权重,分子为原来网络的的权重。
(贡献点里面声称此新增的权重相比其他方法少很多,但是后面的实验验证貌似并不充分,到底是不是这样,有没有其他更好的新增的网络开销的方法,有待考证)
作者不充分的实验见实验部分
三、实验
3.1准确率
作者实验较多,这里不做详细解析,需要的话参考原论文,原论文链接在文章顶部。
这里随便摘几个比较重要的
多次增量准确率下降情况。可以看出本文与其他方法对比是最优的,抵抗遗忘能力较强。
在imageNet数据集上准确率较高。
本文方法RKR的准确率甚至好过基于特征回放的增量学习方法的准确率。
多次增量准确率下降情况。可以看出本文与其他方法对比是最优的,抵抗遗忘能力较强。
在imageNet-1k数据集上准确率依然较高。
本文方法RKR的准确率甚至好过基于特征回放的增量学习方法的准确率。
3.2 内存占用
前面说过论文的内存占用见2.4,这里作者新增的内存容量只与自己进行了对比。
通过参数量和运算量FLOPS来对比。
四、总结
针对增量新增两个矫正网络,存储增量的信息,同时保留了原有的base信息,避免了灾难性遗忘。