基于硬件特征信息的神经网络加速器故障脆弱性评估方法

文档序号:30226040发布日期:2022-06-01 01:16阅读:131来源:国知局
基于硬件特征信息的神经网络加速器故障脆弱性评估方法

1.本发明属于硬件故障安全性评估等领域,尤其涉及一种基于硬件特征信息的神经网络加速器故障脆弱性评估方法。


背景技术:

2.深度学习为各种各样的边缘设备提供了支持,神经网络硬件加速器的广泛使用引起了人们对其安全性和健壮性的关注。虽然深度神经网络(deep neural network,dnn)模型在预测方面已经进化到超越人类的程度,但它们的预测行为涉及复杂的训练过程和对大量权重参数的适应,这使得神经网络的计算具有不可解释性。当被部署在硬件(如fpga、asic等)上的dnn模型的计算中出现误差时(不管是人为的还是自然发生的),神经网络的推理过程就会受到破坏。这使得不同dnn模型的容错性成为近年来备受关注和争论的话题。
3.故障注入攻击是导致神经网络硬件加速器出现误差的主要方法之一。各种故障攻击,如激光注入、温度变化、电磁注入以及rowhammer会从各种层面影响神经网络中的电路操作。目前,大多数现有的深度学习故障攻击集中在模型参数(weights)操作,激活函数(activation function)修改等领域。为了评估dnn模型在故障下的鲁棒性,现有的针对神经网络的故障脆弱性评估主要可以分为故障注入模拟和故障空间探索两大类,包括:基于白盒测试的故障定位分析方法;研究硬件故障在不同硬件设备和架构的数据路径和内存中的传播、可控性以及可观察性等。
4.尽管这些传统的硬件故障评估方案在搜索和定位策略上存在差异,但大多数评估框架中的故障模型都是比较简单的,并假设硬件故障所引起的误差在神经网络中均匀分布。这种简单化的假设很可能与dnn硬件上的实际故障攻击场景不匹配,从而导致这些评估方案给出的结果准确性较低。此外,目前的故障评估方案大多数都是针对整个神经网络来评估网络的整体鲁棒性,而对于网络逐层鲁棒性的验证工作比较少。


技术实现要素:

5.本发明的目的在于针对现有技术中神经网络硬件加速器的故障评估框架中故障模型简单,软硬件部分割裂化严重的不足,提供一种基于硬件特征信息的神经网络加速器故障脆弱性评估方法。本发明将被攻击的硬件神经网络当中的某些信息特征提取出来输入到软件模型中,从而构建一个软硬件一体化的闭环评估架构,提升硬件神经网络脆弱性评估的准确性,同时通过层际搜索,优化评估的细粒度。
6.本发明的目的是通过以下技术方案来实现的:一种基于硬件特征信息的神经网络加速器故障脆弱性评估方法,包括以下步骤:
7.1)待评估神经网络硬件特征信息提取;
8.首先,将原始的目标神经网络部署在硬件加速器中,输入一批数据data
input
,使目标神经网络完成一遍完整的推理过程并得到最终结果,提取在硬件内存中神经网络运算的中间值结果r
pristine
与网络对于这批数据的预测准确率acc
pristine

9.接着,重新输入同一批数据,对硬件加速器注入故障,同时使目标神经网络完成一遍完整的推理过程并得到最终结果,提取在硬件内存中神经网络运算的中间值结果r
fault

10.2)故障行为建模;
11.利用提取到的硬件故障注入前后的硬件特征信息r
pristine
,acc
pristine
与r
fault
,对故障的行为特征进行建模,建模包括故障分布模拟以及故障概率模拟。
12.通过故障分布模拟与故障概率模拟,推导出在将故障注入神经网络内部计算过程中时,其受损数据块在整个内存中的分布情况以及每一个受损数据块的受损程度。
13.3)神经网络故障脆弱性评估;
14.在软件层面对整个神经网络展开脆弱性评估,通过层际搜索的方法确认神经网络每一层在遭受故障攻击时所产生的性能下降。
15.具体地,对神经网络当中的每一层,重复步骤1)~2)的硬件特征信息提取与故障建模,最终得到整个神经网络的硬件故障脆弱性模型。
16.在完成模型构建后,对神经网络进行层际脆弱性搜索,得到网络所有层在面临故障攻击时的受损分类准确率acc
fault

17.用acc
pristine
与acc
fault
的差异,量化评价网络各层的脆弱性。
18.进一步地,步骤2)中,对于故障分布模拟,通过比较r
pristine
与r
fault
中有差异数据的分布情况,模拟出硬件故障导致的受损数据块在该神经网络所有中间值计算结果中的分布效果。提出两种故障分布的模拟形式:散点分布与带状分布。通过提取到的硬件信息特征,估算受损数据在总数据中的占比:
[0019][0020]
其中,d
fault
为r
fault
中受损数据的总量,d
all
为r
fault
中总数据量。
[0021]
进一步地,步骤2)中,对于故障分布模拟:
[0022]
在散点分布中,决定故障数据块在总数据块中出现的概率需满足:
[0023]
p
fault
=r
fault
ꢀꢀꢀ
(2)
[0024]
在带状分布中,除了故障概率需满足公式(2)中要求,还要求每当出现故障数据块时,总是有n个相邻数据块同时受损,其中n为根据硬件类型与故障种类不同而自主设定的带状分布系数。
[0025]
进一步地,散点分布指的是故障数据呈点状各自分散在硬件内存中;带状分布指的是故障数据集中簇拥成带状存在于硬件内存中。
[0026]
进一步地,步骤2)中:
[0027]
对于故障概率模拟,通过比较r
pristine
与r
fault
中每个受损数据块数据的受损程度,模拟出硬件故障导致的数据块受损概率。具体地:
[0028]
对于r
fault
中每一个受损数据块,计算其与原始数据块之间的差异,最后统计出每种差异所出现的概率:
[0029]
[0030][0031]
其中,d
fault
(i)表示第i个受损数据块的值,d
pristine
(i)表示与d
fault
(i)对应的原始数据块的值,diff表示特定的受损数据块与原数据块之间的差异。
[0032]
为了更好地推断每一个diff的概率,将p(diff)与johnson’s su分布进行拟合,通过johnson’s su公式推导,当某一数据块受损时,对应地各种差异diff出现的可能性。
[0033]
进一步地,步骤2)中,对于故障概率模拟,johnson’s su公式如下:
[0034][0035]
其中,δ为第一个形状参数,λ为尺度参数,ξ为位置参数,γ为第二个形状参数。
[0036]
进一步地,步骤3)中,对神经网络进行层际脆弱性搜索,包括以下子步骤:
[0037]
3.1)将data
input
输入进神经网络中,将故障注入到第j个神经网络目标层layerj。
[0038]
3.2)使神经网络完整运行一遍推理过程。
[0039]
3.3)得到最终网络第j层受损分类准确率acc
fault,j

[0040]
3.4)重复步骤3.1)~3.3),最终得到网络所有层在面临故障攻击时的受损分类准确率acc
fault

[0041]
本发明的有益效果是:
[0042]
(1)本发明填补了针对神经网络的硬件故障脆弱性评估,和针对复杂故障的系统化的模拟与评估方法的空白,进一步保障硬件神经网络加速器的安全;
[0043]
(2)本发明给出了通过软件模拟复杂硬件故障的具体、系统的方法,通过故障分布模拟与故障概率模拟两部分相结合,使故障评估框架不止局限于基于均匀分布或随机分布的故障模型,从而使复杂故障的评估成为可能;
[0044]
(3)本发明根据整个分析过程,给出了神经网络在面对硬件故障时脆弱性的评估标准,给出了系统且完整的评估框架,细化了评估的细粒度。
附图说明
[0045]
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0046]
图1为本发明基于硬件特征信息的神经网络加速器故障脆弱性评估方法的流程图;
[0047]
图2为本发明提出的两种故障分布的模拟形式示意图;其中,a为散点分布,b为带状分布;白色的数据块表示因故障攻击而受损的数据,黑色的数据块表示未被故障攻击影响的数据;
[0048]
图3为本发明实施例的脆弱性评估方法用于分析时钟毛刺故障对于vgg16神经网络影响的结果图;其中,a为使用johnson’s su公式对数据块受损概率进行拟合的效果,b为软件模拟故障的表现与实际场景下硬件故障的表现之间的差异,c为对vgg16进行层际搜索得到的结果。
具体实施方式
[0049]
为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0050]
本发明一种基于硬件特征信息的神经网络加速器故障脆弱性评估方法,利用从神经网络硬件加速器中提取的信息特征,对硬件故障的故障分布与故障概率进行建模;从而改进现有的故障攻击框架,实现复杂故障注入的模拟,通过层际搜索进行神经网络各层的脆弱性验证,搜索出网络当中脆弱性较高的部分。
[0051]
如图1所示,该方法包括以下步骤:
[0052]
1)待评估神经网络硬件特征信息提取。
[0053]
1.1)首先,将原始的目标神经网络部署在硬件加速器中,输入一批数据data
input
,使目标神经网络完成一遍完整的推理过程,并得到最终结果;提取在硬件内存中,神经网络运算的中间值结果r
pristine
,与网络对于这批数据的预测准确率acc
pristine
,并保存。
[0054]
1.2)接着,重新输入同一批数据data
input
,对硬件加速器注入故障,同时使目标神经网络完成一遍完整的推理过程,并得到最终结果;提取在硬件内存中,神经网络运算的中间值结果r
fault
,并保存。
[0055]
2)故障行为建模。
[0056]
利用步骤1)提取到的硬件故障注入前后的硬件特征信息r
pristine
、acc
pristine
、r
fault
,对故障的行为特征进行建模;建模包括故障分布模拟以及故障概率模拟。通过故障分布模拟与故障概率模拟,可以推导出,在将故障注入神经网络内部计算过程中时,其受损数据块在整个内存中的分布情况以及每一个受损数据块的受损程度。
[0057]
2.1)对于故障分布模拟,通过比较r
pristine
与r
fault
中有差异数据的分布情况,可以模拟出,硬件故障导致的受损数据块,在该神经网络所有中间值计算结果中的分布效果。
[0058]
如图2a和图2b所示,本发明提出的两种故障分布的模拟形式为散点分布和带状分布;白色的数据块表示因故障攻击而受损的数据,黑色的数据块表示未被故障攻击影响的数据。散点分布指的是故障数据呈点状各自分散在硬件内存中,带状分布指的是故障数据集中簇拥成带状存在于硬件内存中。
[0059]
通过提取到的硬件信息特征,可以估算受损数据在总数据中的占比r
fault

[0060][0061]
其中,d
fault
为r
fault
中受损数据的总量,d
all
为r
fault
中总数据量。
[0062]
2.1.1)在散点分布中,决定故障数据块在总数据块中出现的概率p
fault
需满足:
[0063]
p
fault
=r
fault
ꢀꢀꢀ
(2)
[0064]
2.1.2)在带状分布中,除了故障概率需满足公式(2)中要求,还要求每当出现故障数据块时,总是有n个相邻数据块同时受损,其中n为根据硬件类型与故障种类不同而自主设定的带状分布系数。
[0065]
2.2)对于故障概率模拟,通过比较r
pristine
与r
fault
中每个受损数据块数据的受损程度,可以模拟出硬件故障导致的数据块受损概率。
[0066]
具体地,对于r
fault
中每一个受损数据块,计算其与原始数据块之间的差异,最后统计出每种差异diff所出现的概率p(diff):
[0067][0068][0069]
其中,d
fault
(i)表示第i个受损数据块的值,d
pristine
(i)表示与d
fault
(i)对应的原始数据块的值,diff表示某种的受损数据块与原数据块之间的差异,v
fault
(i)表示d
pristine
(i)与d
fault
(i)的差异刚好是diff时d
fault
(i)的值。
[0070]
为了更好地推断每一个diff的概率,将p(diff)与johnson’s su分布进行拟合,johnson’s su公式如下:
[0071][0072]
其中,δ为第一个形状参数,λ为尺度参数,π为圆周率,ξ为位置参数,γ为第二个形状参数。
[0073]
通过将p(diff)进行拟合,便可以用johnson’s su公式推导,当某一数据块受损时,对应地各种差异diff出现的可能性。
[0074]
3)神经网络故障脆弱性评估。
[0075]
在软件层面对整个神经网络展开脆弱性评估,通过层际搜索的方法,确认神经网络每一层在遭受故障攻击时所产生的性能下降。
[0076]
具体地,由于神经网络各层结构不同、参数不同,在遭受硬件故障攻击时所表现出来的鲁棒性与其硬件特征信息也有差异。因此,对神经网络当中的每一层,重复步骤1)~2)的硬件特征信息提取与故障建模,最终得到整个神经网络的硬件故障脆弱性模型。
[0077]
在完成硬件故障脆弱性模型构建后,对神经网络进行层际脆弱性搜索,具体做法为:
[0078]
3.1)将data
input
输入进神经网络中,将故障注入到第j个神经网络目标层layerj。
[0079]
3.2)使神经网络完整运行一遍推理过程。
[0080]
3.3)得到最终网络第j层受损分类准确率acc
fault,j

[0081]
3.4)重复步骤3.1)~3.3),最终得到网络所有层在面临故障攻击时的受损分类准确率acc
fault

[0082]
通过比较acc
pristine
与acc
fault
之间的差异,可以得到网络各层的脆弱性。acc
pristine
与acc
fault
之间的差异代表了故障注入前后神经网络性能的下降,网络的脆弱性可以由该差异值体现,差异越大,性能下降越多,脆弱性越强;用差异量化评价脆弱性,两者正相关。
[0083]
实施例
[0084]
为验证本发明一种基于硬件特征信息的神经网络加速器故障脆弱性评估方法的有效性,开展实验。参照图3,选用目标神经网络为vgg16,故障类别为时钟毛刺故障。
[0085]
图3a为使用johnson’s su公式对数据块受损概率进行拟合的效果,从图中可以看
出通过johnson’s su可以比较完美地拟合实际硬件数据块受损概率分布情况。图3b为软件模拟故障的表现与实际场景下硬件故障的表现之间的差异,可以看到vgg16中大多数层之间的差异均在0.1以内,说明了软件模拟故障的准确性。图3c为对vgg16进行层际搜索得到的结果,可以看出vgg16在1,14,16层具有较高的脆弱性,攻击者在这些层注入故障可以很轻易地破坏网络的性能,搜索结果验证了基于硬件特征信息提取的神经网络加速器故障脆弱性评估方法的有效性。
[0086]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1