前言:好久不见了,最近一直瞎忙活,博客好久都没有更新了,表示道歉。希望大家在新的一年中工作顺利,学业进步,共勉!

今天我们介绍深度神经网络的缺点:无论模型有多深,无论是卷积还是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第一讲的更多相关文章

  1. Training Deep Neural Networks

    http://handong1587.github.io/deep_learning/2015/10/09/training-dnn.html  //转载于 Training Deep Neural ...

  2. Training (deep) Neural Networks Part: 1

    Training (deep) Neural Networks Part: 1 Nowadays training deep learning models have become extremely ...

  3. 论文翻译: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 ...

  4. 论文翻译:BinaryNet: Training Deep Neural Networks with Weights and Activations Constrained to +1 or −1

    目录 摘要 引言 1.BinaryNet 符号函数 梯度计算和累积 通过离散化传播梯度 一些有用的成分 算法1 使用BinaryNet训练DNN 算法2 批量标准化转换(Ioffe和Szegedy,2 ...

  5. 为什么深度神经网络难以训练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 ...

  6. 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 ...

  7. [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 ...

  8. 目标检测--Scalable Object Detection using Deep Neural Networks(CVPR 2014)

    Scalable Object Detection using Deep Neural Networks 作者: Dumitru Erhan, Christian Szegedy, Alexander ...

  9. [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 ...

随机推荐

  1. NodeJS中的循环陷阱

    Node.js的异步机制由事件和回调函数实现,一開始接触可能会感觉违反常规,但习惯以后就会发现还是非常easy的. 然而这之中事实上暗藏不少陷阱.一个非常easy遇到的问题就是回到循环的回调函数. e ...

  2. [Python]BeautifulSoup—HTML解析包

    在用Python写爬虫时,一个常见的操作是对抓下的HTML做分析处理,得到想要的内容.一般的方法为使用Python的re库中.用正則表達式来解析文本.只是这样的方法适用于全部的文本.而针对于特定格式的 ...

  3. NSDate 类的总结,全面基础

    <span style="font-size:24px;"><span style="font-size:18px;">//1.创建日期 ...

  4. 基于React的PC网站前端架构分析

    代码地址如下:http://www.demodashi.com/demo/12252.html 本文适合对象 有过一定开发经验的初级前端工程师: 有过完整项目的开发经验,不论大小: 对node有所了解 ...

  5. java读取clob字段的几种方法

    http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380143fd3d1027fa3c215cc790f1a06 ...

  6. C/C++ 内存管理总结

    C内存管理 存储时: 执行程序在存储时(没有调入到内存)分为代码区(text).数据区(data)和未初始化数据区(bss)3个部分. 1 代码区(text segment) 存放CPU执行的机器指令 ...

  7. hector_localization hector_salm rplidar同时编译

    1.将hector_localization包clone到src文件夹  进行功能包依赖安装 cd test_ws rosdep update rosdep install --from-paths ...

  8. 使用Vitamio开发iOS平台上的万能播放器

    迅速了解 Vitamio是干什么的?看官方怎么说: "Vitamio SDK for iOS是Yixia Ltd官方推出的 iOS 平台上使用的软件开发工具包(SDK),为iOS开发人员提供 ...

  9. Unity3d多人在线教程

    [转载]Unity3d多人在线教程 (2013-02-25 16:02:49) 转载▼ 标签: 转载   原文地址:Unity3d多人在线教程作者:lsy0031 Unity 多个玩家开发教程 Uni ...

  10. EasyNetQ操作RabbitMQ(高级消息队列)

    RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).写消息队列的时候用RabbitMQ比较好,但是写的时候需要自己封装下,自己的封装,就需要对RabbitM ...