一种基于知识蒸馏的卷积神经网络优化方法与流程

文档序号:15853376发布日期:2018-11-07 10:32阅读:415来源:国知局
一种基于知识蒸馏的卷积神经网络优化方法与流程

本发明涉及一种基于知识蒸馏的卷积神经网络优化方法。

背景技术

目前,深度学习由于其强大的表征能力,提取的特征相比传统方法手工构造的特征具有更强的鲁棒性,因此以卷积神经网络(cnn)为代表的深度学习技术被广泛应用于图像分类、目标检测、图像分割等多种传统计算机视觉任务中。其中,在图像分类中cnn应用的典型方式是基于交叉熵方法作为损失函数,进行cnn模型的训练。

近年来,深度学习的发展呈现三大趋势:模型结构日趋复杂、模型层次不断加深、海量数据集不断发展。然而,随着在移动端及嵌入式平台运用cnn进行边缘计算的需求不断攀升,由于边缘侧计算平台资源受限,要求cnn模型尽可能的小,并且计算效率高。为此,近年来学术界和工业界提出了各种类型的模型压缩方法,如模型剪枝、低秩分解、模型参数低精度量化等。hinton等在2014年的论文distillingtheknowledgeinaneuralnetwork中,提出了一种知识蒸馏的方法,可将一个在大型的训练数据集上训练得到的大型cnn作为教师网络,并以一个小型cnn作为学生网络,通过联合训练教师网络输出的概率分布向量和训练集的人工标注,对学生网络进行训练。他们证明了这种方法可以克服小型cnn在大数据集上的训练困难性,训练完成后可在分类任务上取得接近或超过教师网络的测试结果。该方法可以视为一种知识迁移的手段,将知识从教师网络通过训练迁移到学生网络上。完成迁移后通过设计目标为小快灵的学生网络代替大而笨重的教师网络,进行任务运用,从而大大便利了深度学习在边缘侧平台的部署。

在hinton等提出知识蒸馏理论后,romero等提出了一种新的方法,即通过在教师网络和学生网络的中间层中进行特征匹配,从而提供了一种可靠的监督信号(hint),对具有大深度结构的学生网络的训练进行有效的指导,从而克服了hinton方法的弱点,使得大深度网络的知识蒸馏成为可能。

目前现有知识蒸馏技术主要是针对用于分类的cnn网络进行研究。另一方面,在深度学习技术的应用层面,例如目前以人脸识别为代表的相关应用蓬勃发展,各种场景层出不穷,这对于人脸检测算法的鲁棒性提出了挑战。例如,由于人脸距离摄像头远近的不同,不同的人或同一人在不同时刻,在图像中呈现较大的尺度差异。类似的,其他类型的目标检测在特定场景下也会存在这种问题。许多目标检测算法即便以cnn作为基础,其对于检测尺度较小的目标表现仍不够好。因此,lin等提出了一种多尺度的目标检测网络,称为特征金字塔网络(fpn),其骨干网络(backbone)典型来说,基于以resnet为代表的大深度模型,同时融合多尺度特征检测目标,取得了非常好的检测性能,相对于传统算法在小目标检测等方面体现了优势。但是,由于采用类似resnet这种规模较大的骨干网络,若在边缘侧平台部署fpn则存在计算、存储等诸多局限。本发明对于fpn进行知识蒸馏,在维持fpn的目标检测性能的同时,降低其网络规模和计算负载,从而有利于其在边缘侧平台部署。

fpn的背景:

图1是典型的目标检测网络如fasterr-cnn的情况,输入图像从其骨干网(如resnet)的第一层进入,数据一直前向传播到末层后进行目标检测相关的预测,因此是一种单尺度下的结构,而不包含金字塔式多尺度的设计。

图2是fpn的概略图,可见数据除了普通自底向上的、从第一层到末层的backbone以内的传播以外,还有自顶向下的连接,以及水平的连接,以便产生额外的特征金字塔(概略图右半部分)。

图3细节地呈现了特征金字塔层间的水平连接及自顶向下的连接,可见fpn在骨干网之外增加了额外的1x1卷积层、上采样和eltwise层。

由于fpn可以在特征金字塔的每一层进行目标检测相关的预测,因此便产生了普通目标检测网络所不具备的多尺度目标检测的优势。

针对普通的目标检测网络,chen等在文献learningefficientobjectdetectionmodelswithknowledgedistillation中提出了一种知识蒸馏的方法。其中,考虑到目标检测任务与基本的分类任务的不同,针对性地设计了训练网络所需的损失函数,并且训练时在骨干网上附着了教师网络与学生网络之间的特征适配层。

但fpn作为一种多尺度结构的特殊目标检测网络,并不适用于直接用该文献的方法进行知识蒸馏。比如,chen文献设计的特征适配层,是直接在骨干网上桥接教师网络与学生网络,进行它们之间的中间特征适配。由于其设计,用于检测任务的特征也的确是在骨干网上产生的,因此是合适的。然而fpn却并非直接使用骨干网中输出的特征,而是在骨干网之外增加了额外的附加结构,而运用于检测任务的特征恰恰是在这些结构中输出的,因此若将上述方法同样用于fpn就并不适宜了。

又如,文献方法仅有一个特征适配层,因为其仅基于单尺度的任务,因此无可厚非。但fpn不同,它是多个特征输出供多尺度任务使用,因此如果仅有一个特征适配层,未必能很好的保证教师网络和学生网络之间多尺度特征的良好匹配。



技术实现要素:

为了克服现有技术的缺点,本发明提供了一种基于知识蒸馏的卷积神经网络优化方法,本发明设计了一种多尺度的知识蒸馏方法,使其更好地适用于多尺度目标检测网络fpn。

本发明所采用的技术方案是:一种基于知识蒸馏的卷积神经网络优化方法,从fpn的特征金字塔部分的附加结构中选取位置建立桥接;在教师fpn网络t与学生fpn网络s之间的桥接位置建立多个特征适配层;采用层次加权的多尺度损失函数用作网络训练的损失函数。

与现有技术相比,本发明的积极效果是:

一方面,基于本发明的知识蒸馏设计,在教师fpn网络指导下训练学生fpn网络,能够将复杂的教师fpn网络进行压缩,得到一个规模更小、计算更快的学生fpn网络。较之于现有基于cnn的目标检测技术直接使用fpn,更便于进行边缘侧计算的部署。

另一方面考虑知识蒸馏的方式,较之现有的知识蒸馏技术,本发明能够更好的适配多尺度目标检测网络fpn,能更好的训练出高质量的学生fpn网络。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1为典型的目标检测网络的情况;

图2为fpn的概略图;

图3为特征金字塔层间的水平连接及自顶向下的连接示意图。

具体实施方式

本发明方法包括如下内容:

首先,本发明将特征适配层设计在骨干网的附加结构上,以区别于chen文献在骨干网络部分进行教师网络与学生网络之间的特征适配。

其次,本发明在骨干网附加结构上设计的是多个(可选的)特征适配层,以便基于它们在教师网络与学生网络之间,进行与多尺度特征金字塔相适应的、多层特征之间成对的特征匹配。

第三,在损失函数的设计方面,本发明考虑到fpn多尺度目标检测的功能,设计了一种多层次损失加权的多尺度损失函数,以区别于chen文献。

具体来说,主要分结构、损失函数两大部分论述。

首先在结构上,本发明采取与chen文献类似的特征适配方法,即在教师网络和学生网络之间的桥接位置上用1x1卷积层进行特征适配。1x1卷积的作用主要是使得作为输入的教师网络中间层特征图(featuremap)的通道数,适配作为输出的学生网络中间层特征图的通道数。

但与chen文献本质不同的是,本发明并不是从骨干网中选取位置建立桥接,而是从fpn的特征金字塔部分的附加结构中选取位置建立桥接。

假设教师fpn网络t附加结构输出特征图数量为nt,而学生fpn网络s附加结构输出特征图数量为ns,则本发明在t与s之间建立n个特征适配层,其中1≤n≤n,n=min(nt,ns)。换句话说,假设学生网络的附加结构输出特征图较少,则本发明建立适配层的数量范围在[1,ns]之间;反之若教师网络附加结构的输出特征图较少,则适配层的数量范围在[1,nt]之间。

假设nt与ns均为4,则适配层的取值范围为1~4。

以fpn原始文献中将resnet作为骨干网的情况为例,假设t与s结构相同,设{c2,c3,c4,c5}为resnet中conv2,conv3,conv4,conv5这几个卷积层的输出特征图,而fpn附加结构中的{p2,p3,p4,p5}分别为与骨干网上的{c2,c3,c4,c5}同样大小的输出特征图。若分别以后缀_t和后缀_s区分t上的{p2,p3,p4,p5}和s上的{p2,p3,p4,p5},则本实施例基于{p2_t,p3_t,p4_t,p5_t}和{p2_s,p3_s,p4_s,p5_s}这几个特征图选择适配层的定位。

如取n=1,则本实施例选择的适配层位置为集合{(p2_t,p2_s),(p3_t,p3_s),(p4_t,p4_s),(p5_t,p5_s)}中的任意一个。以(p2_t,p2_s)为例,意为以t的p2_t作为适配层的输入,经过1x1卷积后输出到s中,与s的p2_s进行特征匹配,以此类推。优选的,选择适配层位置为(p3_t,p3_s)或(p4_t,p4_s),即在可选位置中,选择相对居中的位置建立桥接。

如取n=4,则4个特征适配层的位置为{(p2_t,p2_s),(p3_t,p3_s),(p4_t,p4_s),(p5_t,p5_s)}。

如n取中等值,例如n=2,则优选的,可在{(p2_t,p2_s),(p3_t,p3_s)}中选一个位置建立桥接,然后在{(p4_t,p4_s),(p5_t,p5_s)}中再选一个位置建立桥接。

假设在t与s之间建立多个桥接,则其中任意两个桥接(pi_t,pk_s),(pj_t,pl_s)位置关系,均须满足约束:(1)i不等于j,且k不等于1;(2)如果i>j,则需k>1。这样确保各桥接的位置无重合,且t与s之间的各桥接位置不存在特征尺度上的交叉。

第二,在用于网络训练的损失函数的设计上。chen文献的方法是,在目标检测网络中的rpn(区域推荐网络)部分和rcn(区域分类及框回归)部分的损失项lrpn和lrcn分别为:

其中λ是超参数,n是rcn的batch大小,m是rpn的batch大小,分类损失lcls是基于groundtruth标签的softmax硬损失以及基于知识蒸馏的软损失的组合,边框回归损失lreg则是平滑l1损失及教师网络限界的l2损失的组合。

本发明在损失项lrpn和lrcn的定义方面,借鉴了chen文献。而该文献的总损失函数l为:

l=lrpn+lrcn+γlhint

其中,γ是超参数,lhint是教师网络与学生网络之间经特征适配后的特征比对损失。可见,l是rpn损失、rcn损失和特征比对损失的总和。

本发明基于类似的思想,进一步结合特征的多尺度特点进行优化设计,定义损失函数:

其中为n个特征适配层后特征比对损失之加权和,γi为超参数,对应于每个特征适配层后特征比对损失的权重。

其中,zi为当前特征适配层的输入端即教师网络的中间层特征,经过特征适配后的特征,vi为当前特征适配层的输出端(即其对应的学生网络的中间层特征)。

在本发明中,γi的存在可以用于控制两种平衡:一是特征适配层后特征比对损失与其他类型损失之间重要度的权衡;二是特征适配层后特征比对损失内部的权衡,即各尺度特征比对损失之间重要度的平衡。

在网络的训练中,可以通过γi的灵活调整,使损失函数更好的适应具体的目标检测任务。优选的,假设γ2和γ3分别对应(p2_t,p2_s)和(p3_t,p3_s)位置上经特征适配后的特征比对损失权重,例如当具体任务中需要检测的小尺度目标相对较多,则可设定γ2>γ3,以便加强优化小尺度目标检测,反之若大尺度目标更多则可设定γ2<γ3,以此类推。

如fpn原始论文所述,其整体是一种通用架构,故本发明中涉及fpn结构中骨干网络的部分,同样也并不局限于实施例的resnet,可以是其他的深度卷积神经网络。

本发明与现有技术的主要区别概括如下:

1、特征适配层的位置(骨干网vs.骨干网的附加结构),比在骨干网上更贴近于任务实际使用的特征,使得教师网络能为学生网络提供更有效的监督信号(hint);

2、特征适配层的数量(单尺度适配vs.多尺度适配,即给定取值范围内的n个),更贴合fpn精髓的特征金字塔;

3、损失函数的设计(单尺度损失函数vs.层次加权的多尺度损失函数),能更好的控制多尺度特征比对损失内部即各尺度损失项的均衡以及它们与其他类型损失项的均衡,等等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1