CVPR 2018paper: DeepDefense: Training Deep Neural Networks with Improved Robustness第一讲
前言:好久不见了,最近一直瞎忙活,博客好久都没有更新了,表示道歉。希望大家在新的一年中工作顺利,学业进步,共勉!
今天我们介绍深度神经网络的缺点:无论模型有多深,无论是卷积还是RNN,都有的问题:以图像为例,我们人为的加一些东西,然后会急剧的降低网络的分类正确率。比如下图:

在生成对抗样本之后,分类器把alps 以高置信度把它识别成了狗,下面的一幅图,是把puffer 加上一些我们人类可能自己忽视的东西,但是对分类器来说,这个东西可能很重要,这样分类器就会去调节它,这就导致分类器以百分之百的置信度把puffer 分类成crab.
Adversarial examples 是在这篇文章首次提出的,Intriguing properties of neural networks (大家可以下载看看原文)官方话就是:在数据集中通过故意添加细微的干扰所形成输入样本,受干扰之后的输入导致模型以高置信度给出了一个错误的输出。 注意细微的干扰,也就是这种干扰对于人眼是可以忽略的,这才叫细微的干扰。
是啥子原因导致对抗样本呢?
对于这个,我感觉主要是判别模型的弊端引起的,无论是神经网络,也无论这个层数有多深,或者是SVM。分类的核心思想都是一个扩大不同样本之间边界的范围。下图:

其实本来分类空间,class 1-4是黄色的区域,但是为了扩大与边界的距离,他会扩大每个class的范围,这样做的好处是可以让分类器更加容易得分类,但是坏处就是扩充了很多本不属于这个类别的区域。生成模型是根据y 生成一个p(X/y),这个p(X)可以计算得出,当然生成的p(X)越大越好。。。如果很低的话,模型依然可以正确分类的。对抗样本问题的存在,所以本质上是判别模型的缺陷。大家都知道神经网络是一个判别模型,本质上就是有个超复杂的决策超平面,把数据分开,目标是分类的错误率最低,也就是最小化经验风险,但是这个过程中并没有对每一个label本身建模,只是在几乎无限大的输入空间中构建了一个超复杂的决策超平面,这就导致了现有的正常数据只要偏移一点点(这个偏移一点点的度是很难把握的,因为有时候如果模型对某一个区域不敏感,你就算改变了很多,依然是没有效果的,也就是之前p(X)很小的情况),稍微超越决策边界,就会导致完全不同的结果,也就是被"欺骗"了。而人类大脑是对物体本身的生成式(generative)建模,稍微改变一点不会被欺骗。这也就是为什么有的大牛说神经网络不是模型(model),是一个分类器(classifier),因为它并不是一个建模(modelling)的过程,不理解数据是怎么产生的。
什么是攻击网络?那所谓的白盒攻击和黑盒攻击究竟又是什么呢?
攻击网络就是人为的根据网络的输入形式,然后输入相似的数据让网络判断错误。
白盒攻击:其实和软件工程里的白盒测试相类似,只是这里知道的是整个网络的模型和参数。
黑盒测试:就是不知道网络的模型以及参数,只知道输入和输出,这样通过输入与输出的关系去猜测网络的结构。
今天就讲到这里是一些基础性的介绍,下一张我们来详细的介绍CVPR 2018上的这篇文章,深度防御。
CVPR 2018paper: DeepDefense: Training Deep Neural Networks with Improved Robustness第一讲的更多相关文章
- Training Deep Neural Networks
http://handong1587.github.io/deep_learning/2015/10/09/training-dnn.html //转载于 Training Deep Neural ...
- Training (deep) Neural Networks Part: 1
Training (deep) Neural Networks Part: 1 Nowadays training deep learning models have become extremely ...
- 论文翻译:BinaryConnect: Training Deep Neural Networks with binary weights during propagations
目录 摘要 1.引言 2.BinaryConnect 2.1 +1 or -1 2.2确定性与随机性二值化 2.3 Propagations vs updates 2.4 Clipping 2.5 A ...
- 论文翻译:BinaryNet: Training Deep Neural Networks with Weights and Activations Constrained to +1 or −1
目录 摘要 引言 1.BinaryNet 符号函数 梯度计算和累积 通过离散化传播梯度 一些有用的成分 算法1 使用BinaryNet训练DNN 算法2 批量标准化转换(Ioffe和Szegedy,2 ...
- 为什么深度神经网络难以训练Why are deep neural networks hard to train?
Imagine you're an engineer who has been asked to design a computer from scratch. One day you're work ...
- This instability is a fundamental problem for gradient-based learning in deep neural networks. vanishing exploding gradient problem
The unstable gradient problem: The fundamental problem here isn't so much the vanishing gradient pro ...
- [C4] Andrew Ng - Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
About this Course This course will teach you the "magic" of getting deep learning to work ...
- 目标检测--Scalable Object Detection using Deep Neural Networks(CVPR 2014)
Scalable Object Detection using Deep Neural Networks 作者: Dumitru Erhan, Christian Szegedy, Alexander ...
- [Box] Robust Training and Initialization of Deep Neural Networks: An Adaptive Basis Viewpoint
目录 概 主要内容 LSGD Box 初始化 Box for Resnet 代码 Cyr E C, Gulian M, Patel R G, et al. Robust Training and In ...
随机推荐
- Python魔法师
第一章:数据结构和算法 1.1 查找最大或者最小的n个元素 heapq 模块的两个函数 nlargest() nsmallest() import heapq nums = [1, 8, 2, 23 ...
- springboot 有用网址收集
http://www.ityouknow.com/spring-boot.html springboot多数据源配置: https://blog.csdn.net/neosmith/article/d ...
- 【Java】Java_20 Scanner获取键盘输入
使用Scanner类可以很方便的获取用户的键盘输入,Scanner是一个基于正则表达式子的文本扫描器,他可以从文件.输入流.字符串中解析出基本类型值和字符串值. 例子示意: package com.o ...
- Oracle 为表空间增加数据文件
dba权限检查下 select tablespace_name, file_id, file_name, ),) total_space from dba_data_files order by ta ...
- windows快捷键之打开网络连接
在Win 7"開始"->"执行"对话框输入"cmd"例如以下图红框所看到的,再点击"确定"button. 步骤 ...
- Windows下创建.gitgnore文件
相信使用过git的朋友可能遇到过,直接在windows下创建.gitgnore文件失败.类似截图那样 上网查了一下,有两种方法. 方法1: 此方法较为简单,前提是安装了git bash. 用git b ...
- handlebars.js基础学习笔记
最近在帮学校做个课程网站,就有人推荐用jquery+ajax+handlebars做网站前端,刚接触发现挺高大上的,于是就把一些基础学习笔记记录下来啦. 1.引用文件: jquery.js文件下载:h ...
- SlidingMenu+Fragment实现当前最流行的侧滑
1 http://www.krislq.com/2013/03/android_case_slidingmenu_fragment/ 2 https://github.com/jfeinstein10 ...
- springBoot+springCloud学习笔记
尊重原创:https://www.jianshu.com/p/492dfefa2735 SpringBoot 配置优先级 在命令行中传入的参数 如:java -jar storeMs.jar --se ...
- [译]NeHe教程 - 添加颜色
原文: Adding Colour 上一节我讲解了如何在屏幕显示三角形和四边形.本节会讲解如何上色.单色(Flat)顾名思义就是只能涂一种实心的颜色.平滑颜色(Smooth)可以在各个顶点混合三种颜色 ...