一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于生成对抗掩膜的深度网络层次分析与压缩方法

2022-11-28 12:28:14 来源:中国专利 TAG:


1.本发明属于深度神经网络可解释性技术领域,具体涉及一种基于生成对抗掩膜的深度网络层次分析与压缩方法。


背景技术:

2.近年来,随着gpu设备计算能力的大幅度提高,以深度学习为代表的人工智能得以迅速发展。深度学习的核心技术是深度神经网络(dnn),是一种具有多个卷积层和大量权重参数的网络模型,也因此它对事物具有很强的学习能力以及特征表示能力,深度学习网络已被广泛用于许多人工智能和机器学习应用,例如图像分类、目标检测、自动驾驶车辆等。
3.尽管越来越深的卷积神经网络模型对事物具有很强的学习能力,但同时在硬件上消耗的资源也更大,为解决神经网络在终端设备上的部署问题,模型压缩技术应运而生。模型压缩主要是指输入一个大的网络模型,通过特定方法在网络模型的尺寸、参数量和计算量上进行压缩,输出一个更加精简且高效的网络。知识蒸馏技术是当前模型压缩领域中的研究热点之一,它将教师网络中学习到的知识传授给学生网络,用来提高学生网络的性能。虽然知识蒸馏能够一定程度上提高学生网络的性能,但减少模型的参数量和尺寸的效果并不显著。
4.深度神经网络逐渐成为计算机视觉领域的主流模型,例如yolo、googlenet、resnet等,神经网络模型的层数也由最初的3层演化到现在的动辄100层以上,因此深度学习网络层次规模的庞大会导致网络难以分析。深度学习网络所具有的黑盒特性,其透明性、可解释性、可信性不足等缺点已成为智能决策、无人驾驶、医疗诊断等安全领域亟待解决的问题,这些领域利用深度学习进行决策时,往往需要知晓算法所给出结果的依据。
5.针对深度学习网络分类识别机理不可解释性的问题,亟需一种深度网络层次分析方法,求解深度网络各层对识别结果的贡献程度,删减贡献程度小的结构来压缩模型,进而提升深度学习网络模型的可解释性和高效性。


技术实现要素:

6.本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于生成对抗掩膜的深度网络层次分析与压缩方法,其结构简单、设计合理。本发明提出的深度网络层次分析与压缩模型将待分析的深度神经网络作为教师网络,复制该网络并在每个卷积块后加入掩膜层构成学生网络。利用生成对抗训练,固定教师网络的权重参数,使得学生网络的输出特征更接近教师网络的输出特征,从而使得学生网络具备教师网络一致的功能。此外,学生网络的掩膜层参数总和被约束在一定的范围,训练好的掩膜层参数可以用于衡量待测深度网络各层的贡献度,同时作为深度网络模型压缩的指标。
7.为解决上述技术问题,本发明采用的技术方案是:一种基于生成对抗掩膜的深度网络层次分析与压缩方法,其特征在于:包括以下步骤:
8.步骤一、初始化深度网络层次分析与压缩模型;
9.步骤101、将待分析的深度神经网络作为教师网络f
t
,复制该教师网络并在每个卷积层之后加入掩膜层构建学生网络fs;
10.步骤102、将训练好的待分析网络权重参数加载到教师网络f
t
和学生网络fs,初始化掩膜层参数m,初始化判别网络d;
11.步骤103、对于待分析的深度神经网络所用的分类识别任务数据集,将其随机划分为训练集和测试集;
12.步骤二、训练深度网络层次分析与压缩模型:
13.步骤201、将训练数据集样本x输入到教师网络f
t
得到教师网络特征f
t
(x,w
t
),将样本x输入到学生网络fs得到学生网络特征fs(x,ws,m),其中w
t
表示教师网络参数,ws表示学生网络参数,m表示掩膜层的参数;
14.步骤202、将教师网络特征f
t
(x,w
t
)输入到判别网络d得到预测结果将学生网络特征fs(x,ws,m)输入到判别网络d得到预测结果判别网络d用于鉴别由掩膜层约束的学生网络输出特征的真伪,使得学生网络生成的特征与教师网络输出的特征尽量相似;
15.步骤203、固定教师网络参数w
t
、学生网络参数ws,通过梯度反向传播以更新判别网络d的参数wd,更新优化判别网络d的损失函数ld如下:
[0016][0017]
步骤204、固定教师网络参数w
t
、判别网络参数wd和掩膜层参数m,通过梯度反向传播以更新学生网络fs的参数ws,更新优化学生网络fs的损失函数ls如下:
[0018][0019]
其中,第一项lg表示对抗损失,用于约束学生网络fs生成高质量的输出特征来欺骗判别网络d,第二项lr表示特征重构损失,用于减小教师网络特征与学生网络特征之间的差异,使得学生网络具备教师网络一致的功能;
[0020]
步骤205、固定教师网络参数w
t
、判别网络参数wd和学生网络参数ws,通过梯度反向传播以更新掩膜层参数m,更新优化掩膜层参数m的损失函数lm如下:
[0021][0022]
其中,第一项ls为步骤204中的损失函数,第二项lc表示掩膜层约束损失,该损失将学生网络fs的掩膜层参数m总和限制在一定范围内,训练好的掩膜层参数m可以用于衡量待测深度神经网络各层的贡献度,上式中λ和μ为超参数,l表示待测深度神经网络的层数,n表示训练样本的数量,mj表示第j层卷积之后掩膜层的参数;
[0023]
步骤三、利用测试集对训练好的深度网络层次分析与压缩模型进行测试,保存学生网络参数:
[0024]
步骤301、按照步骤二进行迭代训练,迭代过程中将测试集中的样本输入学生网络fs,计算分类精度,直到网络训练完成;
[0025]
步骤302、选取分类精度最高的学生网络参数进行保存,获取各个掩膜层的参数m;
[0026]
步骤四、对待分析的深度神经网络进行层次分析,并压缩网络结构:
[0027]
步骤401、计算各个卷积层的贡献度cj,计算公式定义如下:
[0028][0029]
其中,cj表示待测深度神经网络的第j个卷积层贡献度,l表示待测深度神经网络的卷积层数,mj表示第j层卷积之后掩膜层的参数;
[0030]
步骤402、设置阈值t,考虑到贡献度低于阈值t的卷积层可以认为对深度神经网络的贡献度较低,删减深度网络中贡献度cj低于阈值t的卷积层,获得压缩后的深度网络结构。
[0031]
本发明与现有技术相比具有以下优点:
[0032]
1、本发明的结构简单、设计合理,实现及使用操作方便。
[0033]
2、本发明的深度网络层次分析与压缩模型在待分析的深度网络卷积块之后加入掩膜层,生成对抗训练中掩膜层可自适应更新参数。将最终获得的掩膜层参数作为计算深度网络层次贡献度的依据,这符合深度学习网络模型的作用机理。此外,获得深度网络层次贡献度后,可以实现深度网络模型的压缩。
[0034]
综上所述,本发明设计合理、可操作性强,只需将掩膜层加入到待分析的深度神经网络,待训练完成可得到各卷积块的贡献度,从而以该指标进行模型压缩。
[0035]
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
[0036]
图1为本发明的方法流程图。
[0037]
图2为本发明教师网络的结构示意图。
[0038]
图3为本发明学生网络的结构示意图。
[0039]
图4为本发明判别网络的结构示意图。
具体实施方式
[0040]
下面结合附图及本发明的实施例对本发明的方法作进一步详细的说明。
[0041]
需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0042]
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0043]
需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本技术的实施方式例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0044]
为了便于描述,在这里可以使用空间相对术语,如“在
……
之上”、“在
……
上方”、“在
……
上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其他器件或构造之下”。因而,示例性术语“在
……
上方”可以包括“在
……
上方”和“在
……
下方”两种方位。该器件也可以其他不同方式定位(旋转90度或处于其他方位),并且对这里所使用的空间相对描述作出相应解释。
[0045]
如图1所示,本发明的一种基于生成对抗掩膜的深度网络层次分析与压缩方法,包括以下步骤:
[0046]
步骤一、初始化深度网络层次分析与压缩模型;
[0047]
步骤101、将待分析的深度神经网络作为教师网络f
t
,复制该教师网络并在每个卷积块之后加入掩膜层构建学生网络fs;
[0048]
步骤102、将已经训练好的待分析网络权重参数加载到教师网络f
t
和学生网络fs,初始化掩膜层参数m,初始化判别网络d;
[0049]
具体实施时,需要设置深度学习优化器的学习率与衰减速率,设置模型的最大训练迭代轮次、学生网络与判别器网络训练的迭代间隔。以均值为0、方差为1的高斯分布初始化掩膜层参数;需要说明的是,所述待分析的深度神经网络指已经在分类、识别等任务数据集上训练好的网络模型。
[0050]
步骤103、对于待分析的深度网络所用的分类识别任务数据集,将其随机划分为训练集和测试集;
[0051]
步骤二、训练深度网络层次分析与压缩模型:
[0052]
步骤201、将训练数据集样本x输入到教师网络f
t
得到教师网络特征f
t
(x,w
t
),将样本x输入到学生网络fs得到学生网络特征fs(x,ws,m),其中w
t
表示教师网络参数,ws表示学生网络参数,m表示各层卷积块的掩膜参数;
[0053]
步骤202、将教师网络特征f
t
(x,w
t
)输入到判别网络d得到预测结果将学生网络特征fs(x,ws,m)输入到判别网络d得到预测结果判别网络d用于鉴别由掩膜层约束的学生网络输出特征的真伪,使得学生网络生成的特征与教师网络输出的特征尽量相似;
[0054]
需要说明的是,基于生成对抗掩膜的深度网络层次分析与压缩模型的教师网络如图2所示,该网络由若干个卷积块组成,每个卷积块包含2至3个卷积层,卷积块之间用残差结构连接。教师网络用于产生真实特征,判别网络用于对学生网络输出特征的真伪判别。学生网络如图3所示,该网络在每个卷积块后加入了掩膜层,掩膜层前后的特征图维度不发生变化,特征图数值以倍数缩放。所述的掩膜层只存在于学生网络中各个需要分析的卷积块之后,前向传播时掩膜层参数直接与卷积块输出特征相乘。判别网络如图4所示,该网络由
四个全连接层以及一个sigmoid分类器组成。具体实施时,分别将训练样本输入到教师网络和学生网络,得到维度为(n,c)的教师特征和学生特征,n表示样本数,c表示类别数。然后将教师特征或者学生特征输入到判别网络,经全连接层、sigmoid分类器最后得到真伪预测结果。
[0055]
步骤203、固定教师网络参数w
t
、学生网络参数ws,通过梯度反向传播以更新判别网络d的参数wd,更新优化判别网络d的损失函数ld如下:
[0056][0057]
步骤204、固定教师网络参数w
t
、判别网络参数wd和掩膜层参数m,通过梯度反向传播以更新学生网络fs的参数ws,更新优化学生网络fs的损失函数ls如下:
[0058][0059]
需要说明的是,第一项lg表示对抗损失,用于约束学生网络fs生成高质量的输出特征来欺骗判别网络d,第二项lr表示特征重构损失,用于减小教师网络特征与学生网络特征之间的差异,使得学生网络具备教师网络一致的功能;
[0060]
步骤205、固定教师网络参数w
t
、判别网络参数wd和学生网络参数ws,通过梯度反向传播以更新掩膜层参数m,更新优化掩膜层参数m的损失函数lm如下:
[0061][0062]
需要说明的是,第一项ls为步骤204中的损失函数,第二项lc表示掩码约束损失,该损失函数将学生网络fs的掩膜层参数m总和限制在一定的范围,训练好的掩膜层参数m可以用于衡量待测深度神经网络各层的贡献度,上式中λ和μ为超参数,l表示待测深度神经网络的层数,n表示训练样本的数量,mj表示第j层卷积之后掩膜层的参数;具体实施时,λ设置为0.5,μ的设定根据深度网络具体的卷积层数而定,卷积块的个数越多,μ值设置的越大。以resnet56为例,该网络由27个卷积块构成,μ设置为10,l设置为27。
[0063]
步骤三、利用测试集对训练好的深度网络层次分析与压缩模型进行测试,保存学生网络参数:
[0064]
步骤301、按照步骤二进行迭代训练,迭代过程中将测试集中的样本输入学生网络fs,计算分类精度,直到网络训练完成;
[0065]
步骤302、选取分类精度最高的学生网络参数进行保存,获取各个卷积层之后掩膜层的参数m;
[0066]
步骤四、对待分析的深度神经网络进行层次分析,并压缩网络结构:
[0067]
步骤401、计算各个卷积层的贡献度cj,计算公式定义如下:
[0068][0069]
其中,cj表示待测深度神经网络的第j个卷积层贡献度,l表示待测深度神经网络的卷积层数,mj表示第j个卷积层之后掩膜层的参数;
[0070]
步骤402、设置阈值t,考虑到贡献度低于阈值t的卷积层可以认为对深度神经网络的贡献度较低,删减各个卷积层的贡献度cj中低于阈值t的卷积层,获得压缩后的深度网络结构。
[0071]
以上所述,仅是本发明的实施例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献