本发明涉及机器学习和图像分类技术领域,尤其是涉及一种基于通道重要性剪枝与二值量化的图像分类系统。
背景技术:
神经网络是一种深度监督学习下的机器学习模型,通过组合低层特征逐步提取图像的高级特征,在计算机视觉,包括图像分类、物体识别、语义分割与目标跟踪等领域中,得到广泛应用。但是,神经网络需要庞大的存储空间与计算资源,这极大的限制了深度神经网络在资源受限的边缘平台上的应用。
近些年来,神经网络的压缩与加速逐渐称为研究热点,其中,网络剪枝通过剪枝掉神经网络中重要性较低的通道或卷积核,从而实现网络参数的压缩与推理速度的提升;二值量化通过将浮点参数量化为{-1,+1},并将卷积运算替换成加法运算,从而缩小网络体积,提升计算速率。
现有图像分类方法使用神经网络存在内存占用与计算量过大的弊端。
技术实现要素:
为了克服图像分类方法使用神经网络内存占用与计算量过大的不足,本发明提出了一种基于通道重要性剪枝与二值量化的图像分类方法,缩小神经网络的模型体积,提高运行速度。
为了解决上述技术问题本发明提供如下的技术方案:
一种基于通道重要性剪枝与二值量化的图像分类系统,所述图像分类系统包括:
训练模块,用于训练初始复杂神经网络的权重参数,得到训练后的复杂神经网络模型;
压缩模块,用于对训练后的复杂神经网络模型重复进行基于通道重要性的网络剪枝与恢复性训练,在保证精度的前提下,得到初步压缩的神经网络模型;接着对初步压缩的神经网络模型进行二值量化,从而得到精简的神经网络模型;
分类模块,用于将压缩后的神经网络模型,用于对目标图像进行图像分类。
进一步,所述压缩模块中,依据神经网络中各个通道重要性对神经网络进行剪枝,剔除冗杂通道;通过恢复性训练,减少因网络剪枝造成的性能下降,并反复进行剪枝、恢复性训练,得到精简的神经网络;对剪枝后的精简网络进行二值量化,并利用正则函数项与“热身”策略,减少量化过程的误差波动,进而得到极致压缩的神经网络。
再进一步,依据神经网络中各个通道重要性对神经网络进行剪枝,剔除冗杂通道,过程为:
神经网络中,各通道的重要性计算方法为:
其中,
再进一步,对剪枝后的神经网络进行二值量化,并利用正则函数项与“热身”策略,减少量化过程的误差波动,进而得到极致压缩的神经网络,其中,精心设计的正则函数项为:
其中,j(w1,wl,b)为设计的正则函数项,w1为第1层全精度卷积核权重,wl为第l层卷积核权重,l(w1,wlb,b)为神经网络的损失函数,
其中,所述“热身”策略通过在训练过程中逐步增加二值权重正则项系数β从而减少训练过程中二值权重的正负翻转,进而减少量化过程中的误差波动,所述正则项系数变化情况为:
其中,β为正则项系数,β0为正则项系数初始值,[]为向下取整函数,epoch为当前训练步数,lenth为预设的周期分段长度。
本发明的技术效果主要表现在:图像分类系统使用的神经网络,依据神经网络中各个通道重要性对神经网络进行剪枝,剔除冗杂通道;通过恢复性训练,减少因网络剪枝造成的性能下降并反复进行剪枝、恢复性训练,直至获得精简的神经网络;对剪枝后的精简网络进行二值量化,并利用正则函数项与“热身”策略,减少量化过程的误差波动,进而得到极致压缩的神经网络;缩小神经网络的模型体积,提高运行速度。
附图说明
图1是本发明中基于通道重要性剪枝与二值量化的图像分类系统的模块结构示意图。
图2是本发明基于通道重要性剪枝与二值量化的神经网络压缩方法的流程图;
图3是本发明中正则函数项图例,其中,(a)是全精度卷积层正则项,(b)是二值化卷积层正则项。
具体实施方式
下面将结合附图,对本发明方法中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
参照图1~图3,一种基于通道重要性剪枝与二值量化的图像分类方法,所述图像分类系统包括:
训练模块,用于训练初始复杂神经网络的权重参数,得到训练后的复杂神经网络模型;
压缩模块,用于对训练后的复杂神经网络模型重复进行基于通道重要性的网络剪枝与恢复性训练,在保证精度的前提下,得到初步压缩的神经网络模型;接着对初步压缩的神经网络模型进行二值量化,从而得到精简的神经网络模型;分类模块,用于将压缩后的神经网络模型,用于对目标图像进行图像分类。
进一步,所述压缩模块中,首先,依据神经网络中各个通道重要性对神经网络进行剪枝,剔除冗杂通道;急着,通过恢复性训练,减少因网络剪枝造成的性能下降,并反复进行剪枝、恢复性训练,直至获得精简的神经网络;最后,对剪枝后的精简网络进行二值量化,并利用正则函数项与“热身”策略,减少量化过程的误差波动,进而得到极致压缩的神经网络。
如图2所示,本发明基于通道重要性剪枝与二值量化的神经网络压缩方法,包括以下步骤:
1)通过计算每层卷积网络层中各通道的重要性,并对重要性较低的通道进行剪枝;
2)通过恢复性训练,减少因网络剪枝造成的性能下降,并重复步骤1)与步骤2),直至得到精简的全精度神经网络;
3)对剪枝后的神经网络,除第一层与最后一层网络参数保持浮点数外,对余下网络层的权重参数进行二值量化,并利用正则函数项,减少量化过程的误差波动,进而得到极致压缩的神经网络。
所述步骤1)中,通过计算每层卷积网络层中各通道的重要性,进而剪枝掉冗杂的通道,所述各通道重要性计算方法为:
其中,
所述步骤2)中,通过在原数据集上重新训练,从而减少因网络剪枝造成的网络性能下降,并重复步骤1中的剪枝与步骤2中的恢复性训练,直至得到极致压缩的神经网络。
所述步骤3)中,对剪枝后的神经网络结构,除第一层与最后一层网络参数保持浮点数外,对余下网络层的权重参数进行二值量化,并利用正则函数项与“热身”策略,在训练过程中,对各个卷积层的参数进行约束,减少量化过程的误差波动,进而得到极致压缩的神经网络,所述正则函数项为:
其中,j(w1,wl,b)为精心设计的正则函数项,w1为第1层全精度卷积核权重,wl为第l层卷积核权重,l(w1,wlb,b)为神经网络的损失函数,
所述“热身”策略通过在训练过程中逐步增加二值权重正则项系数β从而减少训练过程中二值权重的正负翻转,进而减少量化过程中的误差波动,所述正则项系数变化情况为:
其中,β为正则项系数,β0为正则项系数初始值,实验室设置为1×10-7,[]为向下取整函数,epoch为当前训练步数,lenth为预设的周期分段长度,在cifar-10数据集中设置为15,在svhn数据集中设置为6。
基于上述方法,本发明采用采用vgg-18在cifar-10与svhn数据集上进行验证,结果如表1,表1为cifar-10与svhn数据集剪枝效果:
表1
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。