小全读论文《iCaRL: Incremental classifier and representation learning》CVPR2017

一、Motivation

人是能不断地去学习新知识和识别新的类别,但是传统的训练策略必须要求所有的数据类别是提前知道的,并进行统一地训练。本文关注的是增量学习class-incremental learning,建立一个系统增量地学习新的类别。在这里插入图片描述
本文提出,增量学习应该满足三个性质:
1)针对不同时刻出现的数据,模型应是可训练的;(只要有新的数据来,你就能训
2)在任意时刻,模型能对已经出现的数据能呈现比较高的性能;(你训的时候不能乱训,要保证性能
3)时间和空间资源应该是有限制的,或者说随着类别的增长,资源的增长是缓慢的;(训的同时,考虑时间和空间,训起来很慢或者需要用到很多磁盘空间都不行

二、Approach

本文提出的iCaRL(incremental classifier and representation learning)的主要贡献点有以下三点:
1)基于样本均值的分类器,nearest-mean-of-exemplars classifier
2)基于羊群效应的优先样本选择策略(prioritized exemplar selection based on herding)
3)基于知识蒸馏和原型重塑的特征表达学习(representation learning using knowledge distillation and prototype rehearsal)

此外,针对于增量学习的问题,本文提出了利用一个样本集去记录旧类别的少量图片,这个样本集的空间是有限的,只能储存 K K K张图片,本文利用这个有限空间的样本集去辅助进行训练和测试。首先,我们从宏观的角度看算法的训练和测试策略,然后再细说上述三点的设计原理和细节

训练

在这里插入图片描述
X s X^s Xs表示 s s s类别的训练图片集, θ \theta θ表示模型参数, K K K表示样本集可以保留的最多的图片数量, P P P表示当前的样本集。具体地,
1)先利用当前类别的训练图片集和旧类别的图片集,训练更新参数 θ \theta θ(UPDATEREPRESENTATION)
2)确定当前每个类别可保留的图片数量 m m m,对旧类别样本集进行删减 (REDUCEEXEMPLARSET)
3)对当前类别图片构造其样本集 (CONSTRUCTEXEMPLARSET)

测试

在这里插入图片描述
与传统的FC-based的分类器不同,本文采取的是nearest-mean-of-exemplars分类器,求类别的样本平均作为该类别的原型(prototype,即类别的整体表征),对于一个测试样本,选取距离最近的原型作为预测结果。值得注意的是训练结束后,我们更新了训练样本集 P P P,我们只用 P P P里面的样本求每个类别的表征。

!!!为什么这里采用nearest-mean-of-exemplars分类器?
原因有二:
1)传统的卷积网络采取的是FC分类器,这是一个与前面的卷积层独立的层,两者是解耦的(decoupled),所以在增量学习一旦卷积层发生了变化,该FC必须要随着而做出改变,否则将会预测结果必然会很糟糕。而nearest-mean-of-exemplars分类器使得分类器是依赖于 CNN层的,当卷积层发生变化的时候,分类器会自适应地进行改变和修正。
2)但是合理地构造样本集,我们可以得到一个与真实值或者理想值逼近的样本均值,从而保障旧数据上的性能,一定程度上可减轻灾难性遗忘的问题(具体的构造过程详见下面部分)

表征学习(Representation Learning)

Representation Learning指的是上述训练中UPDATEREPRESENTATION的过程。训练过程的流程图如下:
在这里插入图片描述
表征学习过程要解决的一个关键问题是:如何很好地保留之前类别的信息,本文采取了两个关键的设计去解决这个问题:
1)利用有限空间的样本集储存旧类别的“代表性”的少量样本,利用这些样本去训练网络
2)设计了一个知识蒸馏的loss,通过保留旧网络的知识的方式达到保留之前类别的信息
具体地,
1)首先,当前的训练集合包括了样本集以及当前类别的训练数据。首先提取样本在旧模型上的响应 q i y q_i^y qiy,上述算法中的
g y ( x i ) = 1 1 + e x p ( − a y ( x ) ) , a y ( x ) = w y T ϕ ( x ) g_y(x_i)=\frac{1}{1+exp(-a_y(x))}, a_y(x) = w_y^T\phi(x) gy(xi)=1+exp(ay(x))1,ay(x)=wyTϕ(x)
其中 w y , ϕ w_y, \phi wy,ϕ分别表示测试过程中的类别表征(prototype,即 μ y \mu_y μy)和特征提取器。
2)利用所有的训练集合数据,用下面loss求梯度,对参数进行更新
l ( θ ) = l c l a s s i f i c a t i o n ( θ ) + l d i s t i l l a t i o n ( θ ) l(\theta)=l_{classification}(\theta) + l_{distillation}(\theta) l(θ)=lclassification(θ)+ldistillation(θ)
其中,
l c l a s s i f i c a t i o n ( θ ) = − ∑ ( x i , y i ) ∈ D ∑ y = s t δ y = y i l o g g y ( x i ) + δ y ≠ y i ( 1 − l o g g y ( x i ) ) l_{classification}(\theta)=-\sum_{(x_i,y_i)\in D}\sum_{y=s}^t \delta_{y=y_i} logg_y(x_i) + \delta_{y\ne y_i} (1-logg_y(x_i)) lclassification(θ)=(xi,yi)Dy=stδy=yiloggy(xi)+δy=yi(1loggy(xi))
l d i s t i l l a t i o n ( θ ) = − ∑ ( x i , y i ) ∈ D ∑ y = 1 s − 1 q i y l o g g y ( x i ) + ( 1 − q i y ) ( 1 − l o g g y ( x i ) ) l_{distillation}(\theta)=-\sum_{(x_i,y_i)\in D}\sum_{y=1}^{s-1} q_i^y logg_y(x_i) + (1-q_i^y)(1-logg_y(x_i)) ldistillation(θ)=(xi,yi)Dy=1s1qiyloggy(xi)+(1qiy)(1loggy(xi))
该loss包含了两项内容,一个是分类的loss,使得数据能区分当前类别数据以及样本集中数据,另一个是蒸馏的loss,使得当前数据的相应能尽可能地逼近其在旧模型上的响应
值得注意的是,这里模型的输出并不是softmax后的结果,而是对每一个输出值做一个sigmoid操作,分类的loss其实采用的是一个多分类loss(可认为是n个二分类),因此loss形式上与Learning Without Forget的有所区别

样本集的管理

一旦模型基于当前的训练数据训练完毕之后,我们需要对样本集进行管理,因为样本集的空间是有限的,所以需要考虑对旧类别的样本集进行删减以及构造新类别的样本集

新类别样本集的构建(CONSTRUCTEXEMPLARSET)

在这里插入图片描述
对于新的类别,本文根据上述的方式选择样本,依次选择新的样本使得样本均值与真实样本均值的差异最小。因此***构造的样本序列的顺序是有意义的,越往前的样本,可被认为是越重要的,对样本均值贡献越大***。

!!!拓展问题:是否存在这种情况,即加入的新样本使得样本均值与真实值的差异越来越大,这种情况下是否可以选择停止加入新样本?

旧类别样本集的删减(REDUCEEXEMPLARSET)

在这里插入图片描述
上述构造样本集的过程使得样本集的顺序是有意义的,越往前的样本,重要性越高,因此删除样本集的过程可以简单地从样本集的末后进行依次删减。

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值