首页> 中国专利> 一种深度学习网络卷积核内部参数共享方法

一种深度学习网络卷积核内部参数共享方法

摘要

本发明公开了一种深度学习网络卷积核内部参数共享方法,包括:(1)对网络进行预训练;(2)对(1)的网络各层的卷积输入通道使用Kmeans聚类函数进行聚类;(3)对(2)中具有属于一类的输入通道共享一个二维矩阵参数;(4)对网络进行再训练提升预测结果。经测试本发明在对精度基本无影响的前提下可使得卷积神经网络的参数与计算量减少超过40%,加快了神经网络的推理速度,并且在低的共享率下,甚至可以提高网络的测试集推理准确度,使其准确度超越在同样的训练集、同样的训练批次下未经本方法优化的原始神经网络。

著录项

  • 公开/公告号CN112836757A

    专利类型发明专利

  • 公开/公告日2021-05-25

    原文格式PDF

  • 申请/专利权人 东南大学;

    申请/专利号CN202110177124.7

  • 申请日2021-02-09

  • 分类号G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);G06N5/04(20060101);

  • 代理机构32249 南京瑞弘专利商标事务所(普通合伙);

  • 代理人秦秋星

  • 地址 214135 江苏省无锡市新吴区菱湖大道99号

  • 入库时间 2023-06-19 11:05:16

说明书

技术领域

本发明涉及人工智能领域,尤其是深度学习网络卷积核内部参数共享方法。

背景技术

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。由于图像平移、缩放和旋转的不变性,卷积神经网络广泛应用于图像识别领域,微软利用卷积神经网络做阿拉伯文和中文的手写识别系统,谷歌使用卷积神经网络来识别街景图片中的人脸和车牌,等等。

卷积神经网络的发展十分迅速,其识别的准确率也逐步提高,随之而来的便是巨大参数量和计算量代价。例如:ImageNet挑战的获胜者将分类准确率从2012年的84.7%(AlexNet)提高到2015年的96.5%(ResNet-152),但计算量却从1.4×10

为了减少网络的参数和计算量,研究者们提出了许多神经网络模型的压缩方法,主要分为四类:(1)参数修剪和共享;(2)低秩因子分解;(3)转移/紧凑卷积滤波器;(4)知识蒸馏。其中参数剪枝和共享起初是解决过拟合问题的,现在更多得被用于降低网络复杂度。传统的参数共享发放精度损失较高。而剪枝会的网络往往很难训练,且有精度损失,本文所提出的发明主要用卷积和内部参数共享进一步提高参数共享的效率。

发明内容

本发明所要解决的技术问题在于,提供一种卷积核内部参数共享的方法,改变了神经网络结构,减少了网络的计算量,压缩了网络参数,从而提高推理速度。

为解决上述问题,本发明提供一种深度学习网络卷积核内部参数共享的方法,包括如下步骤:

一种深度学习网络卷积核内部参数共享方法,包括如下步骤:

步骤1:调用聚类方法对待优化的神经网络模型的每个卷积核的输入通道对应的二维矩阵参数进行聚类,将具有相同特征的二维矩阵参数被划分为一类;

步骤2:使同类二维矩阵参数共享一个新的二维矩阵参数;通过共享减少参数和计算量,总的输入通道数减去聚类的类别数即为减少的参数量;

步骤3:根据新的二维矩阵参数设计新的神经网络模型;

步骤4:新的神经网络模型中运用矩阵点乘分配律,改变原有计算方式;共享一个参数的输入通道通过先加法后矩阵乘的方法,聚类的一个类别中若存在n个二维参数则需要(n-1)次加法运算和一次乘法运算,相比原始的卷积方法减少了(n-1)次乘法运算;

步骤5:训练新的神经网络模型,求出每个神经元的梯度,更新共享权重参数;反复调整共享后的参数,直至达到预定的准确率。

进一步的,在进行步骤1之前,先对待优化的神经网络模型进行预训练,使待优化网络在测试集的准确率达到较高水平。聚类前将网络训练到具有较高的准确率的层次,在此基础上进行聚类共享,对准确率影响较小。

进一步的,通过调用Kmeans聚类或其他聚类方法每个对卷积核的输入通道对应参数进行聚类,Kmeans是一种无监督的聚类算法。聚类效果优,收敛速度快。对于给定的样本集,按照样本之间的距离大小,将样本划分为K个簇,让簇内的点尽量紧密的连接在一起,而让簇间的距离尽量的大。通过Kmeans聚类的具有相同的特征的参数聚为一类,一类的输入通道共享一个参数。

进一步的,步骤2,共享前的二维矩阵参数表示为

W

其中W

进一步的,步骤4中,训练新的神经网络模型时,利用矩阵点乘的分配律,属于共享同一个参数的所有输入特征图,先进行相加后卷积,则其公式为:

其中W

进一步的,对待优化的神经网络模型进行预训练和训练新的神经网络模型均采用反向传播算法进行微调。

本发明的有益效果为:本发明提出一种深度学习网络卷积核内部参数共享方法,通过对具有相同特征的卷积核输入通道进行聚类、共享,从而使得两个或多个具有相同特征的输入通道共享一个参数,并对卷积核的运算方法进行改善,共享一个参数的输入图片可以先相加再和权重参数点乘,从而在保证了计算准确度的情况下大幅度地缩小了参数量和计算量。实验用VGG16和Resnet50测试cifar10、cifar100、Imagenet数据集。

本发明可以用于各种移动嵌入式设备中,尤其适用于自动驾驶技术,对于正常自动驾驶输入为1920×1024大小的图片,使用GPU进行推理,每秒钟仅可推理11-20张图片,这对于需要快速推理的场合来说是不允许的,而本发明提出一种深度学习网络卷积核内部参数共享方法可以减少超过50%的计算量,经过优化后可以使每秒钟的推理图片数量达到90张以上,基本满足自动驾驶技术的需求,且由于本发明步骤4的分配律使用可以极大地减少乘法运算,我们知道,对于ASIC芯片来说,乘法器的面积和功耗远大于加法树,因此本发明可以减少乘法次数的优点对于设计AI芯片也有极大的应用价值。

表1列出了不同GPU应用度学习网络卷积核内部参数共享方法前后在不同网络上每秒钟推理的图片数目。

附图说明

图1为卷积核内部共享示意图。

图2为卷积核内部共享运用于VGG13示意图。

图3为运用了卷积核内部共享的网络结构图。

图4为卷积核内部共享操作示意图。

图5为VGG16共享的结果曲线图。

图6为Resnet50共享的结果曲线图。

图7为Rresnet50未共享时中间特征图。

图8为Resnet50共享率为0.7时的中间特征图。

具体实施方式

一种深度学习网络卷积核内部参数共享方法,具有如下步骤:

(1)选取待优化的神经网络模型(本发明以VGG13、VGG16、Resnet50为例),对待优化的神经网络模型进行预训练,使待优化网络在测试集的准确率达到较高水平。

(2)通过调用Kmeans聚类或其他聚类方法每个对卷积核的输入通道对应参数进行聚类,Kmeans是一种无监督的聚类算法。聚类效果优,收敛速度快。对于给定的样本集,按照样本之间的距离大小,将样本划分为K个簇,让簇内的点尽量紧密的连接在一起,而让簇间的距离尽量的大。通过Kmeans聚类的具有相同的特征的参数聚为一类,一类的输入通道共享一个参数。

(3)对一类的参数进行共享,经过共享优化后,属于一类的2个或多个输入通道共享一个二维矩阵参数,共享的参数值为待优化模型对应的参数的算术平均值,依据共享后的结果,设计新的神经网络模型,在新的神经网络中,利用矩阵点乘的分配律,属于共享同一个参数的所有输入特征图。

(4)采用反向传播算法进行训练新的神经网络模型,求出每个神经元的梯度,更新共享权重参数。反复调整共享后的参数,直至达到较高准确率。达到较高准确率的目标是与原始网络相比精度下降控制在1%以内。

本发明提出的一种深度学习网络卷积核内部参数共享方法,卷积核内部共享如图一所示。从图1中可以看出,卷积神经网络卷积核内部参数共享方法大量的减少了神经元之间的连接,从而极大地减少了运算量。

如图2所示,本发明对于VGG和Resnet的网络结构并没有改变,改变的是卷积层的运算方式,对于上一个卷积层的输出,首先用聚类函数对卷积核的输入通道参数进行聚类,属于一类的参数所对应的输入通道进行先相加再点乘的方式,最后将各个卷积核的输出进行concat,得到的输出批量归一化后通过relu函数输入下一层。

运用卷积神经网络卷积核内部参数共享的VGG13,见图3,本发明使用pytorch搭建网络训练CIFAR-10、CIFAR100、ImageNet数据集,以CIFAR-10数据集为例,CIFAR-10数据集均是图像大小为32×32的三通道彩色图片,由于对第一个卷积层和1*1的卷积核进行内部共享会较大影响准确率,因此第一个卷积层核和卷积核大小为1*1的卷积层使用经典卷积,其余的使用卷积核内部共享卷积(Internal shared convolution)。具体操作步骤如下:首先输入图像尺寸为:32*32*3,经过一个3*3,步长为1,填充为1的标准卷积,输出通道为64,接着进行一个输入和输出通道均为64的卷积核大小为3*3,步长为1,填充为1的核内共享卷积,经过池化、批量归一化进入第二阶段。第二阶段包含2个核内共享卷积,输出通道均为128,步长,填充为1,经过池化、批量归一化进入第三阶段,第三阶段包含3个卷积输出通道均为128,前两个共享卷积核为3*3,后一个标准卷积核为1*1,经过池化、批量归一化进入第四阶段。第四阶段包括2个3*3内部共享卷积核一个1*1标准卷积,输出通道均为256,步长为1,填充为1,经过池化、批量归一化进入第五阶段。第五阶段包括2个3*3内部共享卷积核一个1*1标准卷积,输出通道均为512,步长为1,填充为1。接着通过3个全连接层进行输出。完成图像分类。

卷积核内部共享的操作方法如图4所示,其步骤如下:

(1)对网络进行预训练300轮;

(2)对网络参数进行卷积核内部共享操作;

(3)微调3轮;

(4)测试共享结果。

其中不断重复(2),(3),(4)。本发明基于深度学习CNN网络改进方法,提出的卷积核内部参数的共享,大量的减少了计算量和参数量,并于经典的神经网络相比,所用参数更少,计算量更低,说明本发明所提出的深度学习网络卷积核内部参数共享方法有效。VGG16所得的结果如表1所示,Resnet50所得结果如表2所示。

表1 VGG16计算结果

表2 Resnet50计算结果

此外本发明还提供了Resnet50处理CIFAR10的中间特征图(见附图),其中图7为未经共享优化的Resnet50中间特征图,图8为共享率为0.7时的中间特征图,对比两图可见共享优化对于特征提取损害很小。

通过以上数据可以发现卷积核内部共享相对于经典的卷积优势比较明显,对于VGG卷积运算的参数量可以减少超过80%,而对于参数的运算量可以减少近80%,对于Resnet参数量和运算量均可以减少超40%,且其准确度损失很小,甚至在共享率较低的情况下,模型的测试集成绩甚至优于未经优化的模型。

以上仅是本发明的优选实施方式,应当指出以上实施列对本发明不构成限定,相关工作人员在不偏离本发明技术思想的范围内,所进行的多样变化和修改,均落在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号