【论文阅读】DeepXplore: Automated whitebox testing of deep learning systems.

本文主要是介绍【论文阅读】DeepXplore: Automated whitebox testing of deep learning systems.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一.论文信息
  • 二.论文结构
  • 三.论文内容
    • Abstract
    • 摘要
    • 现有工作存在的问题
    • 作者贡献
    • 总结
    • 相关工作
  • 四.论文总结
  • 五.相关资料

一.论文信息

题目: Deepxplore: Automated whitebox testing of deep learning systems【DeepXpolre:深度学习系统的自动白盒测试】

发表年份: 2017

期刊/会议: proceedings of the 26th Symposium on Operating Systems Principles(SOSP, CCF-A会议, 2017SOSP会议最佳论文

论文链接: https://dl.acm.org/doi/abs/10.1145/3132747.3132785

作者信息: Kexin Pei, Yinzhi Cao, Junfeng Yang, Suman Jana

二.论文结构

Abstract
1 Introduction
2 Background2.1 DL Systems2.2 DNN Architecture2.3 Limitations of Existing DNN Testing
3 Overview
4 Methodology4.1 Definitions4.2 DeepXplore algorithm
5 Implementation
6 Experimental Setup6.1 Test datasets and DNNs6.2 Domain-specific constraints
7 Results7.1 Benefits of neuron coverage7.2 Performance7.3 Improving DNNs with DeepXplore
8 Discussion
9 Related work
10 Conclusion

三.论文内容

Abstract

Deep learning (DL) systems are increasingly deployed in safety- and security-critical domains including self-driving cars and malware detection, where the correctness and predictability of a system’s behavior for corner case inputs are of great importance. Existing DL testing depends heavily on manually labeled data and therefore often fails to expose erroneous behaviors for rare inputs.

We design, implement, and evaluate DeepXplore, the first whitebox framework for systematically testing real-world DL systems. First, we introduce neuron coverage for systematically measuring the parts of a DL system exercised by test inputs. Next, we leverage multiple DL systems with similar functionality as cross-referencing oracles to avoid manual checking. Finally, we demonstrate how finding inputs forDL systems that both trigger many differential behaviors and achieve high neuron coverage can be represented as a joint optimization problem and solved efficiently using gradient-based search techniques.

DeepXplore efficiently finds thousands of incorrect corner case behaviors (e.g., self-driving cars crashing into guardrails and malware masquerading as benign software) in state-of-the-art DL models with thousands of neurons trained on five popular datasets including ImageNet and Udacity self-driving challenge data. For all tested DL models, on average, DeepXplore generated one test input demonstrating incorrect behavior within one second while running only on a commodity laptop. We further show that the test inputs generated by DeepXplore can also be used to retrain the corresponding DL model to improve the model’s accuracy by up to3%.

摘要

深度学习(DL)系统越来越多地部署在安全和安全关键领域(safety and security-critical domains),包括自动驾驶汽车和恶意软件检测,其中系统行为的正确性(correctness)和可预知性(predictability)对于极端案例(corner case)输入至关重要。现有的DL测试在很大程度上依赖于手动标记的数据(manually labeled data),因此通常无法发现罕见输入的错误行为。

我们设计、实施和评估了DeepXplore,这是第一个用于系统测试真实世界DL系统的白盒框架。首先,我们介绍了神经元覆盖率(neuron coverage),通过测试输入(by test inputs),用于系统地测量强化学习系统的各个部分。接下来,我们利用具有类似功能的多个DL系统作为交叉引用Oracle,以避免手动检查(munual checking)。最后,我们演示了如何用联合优化问题来表示DL系统的输入,并使用基于梯度的搜索技术有效地解决这些输入,这些输入既可以触发许多差异行为,又可以实现高神经元覆盖率。

DeepXplore在最先进的DL模型中有效地发现了数千种错误的案例行为(incorrect corner case behaviors)(例如,自动驾驶汽车撞上护栏(self-driving cars crashing into guard rails),恶意软件伪装成良性软件),这些模型中有数千个经过训练的神经元,包括ImageNet和Udacity自动驾驶挑战数据等流行数据集。对于所有测试过的DL模型,平均而言,DeepXplore在一秒钟内生成一个测试输入,显示仅在便携笔记本电脑上运行时的错误行为。我们进一步表明(we further show that),DeepXplore生成的测试输入也可以用于重新训练相应的DL模型,以将模型的精度提高3%。

现有工作存在的问题

对应的论文部分:2.3.Limitations of Existing DNN Testing

  • 昂贵的人工数据标记工作。 现有的深度学习测试技术需要花费高昂的人力来为目标任务提供正确的标签,而对于复杂任务来说,即使是领域专家也很难做这项工作。例如,考虑一个用于识别潜在恶意可执行文件的DNN。即使是安全专业人员,如果不执行可执行文件,也很难确定它是恶意的还是良性的。然而,在沙箱中执行和监视恶意软件会产生巨大的性能开销,因此,手动标记很难扩展到大量输入。
  • 测试覆盖率低(Low test coverage)。 现有的DNN测试方案都没有试图涵盖DNN的不同规则。(即使是对抗样本攻击,也只能说明DNN系统存在漏洞,至于系统还有没有其他漏洞或者存在其他问题,这是无法揭示的)。

例如上图的图(a)所示(传统测试语句),只有当x等于0xdeadbeef的时候才会发现到软件存在缺陷,但随机测试或者测试覆盖率较小的测试中,出现x等于0xdeadbeef的几率很小,那就很难发现系统缺陷。

作者贡献

(1)定义了神经元覆盖率(NC:Neuron coverage)。

神经元“激活” 是指:一个神经元的输出值高于阈值(人为设定的),即被激活。

神经元覆盖率(Neuron coverage, NC) 是指:激活的神经元个数 / 所有的神经元个数

如图所示,假设阈值为0,那么神经元输出值大于0的即为 “激活的神经元”。所以在这个神经网络中,一共有8个神经元,输出值大于0的有5个,所以NC=5/8。

(2)生成了新的数据集。

(3)新的输入集合可以自动打标签。

(4)模型利用新的数据集进行训练,可以提升模型的准确率和识别被污染的数据。

总结

  • 首先作者表明,在测量DNN测试输入的综合性方面,神经元覆盖率比代码覆盖率要好得多。 更具体地说,我们发现少量测试输入可以实现所有DNN的100%代码覆盖率,其中神经元覆盖率实际上小于34%。(在少量测试集的情况下,代码覆盖率很容易达到100%,但神经元覆盖率却很难。)
  • 不同类别的输入比同一类别的输入更容易激活独特的神经元。

这两个发现都证实,神经元覆盖率可以很好地估计输入所执行的DNN规则的数量和类型。

相关工作

  • 对抗性深度学习(Adversarial deep learning)
    局限性:
    1)神经元覆盖率低。
    2)对抗性攻击要求使用微小的、无法检测到的扰动。有时候需要进行较大扰动的测试,那对抗性攻击就不适用了。

  • DNN的测试和验证(Testing and verification of DNNs)

  • DNN梯度的其他应用(Other applications of DNN gradients)

  • 传统软件的差异测试(Differential testing of traditional software)

四.论文总结

  • 本文是深度学习系统测试领域的第一篇比较重要的工作DeepXplore,它是2017年SOSP会议最佳论文(SOSP, ACM Symposium on Operating Systems Principles)。

  • DeepXplore是一种基于测试用例生成的深度学习系统测试技术。生成的测试输入既可以扩充训练集,重新训练以提高准确率和鲁棒性,也可以检测训练集可能存在的数据污染攻击。

五.相关资料

目前测试面对的挑战:
1)大规模人工标注难以实现。
2)测试覆盖率很低。测试深度学习系统的常用方法是收集尽可能多的真实数据并手工标注,或者生成大量仿真数据。然而,实际场景中深度学习系统的输入空间非常大,很多方法只能覆盖到很小的一部分情况,甚至都不能触发极端情况(corner case)导致的系统异常。对于对抗攻击来说,它也只是揭示了深度学习系统中存在了某些错误,并不能完全覆盖系统中的系统逻辑。
3)传统软件系统和深度学习系统的输入空间都无法穷举,总会存在一些未经测试的输入,那我们如何来判断当前测试是否充分呢?深度学习的程序模型,并非显式的写在代码中,即使采用随机测试,仍然有大量的错误行为未被检查。所以如何生成测试输入?如何保证尽可能出发不同系统的逻辑并发性错误行为。

这篇关于【论文阅读】DeepXplore: Automated whitebox testing of deep learning systems.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/274253

相关文章

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

软件架构模式:5 分钟阅读

原文: https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2 软件架构模式:5 分钟阅读 当有人潜入软件工程世界时,有一天他需要学习软件架构模式的基础知识。当我刚接触编码时,我不知道从哪里获得简要介绍现有架构模式的资源,这样它就不会太详细和混乱,而是非常抽象和易

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需