基于泛化特征表示和自适应蒸馏的类增量图像识别方法



1.本发明属于图像处理技术领域,具体涉及一种基于泛化特征表示和自适应蒸馏的类增量图像识别方法。


背景技术:



2.传统的深度学习方法遵循“一次训练”的策略,即一次性收集所有目标类别的数据来进行训练。这种范式的深度学习方法在很多领域应用取得了优异的结果,但是在大多数的现实场景中,“一次训练”通常是不可行的。这些现实场景很难一次性获得所有的目标类别数据,因此要求模型可以处理连续到来的数据流,即不断地学习新的类别。
3.现有类增量学习方法通常在模型学习新类别时施加约束,以减缓旧类别的遗忘。然而这种方法在学习新类别时通常会造成旧类别精度的大幅下降。另外一种方法是为新类别分配未使用的参数或者增加部分网络结构。然而此类方法造成模型的参数量不断增加,导致更大的计算开销。


技术实现要素:



4.本发明的内容是提供一种基于泛化特征表示和自适应蒸馏的类增量学习方法,其能够克服现有技术的某种或某些缺陷。
5.本发明的基于泛化特征表示和自适应蒸馏的类增量图像识别方法,其包括以下步骤:
6.步骤1:构建用于图像识别的深度学习网络,所述深度学习网络依次包括特征提取网络、泛化特征表示正则模块和分类器;
7.特征提取网络用于获取输入图像的特征图;
8.泛化特征表示正则模块包括三个不同尺度的池化层,对于特征提取网络提取的特征图,通过泛化特征表示正则模块将其池化处理到不同尺度后,再拉直为向量并拼接,再将拼接成的向量输入分类器;
9.分类器用于对指定的目标类别进行分类输出,即输出当前输入对象属于各目标类别的概率,基于最大概率确定分类结果,从而得到图像识别结果;
10.基于构建的深度学习网络学习第一批目标类别;
11.步骤2:学习第t(t初始化为2,t》1)批目标类别时,采用的损失函数为:
12.l=l
cls

t
,x,y)+ryl
dis

t

t-1
,x)
13.其中,l
cls
()表示分类损失函数,l
dis
()表示蒸馏损失函数,φ
t
和φ
t-1
分别代表学习第t批和t-1批目标类别时的深度学习网络(φ
t
和φ
t-1
的网络结构相同,网络参数不同),x表示输入深度学习网络的其中的一张图片,y表示图片x的标签,ry表示类别y的蒸馏强度
14.步骤3:回到步骤2,将t加1,循环此过程直到学习完所有类别,基于学习后的深度学习网络获取目标图像的图像识别结果。
15.进一步的,蒸馏强度由自适应蒸馏算法动态调整的方式为:
16.(a)判断目标的批次,若为第二批,则执行步骤(b),否则执行步骤(c);
17.(b)将所有旧类别的新蒸馏强度r
new
=[r
n1
,r
n2

,r
ni

,r
nm
]初始化为0,旧蒸馏强度r
old
=[r
o1
,r
o2
·

,r
oi

,r
om
]初始化为1;其中,r
ni
表示类别i的新蒸馏强度,r
oi
表示类别i的旧蒸馏强度,i=1,2,

,m;m表示类别数量;
[0018]
(c)将所有旧类别的新蒸馏强度r
new
=[r
n1
,r
n2

,r
ni

,r
nm
]初始化为0,获取学习上一批目标时存储的r
old

[0019]
(d)将存储的关于旧类别i的所有图片分别输入模型φ
t
和φ
t-1
并得到预测结果,基于各自的预测结果分别得到模型φ
t
和φ
t-1
的交叉熵损失的均值t
ce
和(t-1)
ce
,并定义gap表示交叉熵损失的均值t
ce
和(t-1)
ce
的差;
[0020]
(e)更新类别i的蒸馏强度:r
ni
=β*r
oi
+(1-β)*gap,β表示设置的超参数,取值为0~1;
[0021]
(f)返回(d),直到所有旧类别的蒸馏强度均得到更新;
[0022]
(g)令r
old
等于r
new
并存储。
[0023]
本发明提供的技术方案至少带来如下有益效果:
[0024]
本发明能有效避免学习新的类别时造成的旧类别遗忘,并且不额外增加模型参数量或网络结构。本发明有效提升了图像识别模型处理类增量数据的识别性能。
附图说明
[0025]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0026]
图1为本发明的基于泛化特征表示和自适应蒸馏的类增量图像识别方法的处理过程示意图。
[0027]
图2为本发明实施例提供的图像识别方法与现有技术的性能曲线对比图。
具体实施方式
[0028]
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0029]
本发明实施例提供的基于泛化特征表示和自适应蒸馏的类增量图像识别方法,利用泛化特征表示正则模块约束网络骨干学习更泛化的特征表示,从而兼顾新知识的容纳和旧知识的保持;以及利用自适应蒸馏算法动态地调整在学习新类别时用来保持旧类别知识的蒸馏方法的强度。如图1所示,本实施例提供的基于泛化特征表示和自适应蒸馏的类增量图像识别方法,其包括以下步骤:
[0030]
步骤一:构建插入了泛化特征表示正则模块的深度学习网络(用于图像识别,即识别目标对象的分类)并学习第一批目标类别;
[0031]
如图1所示,插入了泛化特征表示正则模块的深度学习网络用泛化特征表示正则模块替换了常规分类网络采用的全局平均池化层。泛化特征正则模块(gfr)由三个不同尺度的池化层p1,p2,p3组成。对于输入的特征图f,gfr将f池化到不同尺度后再直接拉直为向
量并拼接起来,将拼接成的向量输入分类器进行分类。优该池化的作用在于约束卷积骨干学到更泛化的特征。
[0032]
步骤二:如图1所示,学习第t(t初始化为2,t》1)批目标类别,同时使用蒸馏约束来减少网络对旧类别的遗忘;网络所采用的损失函数包含一个分类损失l
cls
和一个蒸馏损失l
dis

[0033]
l=l
cls

t
,x,y)+ryl
dis

t

t-1
,x)
[0034]
其中,φ
t
和φ
t-1
分别代表学习第t批和t-1批目标类别时的网络模型(图像识别的网络模型,具体网络模型结构不限,可采用任一本领域惯用的图像识别网络模型);x表示其中的一张图片,y是x对应的标签;ry是关于类别y的蒸馏强度。根据不同的任务可以选择不同的分类损失和蒸馏损失,常用分类损失和蒸馏损失分别是交叉熵和kl(kullback-leibler)散度。蒸馏约束的强度由自适应蒸馏算法动态调整,具体方式如下:
[0035]
(a)判断是第几批目标,若为第二批转(b),否则转(c);
[0036]
(b)将所有旧类别的新蒸馏强度r
new
=[r
n1
,r
n2

,r
nm
]初始化为0,旧蒸馏强度r
old
=[r
o1
,r
o2

,r
om
]初始化为1;
[0037]
(c)将所有旧类别的新蒸馏强度r
new
=[r
n1
,r
n2

,r
nm
]初始化为0,获取学习上一批目标时存储的r
old

[0038]
(d)将所存的关于旧类别i的所有图片分别输入模型φ
t
和φ
t-1
并得到预测结果,并分别得到交叉熵损失的均值t
ce
和(t-1)
ce
以及两者的差gap;
[0039]
(e)采用动量更新的准则来更新类别i的蒸馏强度,即r
ni
=β*r
oi
+(1-β)*gap,β是设置的超参数,取值为0~1;
[0040]
(f)返回(d),直到所有旧类别的蒸馏强度均得到更新;
[0041]
(g)令r
old
等于r
new
并存储。
[0042]
值得注意的是学习新任务时,只能获得极少部分旧类别的图片,并且蒸馏约束自学习第二批目标类别时开始启用;自适应蒸馏算法在每个训练epoch后调用。
[0043]
步骤三:回到步骤2,将t加1。循环此过程直到学习完所有批次。从而得到训练好的图像识别模型,并用于对目标图像的图像识别,获取目标图像的图像识别结果。
[0044]
表1:cifar-100上的结果(top-1准确率%),在三个不同的类别顺序取平均值。
[0045]
[0046]
将本发明与两种基线进行了结合,在图像分类是数据集cifar-100上与当前表现比较突出的基于深度学习的图像分类方法进行比较。如表1所示,本发明方法能持续的给不同的方法带来提升,并且得到了远超之前最先进方法的结果。这种显著的改进体现了本发明的有效性以及在各种类增量场景中的强大泛化能力。在图2中也可以观察到,本发明在所有批次设定中的每一批次都始终优于其他方法。这一进步证明了本发明在复杂类增量场景中的有效性。
[0047]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
[0048]
以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

技术特征:


1.基于泛化特征表示和自适应蒸馏的类增量图像识别方法,其特征在于,包括下列步骤:步骤1:构建用于图像识别的深度学习网络,所述深度学习网络依次包括特征提取网络、泛化特征表示正则模块和分类器;特征提取网络用于获取输入图像的特征图;泛化特征表示正则模块包括三个不同尺度的池化层,对于特征提取网络提取的特征图,通过泛化特征表示正则模块将其池化处理到不同尺度后,再拉直为向量并拼接,再将拼接成的向量输入分类器;分类器用于对指定的目标类别进行分类输出;基于构建的深度学习网络学习第一批目标类别;步骤2:学习第t批目标类别时,采用的损失函数为:l=l
cls

t
,x,y)+r
y
l
dis

t
,φ
t-1
,x)其中,l
cls
()表示分类损失函数,l
dis
()表示蒸馏损失函数,φ
t
和φ
t-1
分别代表学习第t批和t-1批目标类别时的深度学习网络,x表示输入深度学习网络的其中的一张图片,y表示图片x的标签,r
y
表示类别y的蒸馏强度,t的初始值为2,且t>1;步骤3:令t自增1,继续执行步骤2,循环此过程直到学习完所有类别,基于学习后的深度学习网络获取目标图像的图像识别结果。2.如权利要求1所述的方法,其特征在于,蒸馏强度由自适应蒸馏算法动态调整的方式为:(a)判断目标的批次,若为第二批,则执行步骤(b),否则执行步骤(c);(b)将所有旧类别的新蒸馏强度r
new
=[r
n1
,r
n2

,r
ni

,r
nm
]初始化为0,旧蒸馏强度r
old
=[r
o1
,r
o2

,r
oi

,r
om
]初始化为1;其中,r
ni
表示类别i的新蒸馏强度,r
oi
表示类别i的旧蒸馏强度,i=1,2,

,m;m表示类别数量;(c)将所有旧类别的新蒸馏强度r
new
=[r
n1
,r
n2

,r
ni

,r
nm
]初始化为0,获取学习上一批目标时存储的r
old
;(d)将存储的关于旧类别i的所有图片分别输入深度学习网络φ
t
和φ
t-1
并得目标分类的到预测结果,基于各自的预测结果分别得到模型φ
t
和φ
t-1
的交叉熵损失的均值t
ce
和(t-1)
ce
,并定义gap表示交叉熵损失的均值t
ce
和(t-1)
ce
的差;(e)更新类别i的蒸馏强度:r
ni
=β*r
oi
+(1-β)*gap,β表示设置的超参数,取值为0~1;(f)返回步骤(d),直到所有旧类别的蒸馏强度均得到更新;(g)令r
old
等于r
new
并存储。

技术总结


本发明公开了一种基于泛化特征表示和自适应蒸馏的类增量图像识别方法,属于图像处理和深度学习领域,本发明方法包括:利用泛化特征表示正则模块约束网络骨干学习更泛化的特征表示,从而兼顾新知识的容纳和旧知识的保持;利用自适应蒸馏算法动态地调整在学习新类别时用来保持旧类别知识的蒸馏方法的强度。本发明能有效避免学习新的类别时造成的旧类别遗忘的现象,并且不额外增加模型参数量或网络结构。本发明有效提升了模型处理类增量问题的性能。性能。性能。


技术研发人员:

许林峰 王志川 邱子欢 吴庆波 潘力立 孟凡满 李宏亮

受保护的技术使用者:

电子科技大学

技术研发日:

2022.09.21

技术公布日:

2022/12/16

本文发布于:2024-09-24 17:18:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/41069.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类别   特征   强度   图像
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议