IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度学习(十三) Adversarial Attack 理论部分 -> 正文阅读

[人工智能]深度学习(十三) Adversarial Attack 理论部分


前言

本文主要介绍的是现在比较新型的对抗攻击部分,这个部分资料甚少,作为科普使用

一、Adversarial Attack的用途是什么?

  1. 在深度学习网络里面,很多网络都是容易被攻击的,所以不能大量投入使用,所以我们要对对抗攻击有了比较深入的理解之后,才能对对抗防御有比较深入的理解
  2. 对抗样本攻击也在自编码器和生成模型,在循环神经网络,深度强化学习,在语义切割和物体检测等方面也有应用。

二、Adversarial Attack的分类

  1. 白盒攻击,称为White-box attack,也称为open-box 对模型和训练集完全了解,这种情况比较简单,但是和实际情况不符合。
  2. 黑盒攻击,称为Black-box attack,对模型不了解,对训练集不了解或了解很少。这种攻击和实际情况比较符合,主要也是主要研究方向。
  3. 定向攻击,称为targeted attack,对于一个多分类网络,把输入分类误判到一个指定的类上,即指定判断错误的类别
  4. 非定向攻击,称为non-target attack,只需要生成对抗样本来欺骗神经网络,可以看作是上面的一种特例。

在这里插入图片描述

三、如何实现Adversarial Attack?

1.对于non-target attack而言

这种情况比较简单,因为只需要让判别器判别错误即可,并不需要进行定向地改变,所以我们只要设定一个误差函数 e ( y , y ^ ) e(y,\hat y) e(y,y^?),让这个值越大就说明两值的差距越大,即:
x ? = arg ? min ? ? e ( y , y ^ ) x^*=\arg\min -e(y,\hat y) x?=argmin?e(y,y^?)
我们重点来看看定向地攻击模型。

2.对于targeted attack而言

相对于non-target attack,targeted attack需要最后的判断结果与自己设定的定向结果很接近,也就是我们要引入一个目标输出,其函数变为:
x ? = arg ? min ? ? e ( y , y ^ ) + e ( y , y t a r g e t ) x^*=\arg\min -e(y,\hat y) +e(y,y^{target}) x?=argmin?e(y,y^?)+e(y,ytarget)
然后如果两张照片的差值过于大的时候,将会面目全非,不符合我们一开始肉眼看不到的假设,所以我们需要给两张照片的像素值之间设有一定的限制,一般我们有L2-norm和L-infinity两种方法。
在这里插入图片描述
对于我们人眼而言,一般只会感知最大变化的那一个部分,如果像L2-norm这样把所有误差求和,这样的误差值过大了,所以一般L-infinity的方法会有更好的表现效果。

3.训练模型

由于加入了我们刚才的那一个限制,我们本可以用拉普拉斯算子去进行优化,但是我们采取了一种更加简单的方法进行梯度下降。
在这里插入图片描述
一开始我们会比较正常地进行梯度下降,但是当我们的这个差距大于 ? \epsilon ?时,我们强制拉回以我们更新点 x 0 x_0 x0?为中心的正方形范围内的随机一个边框点,完成我们的更新。
为了更简单进行我们的梯度下降,大大减少运算量,我们可以对x进行符号化,也就是规定x的取值只有四个点,并且人为设定更新的次数。
在这里插入图片描述

4.Black Box Attack

我们前面说过,白盒攻击比较简单,如果一直不发放模型,就无法知道参数,就无法进行白盒攻击,但是这样是否就绝对安全呢?答案是否定的,因为我们可以进行黑盒攻击,黑盒攻击可以在不知道训练集的情况下进行,具体操作如下:

  1. 可以把一堆图片丢到NN中,得到输出的图片,把输入和输出图片丢到network proxy来训练出一个模型
  2. 我们可以通过同一组训练集来训练一个network proxy,来模拟network black
  3. 从而通过攻击network proxy观察,就可以来攻击network black

在这里插入图片描述

5.“Backdoor” in Model

除此之外,我们除了对测试集进行攻击,我们还可以对训练模型进行攻击,当训练模型出问题的时候,测试集是什么已经不重要了。
在这里插入图片描述
我们可以看到在训练阶段我们引入了"dog"这个种类,然后让其判断成"fish",这就提高了攻击的成功率了。

四、Defense

刚刚我们介绍了许多攻击的方式,那有了这些攻击的经验我们应该如何防御呢?下面将会介绍几种防御的方法。

1.Passive Defense

被动防御是一种比较简单的防御方式,主要的方式有:

  1. 被动防御就是指在模型之前加上一个过滤器,去减小Attack signal的强度,使Network辨识正确。
    在这里插入图片描述
  2. 主要的方法有对图片进行模糊化,对图片进行压缩处理;将图片使用Generator重新产生一张相同的图片。
    在这里插入图片描述
  3. 还有一种方法,就是进行随机防御,这种防御对于进攻者来说非常难进攻,因为防守者没有固定的防守手段。

在这里插入图片描述
被动防御的缺点是:没有被攻击的图片进行模糊化后,会导致分数下降
在这里插入图片描述

2.Proactive Defense

这种防御手段跟被动防御完全不一样,它一开始就训练出一个不容易被攻破的模型,具体过程就是在训练阶段就对模型进行攻击,然后把训练后得到的资料重新去训练模型,反复进行这个过程,就会得到一个不容易被攻破的模型。
在这里插入图片描述
但是这种方法未必能抵挡住新的攻击,而且Adversarial Training需要大量的训练资源。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-25 23:12:38  更:2022-09-25 23:13:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 0:00:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码