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

今天我们介绍深度神经网络的缺点:无论模型有多深,无论是卷积还是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. react-native 常用组件的用法(一)

    1.View组件 View是一个支持Flexbox布局.样式.一些触摸处理.和一些无障碍功能的容器,并且它可以放到其它的视图里,也可以有任意多个任意类型的子视图. View的设计初衷是和StyleSh ...

  2. DB2 锁问题分析与解释

    DB2 锁问题分析与解释 DB2 应用中常常会遇到锁超时与死锁现象,那么这样的现象产生的原因是什么呢.本文以试验的形式模拟锁等待.锁超时.死锁现象.并给出这些现象的根本原因. 试验环境: DB2 v9 ...

  3. UnrealEngine4 尝鲜

    把官方事例的demo扩展成横版过关视角

  4. Android事件的分发

    1 http://blog.csdn.net/guolin_blog/article/details/9097463 2

  5. sql自定义函数及C#中调用

    1.在C#中调用sql自定义函数 1.1 标量值函数 sql语句调用 select  dbo.GetClassIDWithName(1) string strSql = string.Format(& ...

  6. 转 SQL行转列汇总

    1.PIVOT 用于将列值旋转为列名(即行转列) PIVOT 的一般语法是:PIVOT(聚合函数(列名) FOR 列名 in (列值1,…) )AS P select * from TB pivot ...

  7. python实现测试中常用的脚本(待完善)

    一. Python操作MySQL数据库,简单的增删改查 # coding=utf-8 ''' Created on 2015年5月12日 @author: Administrator ''' impo ...

  8. Google Code Jam 2014 Round 1 A:Problem B. Full Binary Tree

    Problem A tree is a connected graph with no cycles. A rooted tree is a tree in which one special ver ...

  9. vue面试题,知识点汇总(有答案)

    一. Vue核心小知识点 1.vue中 key 值的作用 key 的特殊属性主要用在 Vue的虚拟DOM算法,在新旧nodes对比时辨识VNodes.如果不使用key,Vue会使用一种最大限度减少动态 ...

  10. Android SQLite基本用法

    SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLit ...