神经网络搜索方法和装置与流程

文档序号:31134625发布日期:2022-08-13 10:03阅读:122来源:国知局
神经网络搜索方法和装置与流程

1.本公开涉及可信人工智能领域,尤其涉及自动机器学习领域,特别涉及一种神经网络搜索方法和装置。


背景技术:

2.目前,无论是人脸识别、自动驾驶、图像分类检索、推荐系统等领域,深度学习都取得了不俗的成果,但是随之而来的是对深度学习算法安全性的担忧,研究显示通过恶意算法生成的图片或者特殊标记(即对抗样本)可以让深度学习系统做出错误判断,如让自动驾驶系统误判断路标,人脸支付系统误识别支付人,这对于安全性要求较高的领域会产生巨大的威胁。为了解决该问题,在相关技术中,一种方式是把精力集中在模型的训练方法上,通过不同的对抗训练方式提升模型鲁棒性。另一种方式是通过神经网络搜索技术进行搜索鲁棒神经网络结构。


技术实现要素:

3.发明人注意到,上述第一种方式的缺点是训练时间过长,模型收敛速度慢,训练难度大,且很多场景受限于参数规模,能够达到的鲁棒性有限。上述第二种方式的缺点是搜索成本很高,导致在很多场景下完全无法承受搜索成本。
4.据此,本公开提供一种神经网络搜索方案,能够有效搜索出具有高鲁棒性的神经网络结构,从而更好地解决神经网络的安全问题。
5.根据本公开实施例的第一方面,提供一种神经网络搜索方法,包括:利用预训练模型对训练样本进行处理,以生成扰动信息;将所述训练样本和所述扰动信息进行叠加,以生成对抗样本;利用所述对抗样本,确定所述待处理神经网络中的全部参数中的每个参数对所述待处理神经网络的表达能力值的影响度和收敛速度值的影响度;按照第一排序规则,根据表达能力值的影响度对所述全部参数进行排序以得到第一排序结果;按照第二排序规则,根据收敛速度值的影响度对所述全部参数进行排序以得到第二排序结果,其中所述第一排序规则与所述第二排序规则相反;根据所述每个参数在所述第一排序结果中的序号和在所述第二排序结果中的序号确定所述每个参数的剪枝评估效果;删除所述剪枝评估效果最差的预设数量个参数,以得到目标神经网络;利用所述目标神经网络进行对抗训练。
6.在一些实施例中,利用所述对抗样本,确定所述待处理神经网络中的全部参数中的每个参数对所述待处理神经网络的表达能力值的影响度和收敛速度值的影响度包括:将所述对抗样本输入待处理神经网络,计算所述待处理神经网络的表达能力值r0和收敛速度值h0;根据所述表达能力值r0,计算所述待处理神经网络中的全部参数中的每个参数对所述待处理神经网络的表达能力值的影响度;根据所述收敛速度值h0,计算所述每个参数对所述待处理神经网络的收敛速度值的影响度。
7.在一些实施例中,根据所述表达能力值r0,计算所述待处理神经网络中的全部参数中的每个参数对所述待处理神经网络的表达能力值的影响度包括:将所述待处理神经网
络中的第j个参数删除,以得到中间神经网络,其中1≤j≤n,n为参数总数;将所述对抗样本输入所述中间神经网络,计算所述中间神经网络的表达能力值rj;根据所述表达能力值r0和表达能力值rj,确定第j参数对所述待处理神经网络的表达能力值的影响度。
8.在一些实施例中,所述第j参数对所述待处理神经网络的表达能力值的影响度为所述表达能力值r0与所述表达能力值rj的差值的绝对值。
9.在一些实施例中,所述表达能力值为线性区域值。
10.在一些实施例中,根据所述收敛速度值h0,计算所述每个参数对所述待处理神经网络的收敛速度值的影响度包括:将所述待处理神经网络中的第j个参数删除,以得到中间神经网络,其中1≤j≤n,n为参数总数;将所述对抗样本输入所述中间神经网络,计算所述中间神经网络的收敛速度值hj;根据所述收敛速度值h0和所述收敛速度值hj,确定第j参数对所述待处理神经网络的收敛速度值的影响度。
11.在一些实施例中,所述第j参数对所述待处理神经网络的收敛速度值的影响度为所述收敛速度值h0与所述收敛速度值hj的差值的绝对值。
12.在一些实施例中,所述收敛速度值为神经正切核ntk值。
13.在一些实施例中,所述ntk值为
[0014][0015]
其中,为目标损失函数相对于参数w的梯度值。
[0016]
在一些实施例中,利用预训练模型对训练样本进行处理包括:利用预设的损失函数对训练样本进行处理,以生成扰动信息;其中,所述损失函数与所述预训练模型在所述训练样本的正确分类标签上的预测概率值、所述预训练模型在所述训练样本的错误分类标签上的预测概率值相关联。
[0017]
在一些实施例中,所述损失函数为:
[0018][0019]
其中,xv为训练样本,v为生成的所述扰动信息,是所述预训练模型在所述训练样本的正确分类标签上的预测概率值,是所述预训练模型在所述训练样本的第i个错误分类标签上的预测概率值,-κ是置信值,max为最大值函数。
[0020]
在一些实施例中,所述第一排序规则为根据表达能力值的影响度从小到大的顺序对所述全部参数进行排序;所述第二排序规则为根据收敛速度值的影响度从大到小的顺序对所述全部参数进行排序。
[0021]
在一些实施例中,所述每个参数的剪枝评估效果利用所述每个参数在所述第一排序结果中的序号和在所述第二排序结果中的序号的加权和进行表示。
[0022]
在一些实施例中,所述删除所述剪枝评估效果最差的预设数量个参数包括:删除所述加权和最大的预设数量个参数。
[0023]
在一些实施例中,所述第一排序结果中的序号的权重和所述第二排序结果中的序号的权值相同。
[0024]
在一些实施例中,所述第一排序结果中的序号的权重和所述第二排序结果中的序
号的权值为1。
[0025]
根据本公开实施例的第二方面,提供一种神经网络搜索装置,包括:第一处理模块,被配置为利用预训练模型对训练样本进行处理,以生成扰动信息,将所述训练样本和所述扰动信息进行叠加,以生成对抗样本;第二处理模块,被配置为利用所述对抗样本,确定所述待处理神经网络中的全部参数中的每个参数对所述待处理神经网络的表达能力值的影响度和收敛速度值的影响度;第三处理模块,被配置为按照第一排序规则,根据表达能力值的影响度对所述全部参数进行排序以得到第一排序结果,按照第二排序规则,根据收敛速度值的影响度对所述全部参数进行排序以得到第二排序结果,其中所述第一排序规则与所述第二排序规则相反,根据所述每个参数在所述第一排序结果中的序号和在所述第二排序结果中的序号确定所述每个参数的剪枝评估效果;第四处理模块,被配置为删除所述剪枝评估效果最差的预设数量个参数,以得到目标神经网络,利用所述目标神经网络进行对抗训练。
[0026]
根据本公开实施例的第三方面,提供一种神经网络搜索装置,包括:存储器,被配置为存储指令;处理器,耦合到存储器,处理器被配置为基于存储器存储的指令执行实现如上述任一实施例所述的方法。
[0027]
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上述任一实施例涉及的方法。
[0028]
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
[0029]
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0030]
图1为本公开一个实施例的神经网络搜索方法的流程示意图;
[0031]
图2为本公开另一个实施例的神经网络搜索方法的流程示意图;
[0032]
图3为本公开一个实施例的神经网络搜索装置的结构示意图;
[0033]
图4为本公开另一个实施例的神经网络搜索装置的结构示意图。
具体实施方式
[0034]
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0035]
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
[0036]
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际
的比例关系绘制的。
[0037]
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
[0038]
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
[0039]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0040]
图1为本公开一个实施例的神经网络搜索方法的流程示意图。在一些实施例中,下列的神经网络搜索方法由神经网络搜索装置执行。
[0041]
在步骤101,利用预训练模型对训练样本进行处理,以生成扰动信息。
[0042]
在一些实施例中,利用预设的损失函数对训练样本进行处理,以生成扰动信息。损失函数与预训练模型在训练样本的正确分类标签上的预测概率值、预训练模型在训练样本的错误分类标签上的预测概率值相关联。
[0043]
例如,损失函数为下列公式(1)。
[0044][0045]
其中,xv为训练样本,v为生成的扰动信息,是预训练模型在训练样本的正确分类标签上的预测概率值,是预训练模型在训练样本的第i个错误分类标签上的预测概率值,-k是置信值,max为最大值函数。
[0046]
需要说明的是,损失函数的目标是通过最小化在目标类上的预测概率值来使模型做出错误判断。在迭代过程中,每次算出损失函数关于样本的梯度,并进行多轮叠加且裁剪到一定的范围内,这样使得图像叠加的扰动不会对原图产生过大的干扰。
[0047]
在步骤102,将训练样本和扰动信息进行叠加,以生成对抗样本。
[0048]
在步骤103,利用对抗样本,确定待处理神经网络中的全部参数中的每个参数对待处理神经网络的表达能力值的影响度和收敛速度值的影响度。
[0049]
如图2所示,上述步骤103可包括:
[0050]
在步骤201,将对抗样本输入待处理神经网络,计算待处理神经网络的表达能力值r0和收敛速度值h0。
[0051]
在步骤202,根据表达能力值r0,计算待处理神经网络中的全部参数中的每个参数对待处理神经网络的表达能力值的影响度。
[0052]
例如,将待处理神经网络中的第j个参数删除,以得到中间神经网络,其中1≤j≤n,n为参数总数。
[0053]
接下来,将对抗样本输入中间神经网络,计算中间神经网络的表达能力值rj。
[0054]
然后,根据表达能力值r0和表达能力值rj,确定第j参数对待处理神经网络的表达能力值的影响度。例如,第j参数对待处理神经网络的表达能力值的影响度为表达能力值r0与表达能力值rj的差值的绝对值。
[0055]
在一些实施例中,神经网络的表达能力值为神经网络的线性区域值。例如,线性区域值的定义如下:
[0056][0057]
其中,z(x0;θ)代表预激活函数,例如预激活函数为relu函数。p(z)为预激活函数的两种模式。例如可将取值设置为{1,-1},那么线性区域的数目就是不为空集的总数,以代表神经网络的表达能力。
[0058]
在步骤203,根据收敛速度值h0,计算每个参数对待处理神经网络的收敛速度值的影响度。
[0059]
例如,将待处理神经网络中的第j个参数删除,以得到中间神经网络,其中1≤j≤n,n为参数总数。
[0060]
接下来,将对抗样本输入中间神经网络,计算中间神经网络的收敛速度值hj。
[0061]
然后,根据收敛速度值h0和收敛速度值hj,确定第j参数对待处理神经网络的收敛速度值的影响度。例如,第j参数对待处理神经网络的收敛速度值的影响度为收敛速度值h0与收敛速度值hj的差值的绝对值。
[0062]
在一些实施例中,神经网络的收敛速度值为ntk(neural tangent kernel,神经正切核)值。
[0063]
例如,ntk值为
[0064][0065]
其中,为目标损失函数相对于参数w的梯度值。
[0066]
返回图1。在步骤104,按照第一排序规则,根据表达能力值的影响度对全部参数进行排序以得到第一排序结果。
[0067]
在一些实施例中,第一排序规则为根据表达能力值的影响度从小到大的顺序对全部参数进行排序。
[0068]
也就是说,表达能力值的影响度越小,对应参数的排名越靠前。
[0069]
在步骤105,按照第二排序规则,根据收敛速度值的影响度对全部参数进行排序以得到第二排序结果,其中所述第一排序规则与所述第二排序规则相反。
[0070]
在一些实施例中,第二排序规则为根据收敛速度值的影响度从大到小的顺序对全部参数进行排序。
[0071]
也就是说,收敛速度值的影响度越大,对应参数的排名越靠前。
[0072]
在步骤106,根据每个参数在第一排序结果中的序号和在第二排序结果中的序号确定每个参数的剪枝评估效果。
[0073]
在一些实施例中,每个参数的剪枝评估效果利用每个参数在第一排序结果中的序号和在第二排序结果中的序号的加权和进行表示。
[0074]
例如,第一排序结果中的序号的权重和第二排序结果中的序号的权值可以相同,也可以不同。在一些实施例中,第一排序结果中的序号的权重和第二排序结果中的序号的权值为1。
[0075]
例如,参数a对待处理神经网络的表达能力值的影响度在第一排序结果中位于第5位,该参数a对待处理神经网络的收敛速度值的影响度在第二排序结果中位于第2位,则该参数a的加权和为5+2=7。
[0076]
在步骤107,删除剪枝评估效果最差的预设数量个参数,以得到目标神经网络。
[0077]
例如,在第一排序规则为根据表达能力值的影响度从小到大的顺序对全部参数进行排序,第二排序规则为根据收敛速度值的影响度从大到小的顺序对全部参数进行排序的情况下,删除加权和最大的预设数量个参数。也就是说,在这种排序方式下,参数的加权和越大表明该参数的剪枝评估效果越差。
[0078]
例如,共有20个参数,在第一排序规则为根据表达能力值的影响度从小到大的顺序对全部参数进行排序,第二排序规则为根据收敛速度值的影响度从大到小的顺序对全部参数进行排序的情况下,参数b对待处理神经网络的表达能力值的影响度在第一排序结果中位于第19位,该参数b对待处理神经网络的收敛速度值的影响度在第二排序结果中位于第20位,则该参数b的加权和为19+20=39。若在这20个参数中,该参数b的加权和是最大的,表明该参数b的剪枝评估效果最差,在这种情况下将该参数b删除。
[0079]
这里需要说明的是,可根据使用场景灵活设置预设数量。例如,在手机使用场景下,预设数量个数较大,即通过删除较多参数,以提高目标神经网络的运行效率。在服务器使用场景下,预设数量个数较小,即通过删除较小参数,以提高目标神经网络的计算精度。
[0080]
还需要说明的是,若采用不同的排序规则,即按照表达能力值的影响度从大到小的顺序对全部参数进行排序以得到第一排序结果,按照收敛速度值的影响度从小到大的顺序对全部参数进行排序以得到第二排序结果,则在根据每个参数在第一序结果中的序号和在第二排序结果中的序号确定每个参数的加权和后,删除加权和最小的预设数量个参数,以得到目标神经网络。也就是说,在这种排序方式下,参数的加权和越小表明该参数的剪枝评估效果越差。
[0081]
例如,共有20个参数,若按照表达能力值的影响度从大到小的顺序对全部参数进行排序以得到第一排序结果,按照收敛速度值的影响度从小到大的顺序对全部参数进行排序以得到第二排序结果,参数b对待处理神经网络的表达能力值的影响度在第一排序结果中位于第2位,该参数b对待处理神经网络的收敛速度值的影响度在第二排序结果中位于第1位,则该参数b的加权和为2+1=3。若在这20个参数中,该参数b的加权和是最小的,表明该参数b的剪枝评估效果最差,在这种情况下将该参数b删除。
[0082]
在步骤108,利用目标神经网络进行对抗训练。
[0083]
在本公开上述实施例提供的神经网络搜索方法中,根据待处理神经网络中的每个参数对待处理神经网络的表达能力值的影响度以及收敛速度值的影响度,选择出需要删除的参数并进行删除(即剪枝),从而能够搜索出具有高鲁棒性的神经网络结构,从而更好地解决神经网络的安全问题。
[0084]
图3为本公开一个实施例的神经网络搜索装置的结构示意图。如图3所示,神经网络搜索装置包括第一处理模块31、第二处理模块32、第三处理模块33和第四处理模块34。
[0085]
第一处理模块31被配置为利用预训练模型对训练样本进行处理,以生成扰动信息,将训练样本和扰动信息进行叠加,以生成对抗样本。
[0086]
在一些实施例中,第一处理模块31利用预设的损失函数对训练样本进行处理,以生成扰动信息。损失函数与预训练模型在训练样本的正确分类标签上的预测概率值、预训练模型在训练样本的错误分类标签上的预测概率值相关联。
[0087]
例如,损失函数为上述公式(1)所示。
[0088]
第二处理模块32被配置为利用对抗样本,确定待处理神经网络中的全部参数中的
每个参数对待处理神经网络的表达能力值的影响度和收敛速度值的影响度。
[0089]
在一些实施例中,第二处理模块32将对抗样本输入待处理神经网络,计算待处理神经网络的表达能力值r0和收敛速度值h0。
[0090]
接下来,第二处理模块32根据表达能力值r0,计算待处理神经网络中的全部参数中的每个参数对待处理神经网络的表达能力值的影响度。
[0091]
例如,将待处理神经网络中的第j个参数删除,以得到中间神经网络,其中1≤j≤n,n为参数总数。将对抗样本输入中间神经网络,计算中间神经网络的表达能力值rj。
[0092]
然后,根据表达能力值r0和表达能力值rj,确定第j参数对待处理神经网络的表达能力值的影响度。例如,第j参数对待处理神经网络的表达能力值的影响度为表达能力值r0与表达能力值rj的差值的绝对值。
[0093]
在一些实施例中,神经网络的表达能力值为神经网络的线性区域值。例如,线性区域值的定义如上述公式(2)所示。
[0094]
接下来,第二处理模块32根据收敛速度值h0,计算每个参数对待处理神经网络的收敛速度值的影响度。
[0095]
例如,将待处理神经网络中的第j个参数删除,以得到中间神经网络,其中1≤j≤n,n为参数总数。将对抗样本输入中间神经网络,计算中间神经网络的收敛速度值hj。
[0096]
然后,根据收敛速度值h0和收敛速度值hj,确定第j参数对待处理神经网络的收敛速度值的影响度。例如,第j参数对待处理神经网络的收敛速度值的影响度为收敛速度值h0与收敛速度值hj的差值的绝对值。
[0097]
在一些实施例中,神经网络的收敛速度值为ntk值。
[0098]
例如,ntk值如上述公式(3)所示。
[0099]
第三处理模块33被配置为按照第一排序规则,根据表达能力值的影响度对所述全部参数进行排序以得到第一排序结果,按照第二排序规则,根据收敛速度值的影响度对所述全部参数进行排序以得到第二排序结果,其中所述第一排序规则与所述第二排序规则相反,根据所述每个参数在所述第一排序结果中的序号和在所述第二排序结果中的序号确定每个参数的剪枝评估效果。
[0100]
在一些实施例中,第一排序规则为根据表达能力值的影响度从小到大的顺序对全部参数进行排序,第二排序规则为根据收敛速度值的影响度从大到小的顺序对全部参数进行排序。
[0101]
需要说明的是,表达能力值的影响度越小,对应参数的排名越靠前。收敛速度值的影响度越大,对应参数的排名越靠前。
[0102]
在一些实施例中,每个参数的剪枝评估效果利用每个参数在第一排序结果中的序号和在第二排序结果中的序号的加权和进行表示。
[0103]
例如,第一排序结果中的序号的权重和第二排序结果中的序号的权值可以相同,也可以不同。在一些实施例中,第一排序结果中的序号的权重和第二排序结果中的序号的权值为1。
[0104]
例如,参数a对待处理神经网络的表达能力值的影响度在第一排序结果中位于第5位,该参数a对待处理神经网络的收敛速度值的影响度在第二排序结果中位于第2位,则该参数a的加权和为5+2=7。
[0105]
第四处理模块34被配置为删除剪枝评估效果最差的预设数量个参数,以得到目标神经网络,利用目标神经网络进行对抗训练。
[0106]
例如,在第一排序规则为根据表达能力值的影响度从小到大的顺序对全部参数进行排序,第二排序规则为根据收敛速度值的影响度从大到小的顺序对全部参数进行排序的情况下,删除加权和最大的预设数量个参数。也就是说,在这种排序方式下,参数的加权和越大表明该参数的剪枝评估效果越差。
[0107]
还需要说明的是,若采用不同的排序规则,即按照表达能力值的影响度从大到小的顺序对全部参数进行排序以得到第一排序结果,按照收敛速度值的影响度从小到大的顺序对全部参数进行排序以得到第二排序结果,则在根据每个参数在第一序结果中的序号和在第二排序结果中的序号确定每个参数的加权和后,删除加权和最小的预设数量个参数,以得到目标神经网络。也就是说,在这种排序方式下,参数的加权和越小表明该参数的剪枝评估效果越差。
[0108]
图4为本公开另一个实施例的神经网络搜索装置的结构示意图。如图4所示,神经网络搜索装置包括存储器41和处理器42。
[0109]
存储器41用于存储指令,处理器42耦合到存储器41,处理器42被配置为基于存储器存储的指令执行实现如图1-2中任一实施例涉及的方法。
[0110]
如图4所示,该神经网络搜索装置还包括通信接口43,用于与其它设备进行信息交互。同时,该神经网络搜索装置还包括总线44,处理器42、通信接口43、以及存储器41通过总线44完成相互间的通信。
[0111]
存储器41可以包含高速ram存储器,也可还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器41也可以是存储器阵列。存储器41还可能被分块,并且块可按一定的规则组合成虚拟卷。
[0112]
此外,处理器42可以是一个中央处理器cpu,或者可以是专用集成电路asic,或是被配置成实施本公开实施例的一个或多个集成电路。
[0113]
本公开同时还涉及一种计算机可读存储介质,其中计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如图1中任一实施例涉及的方法。
[0114]
在一些实施例中,在上面所描述的功能单元模块可以实现为用于执行本公开所描述功能的通用处理器、可编程逻辑控制器(programmable logic controller,简称:plc)、数字信号处理器(digital signal processor,简称:dsp)、专用集成电路(application specific integrated circuit,简称:asic)、现场可编程门阵列(field-programmable gate array,简称:fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意适当组合。
[0115]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0116]
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1