李 凤,吕 裕,张海曦,何贵青
(1 西北工业大学电子信息学院, 西安 710072;2 西北农林科技大学信息工程学院,陕西 咸阳 712199)
图像分类学是研究图像种类和物种形成的科学,是控制和转化图像的基础知识。近年来,随着深度卷积神经网络的出现和发展,计算机视觉领域正经历着飞快的、具有历史性的改变。通过使用深度卷积神经网络,可以处理大规模的图像数据,能够在图像分类、目标检测、图像分割等识别领域有效提高模型性能。
在深度卷积神经网络的计算过程中,卷积层输出的特征矩阵中每一个通道输出的特征矩阵都代表着某种具体特征,各个特征矩阵对网络性能的影响是不同的。每一个特征矩阵上元素值的大小反映了对某种特征的响应强度。由于网络训练是一个不断更新参数的过程,因此无论特征矩阵上响应值大或小,都会参与到接下来的前向传播和反向传播的计算中,然而响应值很小的特征矩阵可能不具有对应卷积核所描述的特征。这种特征矩阵在参与后续计算时会对分类的结果产生不利的影响。从这个角度出发,把输出这种类型的特征矩阵的通道定义为“坏通道”,并通过有效的特征筛选方法筛选掉这些通道。
作为一种特征选择方法的有效手段,1范数和2范数能够反映矩阵元素的大小。文中针对“坏通道”的特征矩阵响应值很小的特点,结合单变量特征选择高效且易于操作的特点,分别使用1范数和2范数进行判定筛选,对特征矩阵进行计算,并根据值的大小进行排序,将排在末位的通道视作“坏通道”,并对其进行处理;另外设置判别项以限制对特征矩阵过激地操作对网络性能带来的不利影响;调整处理通道的数目,找到“坏通道”数目与卷积核数目的规律;最后将1范数和2范数结合,提出了更加有效的特征选择方法。通过在多个数据集上与基础网络进行比较,并在此基础上与其他的特征选择方法进行横向对比,结果证明了方法的有效性。
图像识别算法最初是通过手工设计的方式来进行的,人们根据需要辨别的类别进行相应的特征设计,并用其对样本图像进行全局的运算以得到响应值,最后根据响应值通过分类器进行类别的判定。常用的特征提取方法有Haar-like、SIFT、HOG等。由于早期的图像分类技术是通过手工设计的方法来提取想要辨别的特征,因此实际上只是利用了样本图像的低维浅层信息,无法提取到高维全局特征。
卷积神经网络的出现巧妙的解决了这个问题,所利用的深度卷积模型可以从训练数据中逐步学习样本的层级特征,由颜色轮廓到具有图形高级语义的抽象特征,因此其性能表现要优于手工设计特征的方法,而且提升了网络的泛化性,降低了识别工作的难度。
在图像识别领域中特征提取对于图像识别十分重要,但提取得到的冗余无效特征不仅会降低网络的性能,还会带来额外的计算量,因此有效的特征选择方法对于网络性能的提升同样至关重要。良好的特征选择有助于提高模型性能,目前常用的特征选择方法有:去掉取值变化小的特征、单变量特征选择、线性模型和正则化。去掉取值变化小的特征通过初步筛选去掉绝大多数样本都具有的特征;单变量特征选择能够对每一个特征进行测试,衡量该特征和响应变量之间的关系,根据得分扔掉不好的特征,这对理解数据有较好的作用;线性模型和正则化是使是重要的特征在模型中对应的系数越大,而跟输出变量无关的特征对应的系数就会接近零,其中的正则化是把额外的约束或者惩罚项加到已有模型上,以防止过拟合并提高泛化能力,正则化主要包括1范数和2范数。
文中提出了一种基于通道筛选的特征选择方法,该方法结合了单变量特征选择的易操作性和有效性的特点,以及线性模型和正则化方法的1范数和2范数约束思想,是一种将1和2范数作为判断依据进行单变量特征选择的特征选择算法。
基于卷积通道筛选的特征选择算法流程如图1所示。网络由卷积层,最大池化层,激活层以及全连接层或平均池化层构成。样本图片首先经过卷积层部分,经过前面若干卷积层(蓝色所示)直到尾部的卷积层(灰色所示),尾部卷积层输出的特征图被送入到卷积通道筛选模块。算法首先计算分别计算输入的特征图中每一个矩阵的1及2范数,并依据1范数值和2范数值分别由大至小排序,将其队尾的通道视作“坏通道”,即无用通道,对这些通道进行处理,并将处理后的特征矩阵送入后续的全连接层或平均池化层中,进行最后的分类计算。
图1 基于卷积通道筛选的算法流程图
尾部的卷积层的具体位置,是根据最后一部分的具体结构(平均池化层或全连接层)来决定的,为了缓和由于通道筛选所导致的特征信息剧烈变化的问题,处理后的特征图还需要几层运算进行过渡。当最后一部分的结构是平均池化层结构时,将这个卷积层设在平均池化层前第3层,即倒数第4层;当最后一部分是全连接层时,将这个卷积层设在卷积层部分的最后一层。
由于1范数具有较好的筛选特征信息的作用,2范数具有避免网络过拟合的作用,因此选择方法是将1范数和2范数相结合,共同指导卷积通道筛选的过程。将需要处理的卷积层输出的特征图提取出来,对特征图上的每一个非零矩阵,分别求1范数和2范数,并根据1范数和2范数的值分别进行由大至小排序。由于同一个特征矩阵的1范数和2范数在排序上具有一定的相关性,所以在1范数排序列表中排序靠后的通道中与2范数排序列表中排序靠后的通道中有很多是相同的。因待处理的通道可以被分为4种,将1独有的通道设为;2独有的通道设为;1、2共有的通道设为;既不在1范数排序靠后的通道也不在2范数排序靠后的通道设为,如式(1)所示:
(1)
式中:∈[0,特征通道的数量];和是对应的处理系数;为第特征矩阵。处理规则为:当属于时,对特征矩阵上的每一个元素都乘以系数;当属于时,对特征矩阵上的每一个元素都乘以系数;当属于时,对特征矩阵上的每一个元素都乘以系数0;当属于时,不对特征矩阵进行任何操作。当=0且=0时,则是将1筛选的通道与2筛选的通道取并集共同进行处理;当=0且=1时或=1且=0时,是按照1范数或2范数单独进行排序进行特征选择;其他情况则是1范数和2范数共同进行筛选。
将步长设为8通道,每次试验处理排序在后8个、16个、24个、32个、……通道,并将实验结果与传统的深度卷积神经网络方法进行比对。
在网络的训练过程中,样本图片的全部特征矩阵经过通道筛选后,未被视作“坏通道”的特征矩阵继续正常进行前向转播。随后在反向传播根据损失函数计算误差并更新参数。而被视作“坏通道”的特征矩阵,在随后的过程有两种情况,当式(1)中的==0时与dropout类似,正向传播过程进行到该卷积核时,传播停止,其对应的卷积核的参数更新也随之停止,同时中断由该卷积核向前的所有系数更新操作,即由该卷积核进行的所有经过链式求导法则更新的参数保持不变;当式(1)中的与不同时为0时,将对应通道矩阵乘以对应系数进行后续的运算。
1)数据库:Orchid flower的子集,包含250个图像类别;PLANTCELF 2014,包含500个图像类别。
2)实验环境:实验配置为Inter Xeon E5-2678 v3的CPU处理器,32 GB内存和一张NVIDIA RTX 2080的显卡,初始学习率均为0.01,根据网络和数据集的不同设置不同的学习率调节方法。
3)基准网络:使用AlexNet、VGG-11、MobileNetv1和ResNet-18作为基础网络,首先在含有全连接层结构的AlexNet和含有跳跃连接和平均池化层的ResNet-18上进行有效性的验证,随后拓展到VGG11和MobileNetv1上。
4)对比网络:使用了一些具有相同基准网络AlexNet的对比网络模型来证明文中提出方法的有效性。将文中提出的卷积通道筛选方法与基于AlexNet的多个网络模型进行比较,其中包括三元组损失、中心损失和收缩激励模块。
5)探究实验:以不同的排序处理规则进行实验,共分为5组:1范数单独排序、2范数单独排序、2单独排序并增加判定条件、取1和2分别排序后的公共通道、1和2取公共通道并分别处理各自的独有通道。每次实验的设置的“坏通道”的步长为8。
6)验证实验:一部分是在Orchid flower(250类)上进行实验,以VGG11和Mobilenetv1作为基础网络,分别使用在AlexNet和ResNet-18上的调节参数所获得的最优参数和1最优参数两种改进方法,与原始的深度卷积神经网络进行对比;另一部分是将4种网络中效果最好的特征选择改进模型与原始模型在PLANTCLEF 2014上的对比实验。
AlexNet的批数量设为256,初始学习率为0.01,在Orchid flower和PLANTCLEF 2014上分别训练60轮,每20轮学习率乘以0.1;MobileNetv1的批数量设为256,初始学习率为0.01,在Orchid flower和PLANTCLEF 2014上分别训练60轮,每20轮学习率乘以0.1;VGG11的批数量设为64,初始学习率为0.01,在Orchid flower和PLANTCLEF 2014上分别训练90轮,每30轮学习率乘以0.1;ResNet-18的批数量设为128,初始学习率为0.01,在Orchid flower和PLANTCLEF 2014上分别训练30轮,每10轮学习率乘以0.1。
文中分别在AlexNet和ResNet-18上用提出的基于卷积通道筛选的特征选择方法,在含有250个图像种类的Orchid flower子集上进行了实验。在AlexNet上首先分别用1范数和2范数单独进行通道筛选,探究两种规则分别对网络性能的影响。最后将1范数和2范数的分别排序结果中排在末位的共有通道作为特征筛选的依据,验证了取并集处理和分别处理的效果;在ResNet-18上首先分别探究用1范数和2范数单独筛选特征信息时对网络性能的影响,随后将1范数和2范数的排序结果共同作为特征筛选的依据,验证了取并集处理的效果。
在AlexNet上进行实验,只以特征矩阵的1范数作为排序的标准,由于AlexNet含有5个卷积层,且在卷积层与输出层中间拥有全连接层结构,因此对第5个卷积层的输出进行特征通道的筛选。第5卷积层含有256个卷积核,故有256个特征矩阵,以8个通道为步长,未被处理的有效通道从248到200,结果如图2所示。
图2 AlexNet上依据L1范数进行排序下的准确率
以1范数作为排序规则,其正确率与处理通道数目呈现明显的相关性,随着处理通道数的增多,正确率整体先上升后降低。在有效通道数为208时达到最大值。当有效通道数大于208时,由于处理的通道数有限,且排在末尾的通道其元素值过小,因此只对末尾的小部分通道进行处理时,网络的正确率上升非常有限,随着处理通道数的增多,正确率整体先上升;当有效通道数小于208时,正确率快速下降,这表明此时已经处理了一部分有用特征,导致样本特征信息缺失,网络识别性能下降。因此,在AlexNet上,如果只以1范数作为筛选规则,那么有效通道数为208时效果最好。
接着在ResNet-18上进行实验。首先,只以特征图的1范数作为排序的标准,由于ResNet-18含有8个残差块,且最后一部分是平均池化层,为了将经过通道筛选模块选择后的特征矩阵携带的信息能够平滑的过渡,在第6个残差块后进行通道筛选。第6个残差块输出维度是256×14×14的特征矩阵,仍以8个通道为步长,未被处理有效通道从248到200,结果如图3所示。
图3 ResNet-18上依据L1范数进行排序下的准确率
以1范数作为排序规则,其正确率与有效通道数目呈现明显的相关性,随着“坏通道”数目的增多,正确率整体先上升后降低。在有效通道为232时准确率达到最大值。有效通道数目大于232时,由于处理的通道数有限,且排在末尾的通道其元素值过小,因此只对末尾的小部分通道进行处理时正确率的提升有限,随着处理通道数的增多,正确率整体先上升;有效通道数目小于232时,正确率快速下降,表明此时已经处理了一部分有效特征,导致样本图片的特征信息缺失,网络性能下降。因此,在ResNet-18上,如果只以1范数作为筛选规则,有效通道数设为232时效果最好。
综合在以上两个网络上的实验结果,依据1范数排序进行通道筛选时,网络性能与筛选的通道的数目呈现出很强的相关性,识别正确率均为先逐渐上升,后逐渐下降,说明使用1范数能够有效地筛选出与识别无关的一些特征矩阵,提高网络正确率;同时也说明网络中确实存在“坏通道”,通过消除掉这些“坏通道”的输出对网络产生的不利影响,能够增加网络的性能。
把筛选规则改为只以特征矩阵的2范数作为排序的标准,基础网络为AlexNet和ResNet-18,数据集为Orchid flower。在AlexNet上使用2范数排序进行通道筛选的实验结果如图4所示,2范数作为排序规则,其正确率与处理通道数目有一定的相关性,随着处理通道数目的增多,正确率整体先上升后趋于平稳,最后降低。将256作为基准线,有效通道数在232~216时正确率趋于不变,在232时达到最大值。由于1范数和2范数对元素值较小的矩阵在排序时有一定的相关性,因此其整体规律与1范数相似,准确率平缓的部分体现了与1范数的差异性,虽然有效通道数目与识别准确率的规律性不如1范数强,但是相对于1范数,2范数只处理很少的一部分通道就达到了最大值。因此以2范数排序,一方面相较于1范数排序效率较高,但另一方面相较于1范数排序稳定性较差。
图4 AlexNet上依据L2范数进行排序下的准确率
实验过程中发现,在网络模型训练初期,AlexNet的第5卷积层输出了很多零矩阵,为了验证提出的特征选择方法是否会由于处理了过多的非零矩阵导致有效特征损失的情况,使网络损失值不下降,或者性能降低等问题,增加了一个判断因子,以保证处理后的非零矩阵不小于总通道数的一半,即128个通道。
在ResNet-18上以2范数排序作为排序规则进行了另一组实验,实验结果如图5所示,其正确率与处理通道数目相关性不强,随着需要处理的“坏通道”数目的增多,正确率快速上升随后开始波动,最后下降。在有效通道数为248时达到最大值。相较于上文在AlexNet的2排序时有效通道数目和识别准确率的变化规律,ResNet-18由于层数变多,所以1范数筛选的特征与2范数筛选的特征差异变大,两个规则排在末位的通道的相关性下降。同样虽然规律性不如1范数强,但是相对于1范数,2范数只处理很少的一部分通道便达到了最大值。因此在ResNet-18上得到了与AlexNet网络上相同的规律,即以2范数的排序进行通道筛选操作,相较于1范数排序,它的效率更高,但稳定性较差。
图5 ResNet-18上依据L2范数进行排序的准确率
综合在两个网络上的实验结果,以2范数进行排序也能够提升网络的性能,但识别准确率并没有表现出和有效通道数目间很强的相关性。相反地,其识别准确率随着“坏通道”数目的增加呈现一种波动的现象,这表明单一的2范数排序结果并不具有很好筛选特征的效果,识别准确率提升的原因是使用1范数排序和2范数排序的结果具有一定的相似性,且越在排序末尾,相似性越强。总之,单一地使用2范数进行排序并不能有效地提升网络的性能,因此需要把1范数的特点和2范数的特点进行结合,在用1范数进行有效筛选的同时,引入2范数增加网络的鲁棒性,减少网络的过拟合。
将1范数和2范数分别排序的结果共同作为筛选的标准,分别在AlexNet和ResNet-18上进行了并集实验,数据集为Orchid flower,按照8的步长进行“坏通道”的判定,取1范数排序末位中的“坏通道”和2范数排序末位的“坏通道”的全部特征矩阵视作实际进行处理的“坏通道”,即如式(1)中,在==0的情况下进行实验,最后在AlexNet上进行了1范数和2范数筛选特征的差异性实验,即对系数和分别取不同的值,观察对识别准确率的影响,并对实验结果进行讨论。
首先进行了1范数和2范数排序的并集实验,在AlexNet上的实验结果如图6所示,其识别正确率与有效通道数目几乎没有明显的相关性,在有效通道数在248~208之间均高于基准线,且有效通道数目在208时网络准确率得到最优值,在248和224时得到较为相似的次优值,但最优值略低于只用1范数或2范数筛选的最优值,这是由于1独有的通道和2独有的通道里可能都存在有用特征,此时对并集进行处理会损失这些有用特征导致正确率下降。
图6 AlexNet上依据L1范数和L2范数并集的准确率
在ResNet-18上依据1范数和2范数排序的并集实验结果如图7所示。同样地,网络识别正确率与有效通道数目几乎没有明显的相关性,正确率先快速升高,在有效通道数为240时准确率达到最大值82.627%,然后快速下降,后趋于平缓,在216时开始正确率开始下降。这是由于ResNet-18相较于AlexNet网络更深,提取到的信息更加抽象,“坏通道”数目较少且较为聚集,故排序在末位的很少的一部分通道进行处理就很好的提升网络的性能。在筛选的过程中,考虑到2范数筛选的不稳定性,因此当“坏通道”的数目大于16时,识别正确率呈现出无规律的波动,当“坏通道”大于40时,准确率开始低于标准基准值。由于在最大值时只对16个14×14大小的矩阵进行操作,因此时间效率与原始网络几乎不变,但正确率相较于82.009%有了明显的提升,证明了特征选择方法的有效性。
图7 ResNet-18上依据L1范数和L2范数并集的准确率
随后为了验证1范数和2范数筛选的差异性,以AlexNet为基础网络,数据集为Orchid flower,将彼此的处理系数和分别取不同的值,对准确率的对比随后给出分析。为了结合1范数和2范数各自筛选的特征信息,又因为1范数排序的准确率与有效通道数目具有很强的相关性,因此在只以1范数排序效果最优的:有效通道数目为208的条件下进行实验,将排序的结果按照式(1)分为4组,对1范数和2范数特有的通道和通过设置,系数进行处理,实验结果如表1所示,通过表1可以发现,的取值对网络性能影响不大,这说明2范数确实不是影响识别准确率的主要因素,在取值为2、取值为05时,网络识别准确率达到最优78012,这也验证了之前对1范数和2范数分别作为排序规则时的结论。
表1 在AlexNet上有效通道数为208时,a、b取值的结果
通过对比上述两部分实验可以得出结论:在==0的情况,其计算的空间成本和时间成本几乎不变的前提下只需要处理很少的一部分矩阵就可以达到较好的效果。而由于2范数与剩余通道数的相关性不强,因此需要通过精细的选择需要处理的通道数量和与的值,才能得到最优值,并且考虑到排序和对特征矩阵元素的操作、计算成本和实际效果,==0时的特征选择方式更为有效。
以AlexNet为主干网络在Orchid flower数据集上的运行时间。实验用一张Nvidia RTX2080显卡,批处理数为256,内存32 GB,处理器为Intel Xeon CPU E5-2678 v3, 运行时间如表2所示。
表2 AlexNet上不同有效通道数目训练时间对比(a=b=0)
结果表明,运行时间随着“坏通道”数量的增加而基本呈线性增长。与原始的AlexNet相比,差异在于额外的范数计算、排序以及对特征矩阵元素的乘法操作;考虑到应用卷积通道筛选方法都需要经过范数计算和排序,因此造成时间上的差异主要原因是乘法操作,额外时间增加的时间长度与需要处理元素总数呈正相关。
分别在Orchid flower子集和PLANTCLEF 2014上进行了实验。首先将通道筛选方法分别应用在AlexNet、VGG-11、MobileNetv1、ResNet-18上;随后以AlexNet作为主干网络,对比了多种特征选择方法。其中AlexNet在Orchid flower子集上的实验精确的调整了和的值。考虑到性能效率等问题,本文在其他网络上进行的实验都是在==0时进行。在VGG-11上训练时,由于最后一部分是全连接层,因此在卷积层的最后一层进行通道筛选,最后一层的卷积核数为512个,即512个特征矩阵,故将需要筛选的“坏通道”数设为32,即保留480个有效通道;在MobileNetv1上训练时,由于其最后一部分是平均池化层,因此本文在全部的可分离卷积层的倒数第3层进行卷积通道筛选,其卷积核数目为512,即512个特征矩阵,同样将筛选的“坏通道”数目设为32,保留480个有效通道。
1)多种深度卷积神经网络在Orchid flower数据集的结果对比
应用在多种深度卷积神经网络上的对比实验结果如表3所示。
表3 多种模型方法在Orchid flower上的准确率对比
实验结果表明,基于卷积通道筛选的特征选择方法在多个类型的深度卷积神经网络上都能够有效地提高网络的准确率,其中在VGG-11提升效果相对较低,原因是VGG-11的最后一层卷积层输出特征的的尺寸大小是7×7,因此1范数筛选的通道与2范数筛选的“坏通道”的相似度极高,所以并没有将两种方法的特点结合有效地进行特征选择,网络识别准确率的提升非常有限;与之相对应地,ResNet-18和AlexNet都明显地提升了准确率,这是因为进行通道筛选的特征矩阵的维度分别为14×14和13×13,相较于VGG11,这两个网络上进行处理的特征矩阵尺寸更大,涵盖的元素值更多,因此1范数筛选的“坏通道”和2范数筛选的“坏通道”的差异性更大,将这两种范数筛选的“坏通道”结合能更有效地进行特征选择。
接下来以AlexNet为主干网络,将3种目前已经应用在卷积神经网络上的特征选择方法与文中提出的通道筛选方法进行对比,实验结果如表4所示。分别在AlexNet上应用了三元组损失、中心损失和SENet中的具有通道级视觉注意力机制的收缩激励模块缩放因子为16。表4中的数据显示,在Orchid flower数据集上进行卷积通道筛选网络模型获得了最高的正确率,说明是非常有效的特征选择方法,另外还可以看到方法和增加收缩激励模块的网络正确率较为接近,但是并没有增加额外的参数,而收缩激励模块是在原有的基础上并联了一个SE模块进行特征选择,所以综上所述文中方法效率更高,计算代价更小。
表4 多种特征选择方法在Orchid flower上的准确率对比
2)PLANTCLEF 2014数据集实验结果对比
为了验证算法的鲁棒性,在另一个图像数据集上PLANTCLEF 2014数据集上进行了实验,基准网络是AlexNet、VGG-11、MobileNetv1、ResNet-18;随后在AlexNet应用了上节的3种特征选择方法。在多种深度卷积神经网络模型上应用通道筛选方法的实验结果如表5所示。同样地,在多个网络模型上,通道筛选方法都对原模型的性能有一定的提升,其中MobileNetv1的提升最为明显,AlexNet、ResNet-18以及VGG-11的提升相对较低。这说明,通道筛选方法效果提升的程度与数据集的复杂程度以及数量有一定的关系。
表5 多种模型方法在PLANTCLEF 2014上的准确率对比
在PLANTCLEF 2014上,同样在传统的卷积神经网络AlexNet上应用了先前提到的3种特征选择方法,实验结果如表6所示,获得了最高的准确率。由于PLENTCLEF 2014数据集的类别多,但是图片总数目相对较少,因此三元组损失和中心损失方法都出现了明显的性能下降,而收缩激励模块和文中的方法都还保持良好的正确率,这说明收缩激励模块和通道筛序方法在训练数据不足时受到的影响较小,仍能有很好的表现,而正确率高于SENet,说明文中的方法鲁棒性更强,在有限的数据集总量下依然提取到了非常有辨别力的特征,是更加高效地特征选择方法。
表6 多种特征选择方法在PLANTCLEF 2014上的准确率对比
针对大规模图像识别开发了一种新式的基于卷积通道筛选的特征选择算法。该方法利用1范数和2范数作为评价指标,通过排序筛选掉排在末位的无用通道,从而提升网络的性能。通过在两个大规模的图像数据集以及多个基准网络上的对比试验证明了提出方法的有效性,最后通过与目前应用在卷积神经网络上的其他特征选择方法进行对比,证明了文中提出的方法的优越性。