【论文笔记】(2019,PGD)Towards Deep Learning Models Resistant to Adversarial Attacks

摘要

作者从鲁棒优化(robust optimization)的角度研究了神经网络的对抗鲁棒性(adversarial robustness)。基于鞍点公式(min-max)本文提出了一种防御任何对抗样本的方法。

1 介绍

本文的主要贡献:

  1. 对抗样本的生成、对抗训练(即攻击与防御)是同一的,这是一个鞍点公式(下文的公式(1))的优化问题。
  2. 提出了PGD(projected gradient descent)方法,是first-order中的很强的方法,作者指出,如果训练的网络对PGD攻击具有鲁棒性,那么它能够抵抗当前所有的攻击。
  3. 实验验证了模型容量(model capacity)大才能够抵御对抗攻击。

2 对抗鲁棒性的优化观点

考虑一个标准的分类任务,数据集为(\mathcal{D}),(x\in \mathbb{R}^{d}) 为输入样本,(y\in [k]) 为对应的标签。假设给定了一个合适的损失函数(L(\theta,x,y))(如交叉熵),其中 (\theta \in \mathbb{R}^{p}) 是模型参数的集合。任务的目标是找到使 (\mathbb{E}_{(x,y)\sim\mathcal{D}}[L(\theta,x,y)]) 最小化的(\theta)。

经验风险最小化(empirical risk minimization, ERM)通常无法训练出对对抗样本具有鲁棒性的模型,为此,需要适当地增强ERM:

对于每个数据点(x)引入一组允许的扰动(S\subseteq \mathbb{R}^{d}),将其加到输入中,然后修改期望误差(\mathbb{E}_{\mathcal{D}}[L])的定义:

[\min_{\theta}\rho (\theta), \; \; {\rm where} \;\;\; \rho (\theta)=\mathbb{E}{(x,y)\sim \mathcal{D}}[\max{\delta \in \mathcal{S}}L(\theta,x+\delta,y)]\tag{1} ]

作者将鞍点问题视为内部最大化问题( inner maximization)和外部最小化( outer minimization)问题的组合。内部最大化问题是寻找使损失最大化的对抗样本;外部最小化问题是寻找使这个损失最小化的模型参数。

2.1 攻防统一的观点

关于对抗性样本的工作主要集中在攻击和防御两方面。

攻击:著名的攻击算法FGSM使用(x+\varepsilon {\rm sign}(\bigtriangledown_x L(\theta,x,y))) 得到对抗样本,作者将其解释为一步的、用于最大化鞍点公式的内部的方案;据此,作者提出了PGD,是一种多步的FGSM:

[x^{t+1}=\Pi_{x+\mathcal{S}}(x^t + \alpha \;{\rm sgn }(\bigtriangledown_x L(\theta, x,y)))\tag{2} ]

((\Pi)为投影符号\Pi,不是累乘)
防御:不同于把对抗样本当做数据扩充的方法,本文用对抗样本替换全部原数据样本(3.3章会进行解释)。

3 广义稳定的模型

根据公式(1)的定义,作者认为只要对抗损失足够小,就可以保证网络对 任何扰动攻击都有抵抗性。所以下面只讨论公式(1)的解。

内部最大化为non-concave问题,外部最小化为non-convex问题。

3.1 对抗样本的landscape

作者选择MNIST和CIFAR10数据集,使用PGD对多个模型的局部最大值的情况进行研究:从各个评估集中的数据点的(l_\infty) 球内的点开始计算PGD。
实验表明:

  • 对(x+\mathcal{S})内的随机点执行PGD((l_\infty))时,对抗损失以相当一致的方式增加并迅速稳定(如图1)。

【论文笔记】(2019,PGD)Towards Deep Learning Models Resistant to Adversarial Attacks

图1. 从MNIST和CIFAR10评估数据集生成对抗性样本时的交叉熵损失值。这些图显示了在20次PGD运行期间损失的变化。每次运行都从同一自然样本的(l_\infty) 球中的一个均匀随机点开始。少量迭代后,对抗性损失趋于稳定。优化轨迹和最终损失值也很集中,尤其是在CIFAR10上。此外,对抗训练的网络的最终损失值明显小于标准网络。

  • 进一步研究最大值的集中度:作者观察到在大量实验中,最终迭代的损失遵循一个没有极端异常值的集中分布(见图2)。

【论文笔记】(2019,PGD)Towards Deep Learning Models Resistant to Adversarial Attacks

图2. 对于每个样本,从其(l_\infty) 球中的(10^5)个均匀随机点开始迭代PGD直到损失平稳。 蓝色直方图对应于标准网络上的损失,而红色直方图对应于经过对抗训练的网络损失。 对抗训练的网络的损失要小得多,最终的损失值非常集中,没有任何异常值。

3.2 一阶对抗样本

上述实验表明,无论是对于正常训练的网络还是对抗训练的网络,PGD发现的局部最大值都具有相似的损失值。作者认为只要能防御住PGD攻击,就能防住所有的一阶对抗攻击。作者还认为依赖一阶信息的攻击对于当前的深度学习是通用的。

总结就是,如果训练的网络对PGD攻击具有鲁棒性,那么它能够抵抗当前所有的攻击。

3.3 对抗训练的下降方向

接下来讨论外部最小化的优化。

在神经网络中,最小化损失函数的主要方法是随机梯度下降(Stochastic Gradient Descent,SGD)。计算外部的梯度(\bigtriangledown_\theta\rho(\theta))的一种自然方法是在内部的最大值处计算损失的梯度,也就是用相应的对抗扰动替换输入点,并在扰动输入上训练网络。并且,Danskin定理表明了这是鞍点问题的有效下降方向,且内部最大值处的梯度对应于鞍点问题的下降方向。

尽管我们的问题并不满足Danskin定理的精确假设(由于ReLU和最大池,该函数不是连续可微的,而且我们只计算内部问题的近似最大化),但实验表明,仍然可以使用这些梯度来进行优化。图3可看出,作者能够可靠地对公式(1)进行优化,从而训练出鲁棒的分类器。

【论文笔记】(2019,PGD)Towards Deep Learning Models Resistant to Adversarial Attacks

图3. 对抗样本训练过程中的交叉熵损失。此图说明,可以不断降低公式(1)的内部问题的值,从而产生一个越来越鲁棒的分类器。

4 模型容量和对抗鲁棒性

上述实验只是成功得到了公式(1)的解,但这不能保证得到的分类器是稳健、准确的。所以还需要证明问题的 (\textit{value})(即对对抗样本的最终损失)很小,非常小的(\textit{value}) 意味着完美的、对抗鲁棒的分类器。

对于一组固定的可能扰动(\mathcal{S}),(\textit{value}) 完全取决于分类器的架构,模型的架构容量(capacity)是影响其整体性能的主要因素。如图4,想要模型更稳定、更鲁棒,需要更复杂的决策边界,所以需要模型容量足够大。

【论文笔记】(2019,PGD)Towards Deep Learning Models Resistant to Adversarial Attacks

图4. 标准的vs对抗的决策边界。左:简单的(线性的)决策边界可以轻松地将一组点分开;中:简单的决策边界没能分隔数据点周围的(l_\infty) 球(这里是正方形)。因此,有些对抗样本(红色星)会被错误分类。右:分隔(l_\infty) 球需要一个更复杂的决策边界, 由此产生的分类器对具有有界(l_\infty)范数扰动的对抗样本具有鲁棒性。

接下来,作者用实验验证了模型容量的重要性:

  1. 对于MNIST数据集,使用简单的卷积网络,不断将网络size加倍(即卷积filters的数量和全连接层的size加倍),针对不同的对抗攻击 观察网络的表现是如何变化的。
    网络描述:一个带有2个过滤器的卷积层+一个带有4个过滤器的卷积层+一个带有64个单元的全连接隐藏层。卷积层之后是 2×2max-pooling 层,对抗样本由(\varepsilon =0.3)构建。
  2. 对于CIFAR10数据集,使用ResNet模型:使用随机裁剪、翻转、以及图像标准化来进行数据增强。为了增加容量,作者将包含更宽层的网络修改了10倍,使得网络有5个残差单元,每个单元有 (16, 160, 320, 640) 个过滤器。当使用自然样本进行训练时,该网络可以达到95.2%的准确率。对抗样本由(\varepsilon =8)构建。

实验结果如图5所示。

【论文笔记】(2019,PGD)Towards Deep Learning Models Resistant to Adversarial Attacks

图5. 模型容量对模型性能的影响。前三个图/表展示了标准和对抗精度随容量的变化(a图/表 表示标准训练的两个模型在不同容量时,对自然样本、FGSM样本、PGD样本预测的准确率,b图/表 表示FGSM训练的情况下,c图/表 表示PGD训练情况下)。最后的图/表展示了对抗训练的交叉熵损失值。

作者总结了以下:

  • 模型容量是有影响的
  • 对于较大的$\varepsilon $,GFSM adversaries鲁棒性没增强
  • 容量小的模型可能无法学习non-trivial分类器
  • 随着容量的增加,(\textit{value}) 会降低
  • 更大的容量和更强大的adversaries会降低可转移性

实验部分与相关工作两章不过多解释

Original: https://www.cnblogs.com/setdong/p/16322756.html
Author: 李斯赛特
Title: 【论文笔记】(2019,PGD)Towards Deep Learning Models Resistant to Adversarial Attacks

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578626/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python获取Windows硬件特征信息

    1.python pip安装WMI 并用pyinstaller编译出device_chk.exe 参考内容:https://blog.csdn.net/fengmm521/arti…

    Linux 2023年6月7日
    091
  • 白话linux操作系统原理

    虽然计算机相关专业,操作系统和计算机组成原理是必修课。但是大学时和真正从事相关专业工作之后,对于知识的认知自然会发生变化。还很有可能,一辈子呆在学校的老师们只是照本宣科,自己的理解…

    Linux 2023年5月27日
    0115
  • tiddlywiki-nodejs 安装部署

    安装 tiddlywiki (root) 确认 npm 包全局&amp…

    Linux 2023年6月14日
    089
  • 前几天看到微信多开方式

    @echo offset wechatpath=WeChat.exeecho. echo. echo —————&#82…

    Linux 2023年6月14日
    098
  • 详解Redis基本命令

    当redis环境搭建结束后,接下来需要掌握并了解redis的一些相关命令,本篇文章主要从实际操作的层面来与大家分享redis基本命令, 具体包括:Redis五大基本类型命令(Str…

    Linux 2023年5月28日
    0122
  • Redis主从复制的配置和实现原理

    Redis的持久化功能在一定程度上保证了数据的安全性,即便是服务器宕机的情况下,也可以保证数据的丢失非常少。通常,为了避免服务的单点故障,会把数据复制到多个副本放在不同的服务器上,…

    Linux 2023年5月28日
    086
  • redis持久化

    本次主要是对redis中著名的持久化策略进行代码层面描述,主要包括RDB持久化和AOF持久化 因为AOF文件的更新频率比RDB高,所以如果服务器开启AOF持久化,redis优先使用…

    Linux 2023年6月13日
    0122
  • [python][flask] Flask 图片上传与下载例子(支持漂亮的拖拽上传)

    1、效果预览 2、新增逻辑概览 3、tuchuang.py 逻辑介绍 3.1 图片上传 3.2 图片合法检查 3.3 图片下载 4、init.py 逻辑介绍 5、upload.ht…

    Linux 2023年6月8日
    0122
  • 为Linux系统添加定时备份Mysql(Docker)指定数据库的方法

    引言使用Mysql的时候遇到需要定时备份数据库的问题,但苦于Mysql自身没有提供直接的工具。 安装7z的目的主要是用于对数据库备份后的文件的压缩和加密。如果不需要也可以跳过此步骤…

    Linux 2023年5月27日
    076
  • Ubuntu常用命令

    Ubuntu(18.04)下更改用户名和主机名 更改主机名字: (1)修改hostname文件 这个文件中的内容是用来显示主机名的,修改这个文件后,立刻重启 (2)修改hosts文…

    Linux 2023年6月13日
    088
  • USB转双串口产品设计-RS485串口

    基于USB转2路串口芯片CH342,可以为各类主机扩展出2个独立的串口。CH342芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动程序,可支持Windo…

    Linux 2023年6月7日
    0109
  • ASP.NET Web API实现POST报文的构造与推送

    毕设和OAuth协议相关,而要理解OAuth协议就必须理解HTTP GET/POST方法。因此研究了一下如何使用Web API或MVC构造POST报文并实现客户端与服务器端的交互。…

    Linux 2023年6月13日
    098
  • Tomcat 介绍及使用教程

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 1. Tomcat 介绍 Apache Tomcat 是由 Apache Software Foundation(ASF)开发的…

    Linux 2023年5月27日
    079
  • vue axios的二次封装

    1、axios的二次封装 BiliBili作者原地址,多多支持 npm i axios //下载axios 首先创建两个文件夹在src目录下;api和config 先在 confi…

    Linux 2023年6月7日
    080
  • 正则表达式

    正则表达式 字符 作用 . 点号 匹配任意一个且只有一个字符 [] 匹配[]集合内的任意一个字符 [^] 匹配不包含^后的任意字符 星号 重复前一个字符(连续出现)0次或N次 . …

    Linux 2023年6月6日
    0114
  • Kubernetes 使用kubeadm创建集群

    实践环境 CentOS-7-x86_64-DVD-1810 Docker 19.03.9 Kubernetes version: v1.20.5 开始之前 1台Linux操作或更多…

    Linux 2023年5月27日
    0151
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球