Yoshua Bengio团队通过在网络「隐藏空间」中使用降噪器以提高深度神经网络的「鲁棒性」

原文来源:arXiv  

作者:Alex Lamb、Jonathan Binas、Anirudh Goyal、Dmitriy Serdyuk、Sandeep Subramanian、Ioannis Mitliagkas、Yoshua Bengio

「雷克世界」编译:嗯~是阿童木呀、KABUDA、EVA


导语:深度神经网络在各种各样的重要任务中取得了令人印象深刻的成果。但有一点,对不同于训练分布的数据进行评估时,表现并不是很好。最近,蒙特利尔算法学习研究所提出了一种强化网络,它能够有效提高现有深度神经网络的鲁棒性。


众所周知,深度网络已经在各种各样的重要任务中取得了令人印象深刻的成果。然而,其一个已知的弱点是在对不同于训练分布的数据进行评估时,即使这些差异非常小,仍然表现不佳,比如对抗样本。我们提出了强化网络(Fortified Networks),它是现有网络的一个简单转化,通过识别隐藏状态在数据流形中断开的时间,并将这些隐藏状态映射回到网络运行良好的数据流的部分,加强了深度网络中的隐藏层。我们的主要贡献是表明了强化这些隐藏状态可以提高深度网络的鲁棒性,我们的实验:


•证明了在黑盒和白盒威胁模型中针对标准对抗攻击的鲁棒性有所提高。


•表明了我们的改进并非主要是由于梯度掩码问题引起的。


•显示了在隐藏层而不是输入空间中进行这种强化的优点。


深度神经网络在各种各样的任务中都非常成功。这一成功也推动了其在可靠性和安全性至关重要的领域中的应用,包括自动驾驶汽车(Bojarski等人于2016年提出)、医疗保健、人脸识别(Sharif等人于2017年提出)以及恶意软件检测(LeCun等人于2015提出)。当使用该系统的智能体可以从系统的不佳表现中受益时,就会出现安全问题。当训练期间所看到的输入数据的分布与进行评估模型的分布不同时,就会出现可靠性问题。


对抗样本(Adversarial examples)(Goodfellow等人于2014年提出)是一种攻击神经网络模型的方法。这种攻击对输入应用了一个小的干扰,从而改变预测的类。值得注意的是,这个干扰有可能非常小,以至于肉眼不可见。研究表明,简单的梯度方法可以让人找到经常改变输出类的输入的修改(Szegedy等人于2013年提出; Goodfellow 等人于2014年提出)。最近,更多的研究表明,即使在相机上显示时,创建一个补丁也是可能的,它也会以高度的置信度来改变输出类(Brown等人于2017年提出)。


作为回应,针对对抗样本的防御已经被研发出来。一些最突出的防御类包括特征压缩(Xu等人于2017年提出)、输入的自适应编码(雅各布巴克曼,2018年)和与精炼相关的方法(Papernot等人于2015年提出)。现有的防御系统提供了一定程度的鲁棒性,但大多数都不容易部署。此外,很多已经被证明易受梯度掩码的影响。还有其他一些则需要直接在可视的空间中训练生成模型,即使在相对简单的数据集上,这在当前仍然是很困难的。


我们的目标是提供一种方法:


•可以被广泛地添加到现有网络中。


•使该网络具有鲁棒性以抵御对抗攻击。


•提供一个可靠的信号,表明输入数据的存在,而这些数据并不位于网络所训练的数据流上。


将生成模型的能力直接用于输入数据以提高鲁棒性并不新鲜。我们的主要贡献是,在所学习的隐藏表征的分布上使用了这种鲁棒化,而不是让断开数据流的识别变得更容易(如图1所示)。


图1.输入空间(顶部)和抽象隐藏空间(底部)中,自动编码器动态示意图。最左侧的面板显示来自三个不同类的数据点,中间面板显示描述自动编码器动态的向量场。最右侧面板显示一系列结果轨迹和吸引域。强化网络背后的主要动机是,在具有更简单统计结构的抽象空间中,更容易识别出指向数据流形成的方向,从而更容易将对抗样本映射回投影的数据流形。


我们提出了强化网络。这一强化包括使用去噪自动编码器来“修饰”原始网络的隐藏层。我们在Pythonic的意义上使用“修饰”,它可以用于任何函数(在本例中是网络的一部分),并且在不大幅修改它的情况下扩展它的行为。因此,强化需符合上述三个目标。我们探讨了隐藏层强化背后的直觉,并给出了该方法的一些显著特性。我们在MNIST、Fashion-MNIST和CIFAR10数据集上,针对白盒和黑盒攻击对我们所提出的方法进行了评估。


图2.一个映射回可视空间(左)和隐藏空间(右)的流形过程的示例。阴影区域表示空间中被给定类的数据点所占据的区域(它们不表示决策边界)


可以这样说,防范对抗性样本在关键任务应用程序中至关重要。我们提出了一种强化网络,它是一种能够提高现有的深度神经网络鲁棒性的简单方法。我们的方法具有以下特点:


•实用性:强化现有网络需要在网络的隐藏层之间引入DAE,并且能够实现自动化。我们正在准备一个PyTorch模块,它将真正做到这一点,并将在短期内发布在深度学习社区,以供使用。此外,测试时的DAE重构误差是分布移位的可靠信号,这与训练期间遇到的情况有所不同。高误差可能意味着对抗攻击或显著的域移位,这二者都是分析人员或系统需要注意的重要情况。


•有效性:我们展示的结果完善了MNIST对抗攻击的最新技术水平,同时也改进了在CIFAR和Fashion-MNIST上进行执行的结果。


局限性:该方法的成本是,由于搜索对抗性样本和训练自动编码器而延长了训练时间。相比于对抗训练,强化层本身的附加成本相对较低,并且比在输入空间中训练一个完整的生成式模型(如GAN)容易得多,也简单得多。层强化通常涉及较小的DAE,所需计算量较小。此外,我们通过只增加两个强化层,对Res Net做了一些改进,因此计算成本的变化非常小。同时,强化网络只有在与对抗训练同时使用时才能提高鲁棒性,这对于迭代攻击而言,是非常昂贵的。


原文链接:https://arxiv.org/pdf/1804.02485.pdf


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496116.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PDF签名系列(1):PDF签名机制的漏洞分析

来源:PDF签名系列(1):PDF签名机制的漏洞分析 - 知乎 研究PDF文件的签名机制有一段时间了,刚开始学习的时候就看到有提到说,被签名的PDF内容的Range gap,会成为这个机制的漏洞,但是一直不能完全参透。直到昨天看到一篇…

linux date命令显示毫秒,解决MacOS系统中date命令没有毫秒和sha512sum、sha256sum、md5sum等命令的问题...

安装brew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"使用brew安装coreutilsbrew install coreutils设置系统新的命令软连接sudo ln -sv /usr/local/bin/gsha256sum /usr/local/bin/sha256sumsudo ln -sv /…

PDF签名系列(2):PDF的签名值到底存在哪里?

来源:PDF签名系列(2):PDF的签名值到底存在哪里? - 知乎 研究过PDF签名的同学应该见过下面这张图, 来自ADOBE的文档Acrobat_DigitalSignatures_in_PDF.pdf PDF被签名的内容是整个文档除去signature dictionary里/Contents下面的内容. 签过名的哈希值再连同其他一些…

android zip文件读写,如何直接从.zip文件中读取文件而不在android中提取它

我过去几个月一直在研究android,现在我的问题是读取放在SD卡上的.zip文件.我已经成功完成了在SD卡上下载.zip文件的编码.我有img.zip文件下载到SD卡上.这个img.zip包含5个图像文件.现在我可以直接阅读其内容而不是解压缩img.zip …… ???如果是的话请帮忙.我在互联网上看到了…

jQuery的radio,checkbox,select操作

获取一组radio被选中项的值 var item $(input[nameitems][checked]).val(); 获取select被选中项的文本 var item $("select[nameitems] option[selected]").text(); select下拉框的第二个元素为当前选中值 $(#select_id)[0].selectedIndex 1; radio单选组的第二个…

数字签名时间戳服务器的原理

时间戳服务工作流程: ◆ 用户对文件数据进行Hash摘要处理; ◆ 用户提出时间戳的请求,Hash值被传递给时间戳服务器; ◆ 时间戳服务器对哈希值和一个日期/时间记录进行签名,生成时间戳; ◆ 时间戳数据和文…

android x86 笔记本卡屏,笔记本死机卡屏怎么办

笔记本死机卡屏的解决方法:首先按住键盘上ctrlaltdel,弹出任务管理器;然后在弹出任务管理器中选择explorer.exe;接着右键点击explorer.exe,在弹出菜单中选择“结束进程”;最后输如explorer.exe即可。首先&a…

scrapy 伪装代理和 fake_userAgent 的使用

From:https://www.cnblogs.com/hellangels333/p/8918938.html fake-useragent 下载 和 使用方法:https://pypi.org/project/fake-useragent 伪装浏览器代理 在爬取网页是有些服务器对请求过滤的不是很高可以不用ip来伪装请求直接将自己的浏览器信息给伪…

readyState的五种状态详解【转】

在《Pragmatic Ajax A Web 2.0 Primer 》中偶然看到对readyStae状态的介绍,感觉这个介绍很实在,摘译如下: 0: (Uninitialized) the send( ) method has not yet been invoked. 1: (Loading) the send( ) method has been invoked, request i…

【读书笔记】《框架设计(第2版)CLR Via C#》中两个比较有趣的知识点

本季度公司要求阅读《框架设计(第2版)CLR Via C#》这本书,由于前两个月一直很忙,也没有时间阅读,偶尔阅读也是很晚回家以后临睡前拿起这经典之作读那么一个小节。最近利用周末可以说一鼓作气的看了大半本,感…

Python 使用 Scrapy 发送 post 请求的坑

From:https://www.jb51.net/article/146769.htm 使用 requests 发送 post 请求 先来看看使用requests来发送post请求是多少好用,发送请求 Requests 简便的 API 意味着所有 HTTP 请求类型都是显而易见的。 例如,你可以这样发送一个 HTTP POST …

Effective Java~46. 优先选择Stream 中无副作用的函数

纯函数&#xff08;pure function&#xff09;的结果仅取决于其输入&#xff1a;它不依赖于任何可变状态&#xff0c;也不更新任何状态。 坏味道 // Uses the streams API but not the paradigm--Dont do this! Map<String, Long> freq new HashMap<>(); try (S…

android applybatch,android – 使用applyBatch插入成千上万的联系人条目很慢

我正在开发一个应用程序&#xff0c;我需要插入大量的联系人条目。在当前时间约600个联系人&#xff0c;共有6000个电话号码。最大的联系人有1800个电话号码。截至今天的状态是&#xff0c;我创建了一个自定义帐户来保存联系人&#xff0c;因此用户可以选择在联系人视图中查看联…

[译]How to make searching faster

Here are some things to try to speed up the seaching speed of your Lucene application. Please see ImproveIndexingSpeed for how to speed up indexing. 以下是一些尝试提高lucene程序检索速度的方法. 如果需要提高索引速度,请看提高索引速度. Be sure you really need …

8个最高效的Python爬虫框架,你用过几个?

From&#xff1a;https://segmentfault.com/a/1190000015131017 1.Scrapy Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘&#xff0c;信息处理或存储历史数据等一系列的程序中。。用这个框架可以轻松爬下来如亚马逊商品信…

android oreo 源码,android – Oreo:如何在源代码中找到所有受限制的系统调用?

哪些Syscalls在Android 8.0 Oreo中受限制&#xff1f;编辑&#xff1a;Syscall过滤背景过滤本身是Linux内核提供的标准功能,称为seccomp.所有AOSP都使用此功能来过滤上面链接的应用黑名单中列出的系统调用.脚本处理将黑名单列入特定于平台的自动生成过滤器,然后将其提供给secco…

Effective Java~57. 将局部变量的作用域最小化

优先选择 for 循环而不是 while 循环 例如&#xff0c;下面是遍历集合的首选方式 // Preferred idiom for iterating over a collection or array for (Element e : c) { ... // Do Something with e } 如果需要在循环中调用 remove 方法&#xff0c;首选传统的 for 循环代…

300+Jquery, CSS, MooTools 和 JS的导航菜单资源

如果你是网站前端开发人员&#xff0c;那么对你来说&#xff0c;也许做一个漂亮导航菜单会很得心应手。本文要为大家总结各种导航菜单的资源&#xff0c;以便让大家的网站前端开发的工作更方便更快速&#xff0c;只要选择现成的例子就可以应用于自己的网站了。本文收集的这些资…

轻量级分布式任务调度平台 XXL-JOB

From&#xff1a;https://www.cnblogs.com/xuxueli/p/5021979.html github 地址 及 中文文档地址&#xff1a;https://github.com/xuxueli/xxl-job 《分布式任务调度平台XXL-JOB》 一、简介 1.1 概述 XXL-JOB是一个轻量级分布式任务调度平台&#xff0c;其核心设计目标是开发…

畅玩4c刷android 9.0,华为畅玩4C电信版 CyanogenMod 13.0_Android_6.0.1 【HRT_chiwahfj】

本帖最后由 chiwah渔夫 于 2016-9-9 22:31 编辑【基本信息】ROM名称&#xff1a;华为畅玩4C电信版 CyanogenMod 13.0_Android_6.0.1ROM大小&#xff1a;617M适配版本&#xff1a;CyanogenMod 13.0_android_6.0.1测试机型&#xff1a;华为畅玩4C电信版作者简介&#xff1a;HRT团…