掌桥专利:专业的专利平台
掌桥专利
首页

一种winograd卷积神经网络脆弱性评估方法及装置

文献发布时间:2023-06-19 16:11:11



技术领域

本发明涉及可靠性设计技术领域,尤其涉及一种winograd卷积神经网络脆弱性评估方法及装置。

背景技术

Winograd卷积神经网络已经广泛应用于各个领域中,网络是否稳定已经成为一个重要指标,因此需要对winograd卷积的脆弱性进行评估。

目前技术对神经网络脆弱性的评估通常都是在传统卷积层或者全连接层上执行,均是选取权重或者激活数据进行错误注入,方法是在随机选择的一部分数据比特位上,将其中的1变成0或者0变成1,使得数据值发生错误。因此在现有的技术中,仅存在对权重和激活的错误注入,缺乏对计算操作的错误注入,并且目前模型脆弱性的研究仅关注传统卷积层或全连接层,缺乏对winograd卷积层的关注。

中国专利申请,申请号:CN2020103499271,公开号:CN111563578A,公开一种基于TensorFlow的卷积神经网络故障注入系统,包括训练模块、注错模块和解析模块;训练模块用于获取目标神经网络参数,计算神经网络内部网络层浮点数运算次数,生成神经网络模型,以及训练所生成的神经网络模型;注错模块用于执行注错任务,包括网络层输入注错、权重注错和全局注错;解析模块用于根据注错任务的执行结果,分析被测试神经网络内在网络层的滤错能力、整体错误恢复能力和权重参数对神经网络的影响。本发明基于网络层浮点数运算次数实现权重注错、网络层输入注错和计算注错,使得故障注入系统能模拟不同的硬件平台的故障注入。

申请号:CN2022100722892,公开号:CN114511015A,公开一种于指令特征重要性的SDC脆弱性预测方法,包括:对复杂程序进行指令特征提取;对复杂程序进行随机注入故障,获取指令SDC脆弱性值;基于基尼系数衡量指令SDC脆弱性特征T对SDC脆弱性值的重要性程度,构建指令特征重要性评估系数;通过将指令特征重要性融合到LightGBM的每个子决策树的话语权中,生成新的话语权ω以提高指令SDC脆弱性的预测精度;基于改进的LightGBM算法,构建并训练基于指令特征重要性的SDC脆弱性预测模型;得到最终的SDC脆弱性预测模型对待预测程序的进行指令SDC脆弱性预测。

申请号:CN2021116828680,公开号:CN114326639A,公开一种混合注意力卷积神经网络与XGBoost算法的工业过程性能评估方法,包括如下步骤:步骤1、以一定频率采集工业过程中系统变量的运行数据,建立包含多变量,多类型故障的数据集,并对其进行数据预处理,在此基础上对故障类型进行编号打标签,设置对应的关系,之后对故障类型和标签划分相应的训练集和测试集;步骤2、构建注意力卷积神经网络故障诊断模型;步骤3:利用划分好的训练集训练注意力卷积网络模型;步骤4:将模型性能最好时所提取到的特征输入到XGBoost分类器中拟合提升树;步骤5:故障诊断:将测试集输入到ACNN-XGBoost模型中,XGBoost分类器的输出可以反映模型最终的诊断结果。

申请号:CN2022100224026,公开号:CN114547966A,公开一种基于硬件特征信息的神经网络加速器故障脆弱性评估方法,包括:运行在硬件加速器上的神经网络的硬件信息特征提取,该信息特征包括神经网络在正常运行情况下的特征与其在遭受故障攻击时的信息特征;利用提取到的信息特征对故障攻击建模,通过故障分布模拟与故障概率模拟的方法预测故障对实际的神经网络硬件加速器产生的影响,并通过层际搜索的方法判断神经网络在面临故障攻击时存在的脆弱性。本发明对现有的硬件故障脆弱性评估框架进行了改进,在优化细粒度的同时通过软硬件一体化验证的方法,提升了故障模拟的精确度。

然而,上述现有技术并没有基于winograd卷积的神经网络执行网络级,层级,操作级的脆弱性评估,以达到对研究对象的容错能力的更全面了解,从而使卷积的脆弱性评估计算量多,耗费时间长。

发明内容

为了解决上述现有技术存在的问题,本发明提供一种winograd卷积神经网络脆弱性评估方法及装置,可以通过在winograd卷积的乘法和加法计算操作进行错误注入来进行模型脆弱性评估,其方法包括如下步骤:

步骤1:下载数据集,将数据集中的图像逐一输入到基于winograd卷积的神经网络中,在执行winograd卷积层中转换阶段和元素级乘法运算阶段时,将其中的乘法和加法操作的结果值提取出来作为参数值;

步骤2:设置一个比特错误率值和故障注入粒度,将参数值、比特错误率值、故障注入粒度输入到操作级故障注入平台的代码中,输出结果值;

步骤3:比特错误率值从低到高取值,依次作为模型输入,在每个比特错误率下迭代执行步骤2,输出每个比特错误率下对应的精度值。

优选为:所述基于winograd卷积的神经网络,包括但不限于基于winograd卷积的VGG,基于winograd卷积的ResNet等;

优选为:所述比特错误率值,是指出现故障的比特个数占总的比特数的百分比值,如1E-10;

优选为:所述故障注入粒度,包括但不限于模型粒度,层粒度,操作粒度等;

优选为:所述步骤2中的操作级故障注入平台,具体操作步骤包括:

步骤s1:比特错误率值乘以总的操作个数计算出需要注入的比特的个数,在计算操作值参数中随机选择比特值;

步骤s2:将步骤s1选取的比特值中的1变成0或者0变成1,使得数据产生比特翻转错误;

步骤s3:然后依据有故障之后的数据再执行winograd卷积神经网络运算。

优选为:所述winograd卷积神经网络通常包括winograd卷积层,归一化层,池化层,全连接层等几大类层。依据不同类型层的排序,不同层的个数组成不同的winograd卷积神经网络。其中winograd卷积层首先将输入和权值进行winograd变换,然后进行元素级的乘法运算,最后进行winograd反变换,得到winograd卷积层的结果。

优选为:所述数据集包括但不限于CIFAR-10,ImageNet。

本发明还提供了一种winograd卷积神经网络脆弱性评估装置,包括:

控制模块,数据处理模块,故障注入模块,测试模块。其中:

控制模块,与数据处理模块,故障注入模块,测试模块相连,控制各个模块间的进程执行和数据传输任务;

数据处理模块,接收控制模块发来的控制指令,采集被测网络的winograd卷积层的计算操作值,发送计算操作值到故障注入模块;

故障注入模块,接收来自数据处理模块的计算操作值,进行随机比特翻转操作,生成有故障值后的数据传送到测试模块;

测试模块,接收来自故障注入模块的带有故障值的数据,作为模型的winograd卷积层中的计算操作值,重新执行神经网络算法运算,生成精度结果。

有益效果

本发明通过对基于winograd卷积的神经网络执行网络级,层级,操作级的脆弱性评估,以达到对研究对象的容错能力的更全面了解,并且Winograd卷积脆弱性评估相比传统卷积的脆弱性评估计算量更少,耗费时间更短。

附图说明

图1是本发明一种winograd卷积神经网络脆弱性评估方法的流程示意图;

图2是针对图1中步骤12的操作级故障注入平台的流程示意图;

图3是本发明一种winograd卷积神经网络脆弱性评估装置示意图。

具体实施方式

为了使本发明的目的、技术方案以及优点更加清楚明白,以下结合附图,对本发明的实施例中提供的一种winograd卷积神经网络脆弱性评估方法及装置进行进一步详细说明。

参看图1所示。本发明一种winograd卷积神经网络脆弱性评估方法的流程示意图,其步骤包括:

步骤11:下载ImageNet数据集,将数据集中的图像逐一输入到基于winograd卷积的神经网络中,在执行winograd卷积层中转换阶段和元素级乘法运算阶段时,将其中的乘法和加法操作的结果值提取出来作为参数值;

作为一种具体实现,包含如下子步骤:

步骤11.1:选择公开的ImageNet图像数据库中的Training images和Validationimages,将其中的图像统一缩放到规定的尺寸224x224像素,作为输入数据集;

步骤11.2: 基于winograd卷积的神经网络计算首先依据网络中的权值g以及转换矩阵G,计算针对权值矩阵g的中间矩阵

步骤12:设置一个比特错误率值和故障注入粒度,例如1E-10和网络粒度,将步骤11中采集的乘法和加法操作值,设置的比特错误率值和故障注入粒度三种参数输入到操作级故障注入平台的代码中,获取精度值;

假设比特错误率为1E-10,所采集的乘法操作值的个数为

步骤13:比特错误率值从低到高取值,例如1E-10到1E-7,依次将每个比特错误率值作为模型输入,在每个比特错误率下迭代执行步骤12,输出每种比特错误率下对应的精度值;

假设依次设置比特错误率值从低到高为[1E-10,5E-10,1E-9,5E-9,1E-8,5E-8,1E-7,5E-7],则每种比特错误率下对应的输出精度值为[81.7,73.4,69.5,61.2,49.5,42.1,20.7,9.9];通过设置步骤12中的比特错误率值和故障注入粒度,获取不同粒度下基于winograd卷积的神经网络在不同比特错误率值下的精度值,精度值越低表明越脆弱。

需要说明的是,所述基于winograd卷积的神经网络,包括但不限于基于winograd卷积的VGG,基于winograd卷积的ResNet等;

所述比特错误率值,是指出现故障的比特个数占总的比特数的百分比值,如1E-10;

所述故障注入粒度,包括但不限于模型粒度,层粒度,操作粒度等;

图2是本发明所述图1步骤12中的操作级故障注入平台的流程示意图,其步骤包括:

步骤21:比特错误率值乘以总的操作个数计算出需要注入的比特的个数,在计算操作值参数中随机选择比特值;

步骤22:将步骤21选取的比特值中的1变成0或者0变成1,使得数据产生比特翻转错误;

步骤23:然后依据故障数据再执行winograd卷积神经网络运算。

所述步骤23中的winograd卷积神经网络通常包括winograd卷积层,归一化层,池化层,全连接层等几大类层。依据不同类型层的排序,不同层的个数组成不同的winograd卷积神经网络。其中winograd卷积层首先将输入和权值进行winograd变换,然后进行元素级乘法运算,最后进行winograd反变换,得到winograd卷积层的结果。

图3是本发明一种winograd卷积神经网络脆弱性评估装置示意图,包括:控制模块31,数据处理模块32,故障注入模块33,测试模块34。利用数据处理模块32处理ImageNet图像数据库中的图像作为输入数据集,传输到故障注入模块33执行操作级故障注入平台上的计算操作,然后依据故障数据传输到测试模块34执行winograd卷积神经网络运算,获取比特错误率值下对应的精度值。

其中,所述控制模块31,与数据处理模块32,故障注入模块33,测试模块34相连,用于控制各个模块间的进程执行和数据传输等任务;

所述数据处理模块32,接收控制模块31发来的控制指令,用于处理公开的ImageNet图像数据库中的Training images和Validation images中的图像集,将其中的图像统一缩放到规定的尺寸224x224像素,作为输入数据集;以及执行步骤11中的采集winograd卷积层中乘法和加法操作的结果值,将采集的计算操作值到故障注入模块33;

所述故障注入模块33,接收来自数据处理模块32的计算操作值,执行步骤12中操作级故障注入操作,利用比特错误率值乘以总的计算操作值个数计算出需要注入的比特的个数,在计算操作值中随机选择比特值;将选取的比特值中的1变成0或者0变成1,使得数据产生比特翻转错误,生成有故障值后的数据传送到测试模块34;

所述测试模块34,接收来自故障注入模块33的带有故障值的数据,作为模型的winograd卷积层中的计算操作值,执行步骤23中的winograd卷积神经网络,利用带有故障值的数据依次执行输入特征图矩阵d的winograd变换

通过上述实施例,本发明提供一种winograd卷积神经网络脆弱性评估方法及装置,区别于传统的对权值和激活值的错误注入,以及区别于对传统卷积层的脆弱性评估方法,该评估方法利用操作级故障注入平台实现对计算操作的错误注入,并且实现对winograd卷积神经网络进行脆弱性评估。

但本领域普通技术人员应理解,本发明提出的脆弱性评估方法及装置适用于包含winograd卷积的各个网络及应用中。虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所做出的各种改变以及变化。

技术分类

06120114730434