CN108256633B - 一种测试深度神经网络稳定性的方法 - Google Patents
一种测试深度神经网络稳定性的方法 Download PDFInfo
- Publication number
- CN108256633B CN108256633B CN201810114312.3A CN201810114312A CN108256633B CN 108256633 B CN108256633 B CN 108256633B CN 201810114312 A CN201810114312 A CN 201810114312A CN 108256633 B CN108256633 B CN 108256633B
- Authority
- CN
- China
- Prior art keywords
- layer
- dithering
- output
- neural network
- characteristic diagram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及一种测试深度神经网络稳定性的方法,包括以下步骤:将初始测试图像输入深度神经网络;将某一层的输入参数进行多次抖动,得到多个不同的输入参数,再分别使用多个参数进行该层的计算;上述步骤仅在某一层执行或者分别在多个层执行,并继续完成整个网络的计算,得到多个输出结果;多个输出结果累加后取平均值,作为最终结果;将最终结果和抖动之前的输出结果相减算出差值,差值越小则稳定性越高。本发明的方案将深度神经网络的中间参数进行抖动,不仅能够观察神经网络在应对一些低级、简单的特征变化时的稳定性,还能够观察到深度神经网络在应对高级特征变化时的稳定性,从而更全面地对神经网络进行测试。
Description
技术领域
本发明属于机器学习技术领域,具体涉及一种测试深度神经网络稳定性的方法。
背景技术
深度神经网络在图像处理领域获得了广泛的应用。然而当一个网络训练完毕时,在真实使用场景下网络有时表现不够稳定,因为真实世界的图像和训练时往往有些许变化,这可能是由于图像采集机器型号的不同(光学相机,CT等),或者是拍摄操作者的习惯问题,也有可能是环境(光线情况等)的影响。而真实世界的数据变化情况往往难以获取全面,如在医疗影像中,不同的医院往往使用不同的仪器,而每一个医疗数据获取都有严格的隐私问题。因此,在开发阶段模型训练完毕时,尤其是训练了多个模型的情况,如何选择稳定性最强的模型,是投入应用之前需要关心的重点问题。
关于这个问题,目前对模型稳定性测量的方式主要是,对初始的测试数据增加噪声来观察对模型输出准确率的影响。首先,这种方式需要对图像进行预处理,这显然增加了很多计算量。其次,该方法只能观察模型对一些低级特征变化的稳定性,而无法观察模型对高级特征变化的稳定性。
发明内容
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种更加全面的测试深度神经网络稳定性的方法。
为实现以上目的,本发明采用如下技术方案:
一种测试深度神经网络稳定性的方法,包括以下步骤:
将初始测试图像输入深度神经网络;
将某一层的输入参数进行多次抖动,得到多个不同的输入参数,再分别使用多个参数进行该层的计算;
上述步骤仅在某一层执行或者分别在多个层执行,并继续完成整个网络的计算,得到多个输出结果;
多个输出结果累加后取平均值,作为最终结果;
将最终结果和抖动之前的输出结果相减算出差值,差值越小则稳定性越高。
其中,所述深度神经网络包括级联的多个卷积层,卷积层之后还级联有全连接层。
进一步地,对输入参数进行抖动的方法为:
选取一个随机数,将输入参数与该随机数相乘,乘积再与输入参数本身相加,即得到一个新的输入参数。
在一个具体的技术方案中,进行抖动的所述输入参数为上一层输出的特征图。
对特征图进行抖动的具体步骤包括:
完成若干层的计算之后,输出的特征图为f;
从分布中选择一个δ值,抖动后的新的特征图为f+f×δ;
针对特征图的每一个通道,都分别选取不同的δ值进行抖动操作;
针对特征图上的每一个位置,都分别选取不同的δ值进行抖动操作;
其中,随机数δ服从均值为0的正态分布。
进一步地,可以对倒数第二层输出的特征图进行抖动操作;再将抖动后的多个新的特征图分别输入最后一层,计算后得出多个输出结果。
还可以对倒数第二层之前的某一层输出的特征图进行抖动操作;
或者对倒数第二层之前的多层分别进行特征图的抖动。
在另一个具体的技术方案中,进行抖动的所述输入参数为该层的内核。
对内核进行抖动的具体步骤包括:
最后一层的的初始内核为θn;
从分布中选择一个δ值,抖动后的新的内核为θn+δ×θn;
选择多个不同的δ值分别进行多次抖动操作,生成多个不同的内核,每个内核都对应一个新的最后一层。
倒数第二层输出的特征图为fp;将fp依次输入多个不同的最后一层进行计算,从而得出多个输出结果。
本发明的方案将深度神经网络的中间参数进行抖动,不仅能够观察神经网络在应对一些低级、简单的特征变化时的稳定性,还能够观察到深度神经网络在应对高级特征变化时的稳定性,从而更全面地对神经网络进行测试。本发明不需要对初始的测试数据进行预处理,减少了这些计算量,同时还不影响最终的测试效果。虽然抖动多次之后,每一次仍然需要进行相应的计算;但是每一次需要通过的层数比较少,这与通过整个神经网络相比,计算量低了一个数量级。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种测试深度神经网络稳定性的方法流程图;
图2(a)是采用添加噪声来测试稳定性的方法流程图;
图2(b)是本发明抖动特征图来测试稳定性的方法流程图;
图2(c)是本发明抖动内核来测试稳定性的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
如图1所示,本发明提供一种测试深度神经网络稳定性的方法,包括以下步骤:
将初始测试图像输入深度神经网络;
将某一层的输入参数进行多次抖动,得到多个不同的输入参数,再分别使用多个参数进行该层的计算;
上述步骤仅在某一层执行或者分别在多个层执行,并继续完成整个网络的计算,得到多个输出结果;
多个输出结果累加后取平均值,作为最终结果;
将最终结果和抖动之前的输出结果相减算出差值,差值越小则稳定性越高。
其中,所述深度神经网络包括级联的多个卷积层,卷积层之后还级联有全连接层。
进一步地,对输入参数进行抖动的方法为:
选取一个随机数,将输入参数与该随机数相乘,乘积再与输入参数本身相加,即得到一个新的输入参数。
在一个具体的技术方案中,进行抖动的所述输入参数为上一层输出的特征图。
对特征图进行抖动的具体步骤包括:
完成若干层的计算之后,输出的特征图为f;
从分布中选择一个δ值,抖动后的新的特征图为f+f×δ;
针对特征图的每一个通道,都分别选取不同的δ值进行抖动操作;
针对特征图上的每一个位置,都分别选取不同的δ值进行抖动操作;
其中,随机数δ服从均值为0的正态分布,其方差可以是0.1或者其它值。
进一步地,可以对倒数第二层输出的特征图进行抖动操作;再将抖动后的多个新的特征图分别输入最后一层,计算后得出多个输出结果。
还可以对倒数第二层之前的某一层输出的特征图进行抖动操作;
或者对倒数第二层之前的多层分别进行特征图的抖动。
在另一个具体的技术方案中,进行抖动的所述输入参数为该层的内核。
对内核进行抖动的具体步骤包括:
最后一层的的初始内核为θn;
从分布中选择一个δ值,抖动后的新的内核为θn+δ×θn;
选择多个不同的δ值分别进行多次抖动操作,生成多个不同的内核,每个内核都对应一个新的最后一层。
倒数第二层输出的特征图为fp;将fp依次输入多个不同的最后一层进行计算,从而得出多个输出结果。
为进一步详述本专利,下面对本方案的原理以及具体的实施例进行拓展说明。
如图2(a)所示,在相关技术中,通常采用添加噪声的方式来测试稳定性,其具体算法如下:
算法1随机输入噪声法(I{1:n},T(),f())
1:p0←0,p1←0
2:对i=1→n进行: (n代表输入照片数量)
2.1:xi=T(Ii) (T()是对图像添加随机噪声)
2.2:p0i←f(xi) (p0i:对xi的分类器输出;f():CNN)
2.3:p1x←f(Ii)
2.4:p0←p0+p0i
2.5:p1←p1+p1i
3:p0←p0/n (添加噪声的输入的测试集平均结果)
4:p1←p1/n (原测试集的分类器平均结果)
5:Δp←|p0-p1| (计算差值)
其中p为分类器的输出,一般输出是每一个类别的概率;p0i为针对输入数据xi的输出结果。例如,一个分类器分辨一个图像的内容是猫还是狗,则输出结果是p(猫)=0.7,p(狗)=0.3。
可以看出,这种方法是很麻烦的,因为它需要预成型技术给图像添加随机噪声,而且每一个处理后的图像都需要通过整个网络来获得一个输出结果。可见,该方法获取一个输出结果的计算成本是很高的,而且该方法只能观察模型在应对一些低级、简单的特征变化时的稳定性,而无法观察模型在应对高级、复杂的特征变化时的稳定性。
基于此,本发明提出了对模型的权重和特征图进行抖动的方式来测量稳定性。测试图像仅通过CNN输入一次;然后在倒数第二层,对特征图进行微弱扰动k次,所有新的k个特征将通过分类器被发送至最终全连接层,以获取k个输出结果。获得多次抖动后的输出结果,再进行平均后获得最终准确率结果,并将这个最终结果和抖动之前的模型输出结果相减算出差值。差值最小的模型则为稳定性最好的模型。或者可以设置一个阈值a,如果差值在a以内(即Δp≤a)则说明模型稳定性可以接受,反之则不可接受。
算法2特征图抖动法(I{1:n},f(_|{θ1:n′-1,θn′}),μ,σ)
1:p0←0,p1←0
2:对i=1→n进行: (n张图片)
2.1:p0←p0+f(Ii) (未抖动的神经网络的输出)
2.2:mi←f(Ii|θ1:n′-1) (mi为倒数第二层输出的特征图)
2.3:p2←0
2.4:对j=1→k进行: (每张图片进行k次抖动操作)
2.4.1:δ∈N(μ,σ2) (选取随机数)
2.4.2:mi′←mi+δ×mi (抖动特征图)
2.4.3:p2←p2+f(m′i|θn′) (将新的特征图通过最后一层)
2.5:p2←p2/k
2.6:p1←p1+p2
3:p0←p0/n,p1←p1/n
4:Δp←|p0-p1|
本发明采用的方案是扩充特征图,而不是扩充图像,且依然能获取相似的效果。针对本实施例来说,初始的测试图像只通过网络进行一次计算,在倒数第二层才抖动特征图,因而获取一个输出结果的计算成本仅仅是最后一层的计算量。显然,本方法所需要的总计算量是很少的。对比算法1,获取一个输出结果的计算成本是整个网络的计算量。
当然,本方法可以在倒数第二层之前的全连接层进行特征图抖动,并且也不必限制在全连接层,它也可以在N维特征图中进行。此外,本方法不仅可以抖动某一层,还可以对多个层输出的特征图进行抖动,甚至对每一层的特征图进行抖动。需要说明的是,虽然抖动多次之后,每一次仍然需要进行相应的计算;但是每一次需要通过的层数比较少,这与通过整个神经网络相比,计算量还是要低很多。
除了特征图抖动,也可以对网络权重进行抖动。通过用不同组合对最后几个图层的权重进行微扰,从而获取更多的测试结果。
如图2(c)所示,显示了微扰内核(全连接权重)这种方法。其具体算法如下:
算法3内核(权重)抖动法(I{1:n},f(_|{θ1:n′-1,θn′}),μ,σ)
1:p0←0,p1←0
2:对i=1→n进行: (n张图片)
2.1:p0←p0+f(Ii) (未抖动的神经网络的输出)
2.2:mi←f(Ii|θ1:n′-1) (mi为倒数第二层输出的特征图)
2.3:p2←0
2.4:对j=1→k进行: (每张图片进行k次抖动操作)
2.4.1:δ∈N(μ,σ2) (选取随机数)
2.5:p2←p2/k
2.6:p1←p1+p2
3:p0←p0/n,p1←p1/n
4:Δp←|p0-p1|
综上所述,本发明的方案可以用多种方式来扰动内核和特征图。根据需要使图片发生的变形程度,我们可以改变下列参数:
1、添加到内核或特征图的噪声的大小:
(1)从分布(例如,N(0,0.1))中选择一个δ值。新的特征图,变f为f×(1+δ)。(扰动权重也是如此);
(2)为特征图的每个通道从分布中选择一个不同的δ值,并且针对每个通道重复上述步骤;
(3)为特征图的每个位置从分布中选择一个不同的δ值,并且针对每个空间位置重复上述步骤。
2、被扰动的层数。不仅可以对某一层进行抖动,也可以对多个层进行抖动。
需要说明的是,本发明的方法不限于分类任务,也可以用于检测等回归任务。此外,它并不局限于使用CNN,可以用于任何具有学习权重的网络,输入也不仅限于图像。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (4)
1.一种测试深度神经网络稳定性的方法,其特征在于,所述深度神经网络用于处理图像,包括以下步骤:
将初始测试图像输入深度神经网络;
将某一层的输入参数进行多次抖动,得到多个不同的输入参数,再分别使用多个参数进行该层的计算;
上述步骤仅在某一层执行或者分别在多个层执行,并继续完成整个网络的计算,得到多个输出结果;
多个输出结果累加后取平均值,作为最终结果;
将最终结果和抖动之前的输出结果相减算出差值,差值越小则稳定性越高;
所述深度神经网络包括级联的多个卷积层,卷积层之后还级联有全连接层;
其中,对输入参数进行抖动的方法为:
选取一个随机数,将输入参数与该随机数相乘,乘积再与输入参数本身相加,即得到一个新的输入参数;
进行抖动的输入参数为上一层输出的特征图;
对特征图进行抖动的具体步骤包括:
完成若干层的计算之后,输出的特征图为f;
从分布中选择一个δ值,抖动后的新的特征图为f+f×δ;
针对特征图的每一个通道,都分别选取不同的δ值进行抖动操作;
针对特征图上的每一个位置,都分别选取不同的δ值进行抖动操作;
其中,随机数δ服从均值为0的正态分布;
对倒数第二层输出的特征图进行抖动操作;再将抖动后的多个新的特征图分别输入最后一层,计算后得出多个输出结果;
对倒数第二层之前的某一层输出的特征图进行抖动操作;
或者对倒数第二层之前的多层分别进行特征图的抖动。
2.根据权利要求1所述的方法,其特征在于:进行抖动的输入参数为该层的内核。
3.根据权利要求2所述的方法,其特征在于,对内核进行抖动的具体步骤包括:
最后一层的初始内核为θn;
从分布中选择一个δ值,抖动后的新的内核为θn+δ×θn;
选择多个不同的δ值分别进行多次抖动操作,生成多个不同的内核,每个内核都对应一个新的最后一层。
4.根据权利要求3所述的方法,其特征在于:倒数第二层输出的特征图为fp;将fp依次输入多个不同的最后一层进行计算,从而得出多个输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810114312.3A CN108256633B (zh) | 2018-02-06 | 2018-02-06 | 一种测试深度神经网络稳定性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810114312.3A CN108256633B (zh) | 2018-02-06 | 2018-02-06 | 一种测试深度神经网络稳定性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108256633A CN108256633A (zh) | 2018-07-06 |
CN108256633B true CN108256633B (zh) | 2021-05-25 |
Family
ID=62744241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810114312.3A Active CN108256633B (zh) | 2018-02-06 | 2018-02-06 | 一种测试深度神经网络稳定性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108256633B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378362A (zh) * | 2019-04-22 | 2019-10-25 | 浙江师范大学 | 基于概念稳定特征及其差异化网络的概念学习方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787557A (zh) * | 2016-02-23 | 2016-07-20 | 北京工业大学 | 一种计算机智能识别的深层神经网络结构设计方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102611910B (zh) * | 2011-01-19 | 2014-04-16 | 北京东方文骏软件科技有限责任公司 | 基于关键帧图像质量加权的无参考视频质量客观评价方法 |
US9379546B2 (en) * | 2013-06-07 | 2016-06-28 | The Board Of Trustees Of The University Of Alabama | Vector control of grid-connected power electronic converter using artificial neural networks |
CN105068644A (zh) * | 2015-07-24 | 2015-11-18 | 山东大学 | 一种基于卷积神经网络的p300脑电信号检测方法 |
CN106250819A (zh) * | 2016-07-20 | 2016-12-21 | 上海交通大学 | 基于脸部实时监控检测人脸对称性及异常方法 |
CN106228185B (zh) * | 2016-07-20 | 2019-10-15 | 武汉盈力科技有限公司 | 一种基于神经网络的通用图像分类识别系统及方法 |
CN106485688B (zh) * | 2016-09-23 | 2019-03-26 | 西安电子科技大学 | 基于神经网络的高光谱图像重构方法 |
CN106875009A (zh) * | 2017-03-03 | 2017-06-20 | 深圳市唯特视科技有限公司 | 一种基于人工神经网络的混沌控制方法 |
-
2018
- 2018-02-06 CN CN201810114312.3A patent/CN108256633B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787557A (zh) * | 2016-02-23 | 2016-07-20 | 北京工业大学 | 一种计算机智能识别的深层神经网络结构设计方法 |
Non-Patent Citations (1)
Title |
---|
扰动作用下递归神经网络稳定性研究;高海宾;《中国博士学位论文全文数据库 信息科技辑》;20070215;第I140-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108256633A (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107529650B (zh) | 闭环检测方法、装置及计算机设备 | |
CN110378844B (zh) | 基于循环多尺度生成对抗网络的图像盲去运动模糊方法 | |
CN107330956B (zh) | 一种漫画手绘图无监督上色方法及装置 | |
KR102318772B1 (ko) | 도메인 분리 뉴럴 네트워크들 | |
CN107636690B (zh) | 基于卷积神经网络的全参考图像质量评估 | |
CN108830145B (zh) | 一种基于深度神经网络的人数统计方法及存储介质 | |
CN108230278B (zh) | 一种基于生成对抗网络的图像去雨滴方法 | |
CN111310518B (zh) | 图片特征提取方法、目标重识别方法、装置及电子设备 | |
CN112767279B (zh) | 一种基于离散小波集成生成对抗网络的水下图像增强方法 | |
JP6948851B2 (ja) | 情報処理装置、情報処理方法 | |
CN111178520A (zh) | 一种低计算能力处理设备的数据处理方法及装置 | |
CN111047543A (zh) | 图像增强方法、装置和存储介质 | |
US11974050B2 (en) | Data simulation method and device for event camera | |
JP7207846B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2022145825A (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
CN109325435B (zh) | 基于级联神经网络的视频动作识别及定位方法 | |
CN111160229A (zh) | 基于ssd网络的视频目标检测方法及装置 | |
CN113177892A (zh) | 生成图像修复模型的方法、设备、介质及程序产品 | |
CN108256633B (zh) | 一种测试深度神经网络稳定性的方法 | |
CN110930314B (zh) | 图像条带噪声抑制方法及其装置、电子设备、存储介质 | |
CN111951373B (zh) | 一种人脸图像的处理方法和设备 | |
CN115358952B (zh) | 一种基于元学习的图像增强方法、系统、设备和存储介质 | |
CN106412567A (zh) | 用于确定视频清晰度的方法及系统 | |
Hepburn et al. | Enforcing perceptual consistency on generative adversarial networks by using the normalised laplacian pyramid distance | |
JP2023017091A (ja) | 推定装置、推定方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |