论文总结《Towards Evaluating the Robustness of Neural Networks(CW)》
原文链接
C&W
这篇论文更像是在讲一个优化问题,后面讲述如何针对生成对抗样本的不可解问题近似为一个可解的问题,很有启发。本文后面将总结论文各个部分的内容。
Motivation
文章提出了一个通用的设计生成对抗样本的方法,根据该论文提出的方法,可以针对不同任务设计出不同的生成对抗样本的方法。
contributions
- 提出了新的基于 L 0 L0 L0, L 2 L2 L2以及 L ∞ L_\infty L∞距离的攻击方法
- 该方法成功攻击了当时sota的防御方法 defensive distillation
- 提出了一个针对不同任务的设计生成对抗样本目标函数的解决方案
Session 1 介绍
介绍了当时一些攻击方法和防御方法,以及本篇论文的贡献
Session2 背景
介绍了一些背景知识,包括模型的训练,神经网络的定义,不同距离定义,防御性蒸馏模型,
对抗样本的定义,这里提出了后续实验采用三个不同方法采样目标类:
- Average Case: 在非正确的标签中均匀采样
- Best Case: 利用攻击算法攻击非正确标签,挑选最易攻击的标签
- Worst Case: 利用攻击算法攻击非正确标签,挑选出最难攻击的标签
Session3 攻击算法介绍
Session 3 介绍几种攻击算法
A. 介绍利用受限内存的拟牛顿法(L-BFGS)求解最优化问题得到对抗样本
B. 介绍FGSM和I-FGSM
C. 介绍Jacobian-based Saliency Map Attack (JSMA),简单来说就是目标分类对于图像每一个像素点的梯度不同,表征每一个像素对于分类器判别该图像为目标类所作出的影响不同,选出有限数量的最有影响力的像素点进行更新
D. 介绍Deepfool
Session4 实验设置
这篇文章是在图像领域上研究对抗样本,这里叙述了在MNIST和CIFAR上训练的图像模型的相关参数设置
Session5 目标函数设计方法
求解对抗样本的问题可以抽象为下列的优化问题:

我们的目标就是找到 δ \delta δ,使得 D ( x , x + δ ) D(x, x + \delta) D(x,x+δ) 距离最小,同时需要满足下列两条约束条件,分布表示分类器对对抗样本的分类应该是指定的类别 t t t,且对于原图的扰动不能太明显。
然而上述的优化问题无法通过现有的优化算法进行优化,于是我们想办法将限制条件变形加入到最小化的目标函数中
对于 C ( x + δ ) = t C(x + \delta) = t C(x+δ)=t 的变形
定义 f f f,使得 C ( x + δ ) = t C(x + \delta) = t C(x+δ)=t 当且仅当 f ( x + δ ) < 0 f (x + \delta) < 0 f(x+δ)<0,文章中定义了七个可能的 f f f:

其中 ( e ) + (e)^+ (e)+ 表示 m a x ( e , 0 ) max(e, 0) max(e,0), s o f t p l u s ( x ) = l o g ( 1 + e x p ( x ) ) softplus(x) = log(1 + exp(x)) softplus(x)=log(1+exp(x)), l o s s F , s ( x ) loss_{F,s}(x) lossF,s(x) 表示交叉熵损失,那么 -loss 表示的就是分类中需要最小化的目标函数, F ( x ) = s o f t m a x ( Z ( x ) ) F(x) = softmax(Z(x)) F(x)=softmax(Z(x))。
其中 f 1 f_1 f1表示分类为目标类的损失应该越小越好, f 2 , f 3 f_2, f_3 f2,f3表示分类器预测为除目标类外的其他类的最大置信概率应该小于预测为目标类的置信概率, f 4 f_4 f4表示预测的置信概率大于0.5, f 5 f_5 f5表示预测目标类的置信概率大于1.5, f 6 , f 7 f_6, f_7 f6,f7与 f 2 , f 3 f_2, f_3 f2,f3类似,但是替换为了logits输出值。
那么有了 f f f后,对优化问题公式可以有如下变形:

进一步有:

其中 D ( x , x + δ ) D(x, x + \delta) D(x,x+δ)有可以表示为 ∣ ∣ δ ∣ ∣ p ||\delta||_p ∣∣δ∣∣p ,则:

下面我们要解决最后一个约束条件,作者提出三个解决方法:
- Projected gradient descent,执行梯度下降,将梯度下降后超过范围的值直接截断然而作为下一次梯度下降的输入,缺点就是截断带来的误差会带入下一次梯度下降
- Clipped gradient descent,将 f ( x + δ ) f(x + \delta) f(x+δ) 替换为 f ( m i n ( m a x ( x + δ , 0 ) , 1 ) ) f(min(max(x + \delta, 0), 1)) f(min(max(x+δ,0),1)),虽然可以一直保证输入是在范围内,但是缺点就是如果 x + δ x + \delta x+δ很大,那么输入为0,此时梯度为0,更新会因此停滞
- Change of variables,将 δ \delta δ 替换为

这样可以保证输入在范围内且梯度不会为0。因此,所有的约束条件都融合进了目标函数,此时便可以采用现有的优化方法如Adam来进行优化。
Session6 三种攻击
L2攻击

L2攻击是效果文中中效果最好的攻击算法,其中 − k -k −k 用于控制公式产生需要的置信值
L0攻击
L0并非L0范数,而是表示满足某种条件的个数,在文章中表示需要对对抗样本图像像素允许更新的集合,文章采用迭代算法,每一次迭代选取 i = a r g m i n i g i ∗ δ i i = argmin_ig_i*\delta_i i=argminigi∗δi对于的像素位置移出运行更新的集合,直到找到一个对抗样本。
L ∞ L_\infty L∞攻击
L ∞ L_\infty L∞ 原本定义为 δ \delta δ中最大的索引 i i i,这样会导致更新的时候只更新具有最大值得像素位置(除最大值位置外其它位置梯度均为0),其它像素不更新。
因此作者将 L ∞ L_\infty L∞ 替换为超过 τ 的值得像素位置进行惩罚,则优化函数为:

Session7 对攻击方法的评估实验
这里叙述了不同攻击方法的对比实验,以及参数的分析,这里不再赘述,有兴趣可以看原文,这里介绍一下其中提到的defensive distillation方法。
首先先介绍什么是蒸馏,蒸馏是一种模型压缩的方法,简单来说,我有一个Teacher network,利用这个Teacher network在原来的labels上训练(原来的labels称为hard-labels,例如有三分类,则y = [0, 1, 0])。训练后利用Teacher network跑一遍训练集,预测出来的结果作为更小模型的训练集,此时这个训练集称为soft labels(y = [0.6, 0.2, 0.2])。
那么defensive distillation与蒸馏思想类似,不过有两点不同,
- Teacher model和目标 model 大小一致
- 引入了蒸馏温度T,主要用于变化softmax公式:

增加温度T,使得softmax更加 “soft”,即更难以更新,但更新后鲁棒性更强。
总结与思考
这篇文章可以说是讨论一个优化问题的文章,不过是在一个具体的场景下,其中涉及到的关于优化问题的变形很有启发意义,值得学习。
其次,我认为可能的完全有效的攻击方式是模仿出模型预测数据的对应的分布,那么我们就能完全生成我们自己想要模型预测不同结果的对抗样本。
相关文章:
论文总结《Towards Evaluating the Robustness of Neural Networks(CW)》
原文链接 C&W 这篇论文更像是在讲一个优化问题,后面讲述如何针对生成对抗样本的不可解问题近似为一个可解的问题,很有启发。本文后面将总结论文各个部分的内容。 Motivation 文章提出了一个通用的设计生成对抗样本的方法,根据该论文提…...
2024重庆邮电大学软件工程809题库(带答案)
1.下列选项中,不属于质量管理的主要任务的是( C )。 A)制定软件质量保证计划 B)按照质量评价体系控制软件质量要素 C)增加软件产品的功能 D)对最终软件产品进行确认 2.下…...
三种目标检测方法(基于传统数字图像处理的识别方法、基于传统机器学习的识别方法和基于深度学习的识别方法)的区别
问题描述:图像检测分为了基于传统数字图像处理的识别方法、基于传统机器学习的识别方法和基于深度学习的识别方法,但是有时迷惑三者的区别是什么呢? 问题解答: 第一,基于传统数字图像处理的识别方法和其他两者的区分…...
制造业为什么要建设数字化供应链
数字化让越来越多的人走向了线上的世界,让那些拥有线上产品或提供线上服务的企业提供了更多流量。 但与此同时,传统制造业遭受了沉重的打击,考虑到防疫要求,很多工厂长期处于人手不足的状态,生产制造效率大幅降低&…...
webrtc Thread 和 TaskQueue 的 应用和思考
webrtc Thread 和 TaskQueue 的 应用和思考 Thread #include "rtc_base/thread.h"void FunctionToRunOnThread() {// Your threaded logic here.printf("Function running on the thread!\n"); }int main() {rtc::Thread* thread rtc::Thread::Create()…...
无涯教程-Perl - pos函数
描述 此函数用于查找最后匹配的子字符串的偏移量或位置。如果指定了SCALAR,它将返回该标量变量上最后一个匹配项的偏移量。 您还可以为此函数分配一个值(例如pos($foo) 20;),以更改下一个匹配操作的起点。 偏移是从第零位置开始的计数器。 语法 以下是此函数的简单语法- …...
【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio构建Java、Python项目
文章目录 一、云IDE1、云IDE简介2、云IDE和云虚拟桌面区别 二、Cloud Studio 简介1、简介2、AI代码助手3、企业源代码安全 三、快速开始1、登录Cloud Studio2、新建工作空间3、代码空间 四、项目构建1、构建Java项目1.1 新建工作空间1.2 初始化项目1.3 初始化小案例1.4、测试Ja…...
Java的Class类:每一个类都对应着一个Class对象
Class类的基本概念 在Java中,每一个类都对应着一个Class对象,这个Class对象包含了类的相关信息,例如类的名称、继承关系、方法、字段、注解等信息。通过Class对象,可以获取类的各种信息并对其进行操作。 请细品这句话࿱…...
JavaScript预编译机制
变量预编译 任何变量,如果未经声明就赋值,此变量是属于 window 的属性,而且不会做变量提升,无论在哪个作用域内赋值。比如说直接写 console.log(a)肯定会报错,提示找不到 a。但如果直接写 a 100就不会报错࿰…...
【ARM 嵌入式 编译系列 4.1 -- GCC 编译属性 likely与unlikely 学习】
文章目录 GCC likely与unlikely 介绍linux 内核中的 likely/unlikely 上篇文章:ARM 嵌入式 编译系列 4 – GCC 编译属性 __read_mostly 介绍 下篇文章: ARM 嵌入式 编译系列 4.2 – GCC 链接规范 extern “C“ 介绍 GCC likely与unlikely 介绍 likely 和 unlikely …...
《算法竞赛·快冲300题》每日一题:“造电梯”
《算法竞赛快冲300题》将于2024年出版,是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码,以中低档题为主,适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 造…...
NSS [MoeCTF 2022]baby_file
NSS [MoeCTF 2022]baby_file 题目源码直接给了 使用data伪协议发现被ban了。 那就换一种伪协议php://filter,猜测flag在同目录下flag.php中或根目录下/flag中 php://filter/readconvert.base64-encode/resourceflag.php读取文件源码(针对php文件需要ba…...
喜报!诚恒科技与赛时达科技达成BI金蝶云星空项目合作
随着全球数字化浪潮轰轰烈烈袭来,仅仅凭借手工处理的方式难以在庞大的数据海洋中精准获取信息、把握市场需求、了解目标用户,为企业创新提供强有力的支持。深圳赛时达科技有限公司(简称赛时达科技)希望通过数字化转型实现从手工处…...
Vscode python调试和运行环境设置
Vscode python调试和运行环境设置 文章目录 Vscode python调试和运行环境设置前言一、是否为每次运行python程序都要选择环境烦恼二、是否为python程序调试不能进标准/第三方库而烦恼 前言 一、是否为每次运行python程序都要选择环境烦恼 在.vscode文件夹(没有就自己造一个)下…...
lua中执行luci.sys.call、luci.sys.exec、os.execute的区别
相同点:都是调用Linux底层脚本及程序 不同点: (1)luci.sys.call(command) 脾气捉摸不透,实际使用有些时候没有得到任何状态或数据返回,纯粹被用了一下。 (2)luci.sys.exec(command) …...
Python-OpenCV中的图像处理-模板匹配
Python-OpenCV中的图像处理-模板匹配 模板匹配单对象的模板匹配多对象的模板匹配 模板匹配 使用模板匹配可以在一幅图像中查找目标函数: cv2.matchTemplate(), cv2.minMaxLoc()模板匹配是用来在一副大图中搜寻查找模版图像位置的方法。 OpenCV 为我们提…...
模拟队列(c++题解)
实现一个队列,队列初始为空,支持四种操作: push x – 向队尾插入一个数 xx;pop – 从队头弹出一个数;empty – 判断队列是否为空;query – 查询队头元素。 现在要对队列进行 MM 个操作,其中的…...
Redis_哨兵模式
9. 哨兵模式 9.1 简介 当主库宕机,在从库中选择一个,切换为主库。 问题: 主库是否真正宕机?哪一个从库可以作为主库使用?如何实现将新的主库的信息通过给从库和客户端? 9.2 基本流程 哨兵主要任务: 监控选择主库通知 会有…...
Mysql中如果建立了索引,索引所占的空间随着数据量增长而变大,这样无论写入还是查询,性能都会有所下降,怎么处理?
索引所占空间的增长确实会对MySQL数据库的写入性能和查询性能造成影响,这主要是由于索引数据过多时会导致磁盘I/O操作变得非常频繁,从而使性能下降。为此,可以采取以下几种方式来减缓这种影响: 1. 限制索引的大小:可以…...
MySQL 约束
查看约束 select * from information_schema.table_constraints where table_name要查看的表名按约束的作用范围 列级约束: 将此约束声明在对应字段的后面 表级约束:在表中所有字段都声明完,在所有字段的后面声明的约束,可以声…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
