深度学习测试-DeepXplore
深度学习测试-DeepXplore
- (一)为什么研究深度学习的测试方法
- 深度学习应用广泛
- 深度学习并不鲁棒
- (二)DeepXplore
- 启示(idea)
- DeepXplore的贡献
- DeepXplore贡献具体内容
- DeepXplore算法
- (三)实验过程
- (四)验证Neuron Coverage的有效性
- (1)Neuron coverage VS Code coverage
- (2)不同class的数据激活更多神经元
(一)为什么研究深度学习的测试方法
深度学习应用广泛
Deep Learning system目前很火,已经应用于多个领域,包括图像识别、语音识别,同时自动驾驶及流氓软件的检测等问题上也已经开始使用。
深度学习并不鲁棒
对抗攻击:
图像经过针对深度学习模型的对抗攻击,对图片增加噪点,合成出新的图像。该图像人眼识别没有改变,却使得深度学习模型产生了错误的行为。
在安全性要求极强的领域中,如自动驾驶问题,并不鲁棒的模型可能会导致无法承受的后果,所以迫切需要对DL system有效的测试方法,来验证DL system是否鲁棒。
(二)DeepXplore
启示(idea)
传统软件需要充分的测试来保证其鲁棒性,同样深度学习系统也需要测试。
在测试传统软件时,代码覆盖率(即:测试案例执行代码语句占所有语句的百分比)是衡量系统测试充分性的重要指标。
将这一思想映射到深度学习系统中:测试集执行深度学习系统的占比,作为衡量深度学习系统测试充分性的重要指标。
DeepXplore的贡献
(1)神经元覆盖率:Neuron Coverage
深度学习系统第一个白盒测试标准,用来评估一组测试集所执行的逻辑量。
(2)生成新输入集(可以触发深度学习系统不同的逻辑)
建立联合优化问题,利用梯度来进行求解,最终生成新的输入集。联合优化问题有两个目标:最大化神经元覆盖率,最大化差异行为(differential behaviors)。
(3)新输入集自动打label
训练多个DNN,输入input后,多个DNN进行投票。
(4)新输入集再训练
用新输入集对模型进行再训练,用来提升模型的准确率和识别被污染的数据。
DeepXplore贡献具体内容
(1)定义神经元覆盖率(NC:Neuron coverage):
首先需要明白的概念:
什么样的神经元叫做被激活了的:一个神经元的输出值高于阈值,即被激活。
DNN的神经元集合为 N={ n1 , n2 , n3…};测试集 T = {x1 , x2 , x3…};out(n,x)是输入值为x,神经元n的输出值。
NC=激活的神经元个数 / 所有的神经元个数
举个例子:
阈值设置为0,则NC=5/8=0.625.
(2)生成新的测试集:
生成的新的输入集要满足两个目标:
目标1:覆盖更多的神经元(达到覆盖更多的逻辑的目的)
目标2:新输入集可以使得模型出错
构建联合优化问题来达成目标:
1.最大化差异行为(Maximizing differential behaviors)
目的:有n个DNN,通过对输入的干扰,使得n个DNN中至少有一个DNN与其他的DNN行为不同。
有n个DNN,Fk表示一个DNN,k∈[0,n]。
object 1 = 多个DNN的输出值 - 某个DNN的输出值
object 1的值越大,则说明他们的差距越大,即行为越不同。
2. 最大化神经元覆盖率(Maximizing neuron coverage)
目的:覆盖更多的逻辑块
实现的方法:迭代的挑选没有激活的神经元,对输入进行干扰,使得经过该神经元得到的输出大于阈值,即神经元被激活。
object 2 = 输入x,经过神经元n之后的输出值
通过对x干扰,使得object 2 > 阈值
3.联合优化:
λ1与λ2作为权重,也可以看作是开关,来控制平衡两个目标。
λ1:用来控制某一DNN和其他DNNs的output的差,λ1越大,差越大,分类也就越不相同
λ2:用来设置优先权,最大化神经元覆盖率和最大化差异行为谁更优先
采用梯度上升的方法进行联合优化,object joint的值越大,说明object 1的值与object 2值越大,则行为越不同,神经元输出值越大。object joint的每一项都是可微的。
3.特定的约束
在满足两个目标的同时,生成的测试集还需满足一些特定的约束。例如测试集是图片,则需要满足像素在0-255。
DeepXplore算法
(三)实验过程
五个数据集:MNIST、ImageNet、Driving、Contagio、Drebin
DNN:每个数据集使用三个DNN,总共15个。
特定约束:
1.图片类数据集:(1)用于模拟不同照明强度的照明效果,(2)由单个小矩形遮挡,用于模拟攻击者可能遮挡图像的某些部分,以及(3)由多个小黑色矩形遮挡,用于模拟灰尘对照相机镜头的影响。
(四)验证Neuron Coverage的有效性
利用了两个方法来验证有效性:
(1)Neuron coverage VS Code coverage
对比神经元覆盖率和代码覆盖率,得出神经元覆盖率是更好的测试标准。
C1,C2,C3是三个DNN
从原始的数据集中随机选取10个input,发现代码覆盖率都达到了100%,神经元覆盖率没有超过34%,即使使用完整的测试集,例如MNIST数据集,C1、C2和C3的神经元覆盖率仅分别达到57.7%、76.4%和83.6%,仍有许多神经元未被覆盖。
实验结果:
结论:神经元覆盖率 better than 代码覆盖率
(2)不同class的数据激活更多神经元
每个神经元会在训练过程中,学习到相应的能力,能够识别特定的特征。
那么同一class的数据,特征更加相似。
则同一class的数据激活的神经元,就会有大量重复的。
那么不同class的数据,理论上来说,会激活更多的神经元。
实验结果:
结论:不同类别的input,确实可以达到更高的神经元覆盖率
下一篇:DeepGauge
深度学习测试-DeepXplore相关推荐
- 英伟达RTX 2080 Ti值得买么?深度学习测试来了!
Lambda Lab 出品 伊瓢 编译 量子位 报道 | 公众号 QbitAI 英伟达新发布的RTX 2080 Ti跑深度学习怎么怎么样? 美国人工智能公司Lambda用TensorFlow测试了 ...
- 百面机器学习和百面深度学习-测试1
11 1.特征归一化: 数据的量纲和大小不同会导致数据对模型的影响程度不同,每个特征对模型造成的影响不同. 2.怎么处理类别特征: (类似于男女之类的类别)one-hot编码 3.什么是组合特征,怎么 ...
- 深度学习测试结果可视化分析——matplotlib 鼠标响应事件
前段时间在IP102数据集上做了一些实验,在测试集上的预测结果通过文本的方式不便于直接观察,于是有了一些可视化的需求:可视化数据的原始分布和各类别的预测情况. 分析 可视化数据的原始分布直接通过 pl ...
- NVIDIA深度学习Tensor Core性能解析(下)
NVIDIA深度学习Tensor Core性能解析(下) DeepBench推理测试之RNN和Sparse GEMM DeepBench的最后一项推理测试是RNN和Sparse GEMM,虽然测试中可 ...
- 【深度学习】深度学习中的单元测试
作者 | Manpreet Singh Minhas 编译 | VK 来源 | Towards Data Science 深度学习/机器学习工作流程通常不同于人们对正常软件开发过程的期望.但这并不意味 ...
- 360题带你走进深度学习!吴恩达深度学习课程测试题中英对照版发布
吴恩达的深度学习课程(deepLearning.ai)是公认的入门深度学习的宝典,本站将课程的课后测试题进行了翻译,建议初学者学习.所有题目都翻译完毕,适合英文不好的同学学习. 主要翻译者:黄海广 内 ...
- 成本低廉的深度学习与渲染显卡购买方案--英伟达矿卡P106
此方案适用于个人或小型企业,此方案有不稳定性,如果预算充足请购买Tesla 显卡 转载请注明出处 视频:https://www.bilibili.com/video/av35317062 渲染,深度学 ...
- 机器学习和深度学习的三点关键区别
机器学习和深度学习的三点关键区别 最简单.最重要的三点区别 深度学习是机器学习的一种子类,通常我们讲的机器学习是传统机器学习方法,比较也是建立于传统机器学习和深度学习两者的区别. 学习的东西不同 训练 ...
- 深度学习与中文短文本分析总结与梳理
感谢原著,原文出处:https://www.cnblogs.com/wangyaning/p/7853879.html 1.绪论 过去几年,深度神经网络在模式识别中占绝对主流.它们在许多计算机视觉任务 ...
最新文章
- 【转】常见系统中文字体的英文名
- 程序员需要牢记的一点
- linux 命令行使用wget下载百度云资源
- C语言读取大文件的问题 内存映射
- wordpress教程之函数site_url()、home_url()、bloginfo(‘url’)的区别
- “异常的”间谍软件窃取工业企业凭据
- Oracle常用操作【自己的练习】
- 蓝桥ROS机器人之51单片机C代码编译和下载
- 基于linux下QT象棋,课内资源 - 基于QT实现的网络象棋游戏
- torchtext.vocab
- 数字与英文字母转换matlab,MATLAB编程:数值(0-25)转换成大写英文字母
- 【转】我奋斗了18年不是为了和你一起喝咖啡
- 大牛手把手教你!Service有几种启动方式?吐血整理
- 法律诉讼知识:民事诉讼流程
- 404错误页面的设置方法步骤(图)附404模板下载
- linux下 恢复gho镜像,手动使用ghost恢复win7系统gho镜像包教程
- 【网络文摘】一家公司要了你后,凭什么给你开高工资?
- java swing做横排下拉菜单
- FreeCAD源码分析:FreeCADMain模块
- 中国十大最意想不到的外资企业(转)