CVPR2021 安全AI挑战者计划第六期赛道一第二名方案分享 (UM-SIAT队)

news2025/1/16 3:54:13

关联比赛:  CVPR2021 安全AI挑战者计划第六期:防御模型的白盒对抗攻击

CVPR2021 安全AI挑战者计划第六期赛道一第二名方案分享 (UM-SIAT队)

1.赛题简介

1.比赛通过15个防御模型测试攻击算法,其中包括13个在CIFAR-10上训练的模型和2个在ImageNet上训练的模型。

2.白盒攻击,提交的攻击算法可以获取到白盒模型的信息,但是仅仅可以获得模型的logits输出,然后在此输出的基础上设计攻击目标函数或者梯度更新方式。基于模型特征上的白盒攻击算法不被允许

3.评测使用的是L∞​范数扰动。对于CIFAR-10上的模型,对抗扰动规模是8/255,对于ImageNet上的模型,扰动规模是4/255。

4.限制提交攻击的运行时间。每个数据的平均梯度计算次数应少于100次,平均模型预测次数应少于200次。在Tesla V100 GPU上,所有模型的总运行时间应少于3小时。

5.初赛的模型是可见的,复赛和最终阶段的模型是隐藏的。

6.初赛和复赛是在CIFAR-10测试集的前1000个数据和ImageNet ILSVRC 2012验证集中随机挑选的1000个数据进行测试。最终阶段利用CIFAR-10测试集中所有的10000个数据和ImageNet中的1000个数据进行最终评测。

7.比赛中使用的深度学习框架为Tensorflow。

2.赛题分析

1.众所周知,目前很多对抗防御方法被提出以减轻对抗样本的威胁。但是,其中一些一开始认为很有效防御可以被后来更强大或更具针对性的攻击攻破,这使得很难判断和评估当前防御和未来防御的有效性,如果不能对防御模型进行全面而正确的鲁棒性评估,那么此领域的进展将受到限制。这已经充分说明了尽快解决该问题变得多么急切和重要,所以这次比赛举办的恰逢其时。

2.本次比赛限制仅仅可以获得模型的logits输出,然后在此输出的基础上设计攻击目标函数或者梯度更新方式。基于模型特征上的白盒攻击算法不被允许。这一限制对我们提出的策略影响很大,因为我们正好提出了一个利用模型特征提升白盒攻击威力的框架,这一工作已经被评为cvpr2021的oral。

enter image description here


 

enter image description here


论文具体细节请参考:https://arxiv.org/abs/2104.09284

3.每个数据的平均梯度计算次数应少于100次,目前的所有攻击策略都是,迭代的次数越多效果越好,正好这次规定不是每一个数据的梯度计算次数,所以可以将很快就攻击成功的数据停止进一步的攻击,将剩余的梯度计算次数分配给那些需要迭代次数比较多的样本。

4.在Tesla V100 GPU上,所有模型的总运行时间应少于3小时,在所有模型中,最耗费时间的就是ImageNet模型,所以如果时间超出范围,就可以主动降低在ImageNet模型上的平均梯度计算次数,以降低总体的运行时间。

5.初赛的模型是可见的,这为参赛选手提供了足够的机会进行攻击策略的优化,复赛和最终阶段的模型是隐藏的,这对攻击策略的泛化能力提出了很大的考验。

6.初赛和复赛均是在CIFAR-10测试集的前1000个数据和ImageNet ILSVRC 2012验证集中随机挑选的1000个数据进行测试。而最终阶段利用CIFAR-10测试集中所有的10000个数据和ImageNet中的1000个数据进行最终评测。由于初赛和复赛参与评测的数据较少,使得评测结果与最终评测时所有数据参与评测的结果有所差异。

7.比赛中使用的深度学习框架为Tensorflow,目前学术圈不是以Pytorch为主吗?而且Tensorflow各个版本之间存在兼容的问题,如果官方比赛时的环境重新安装了或者发生了变动,使得某些函数无法实现原有的功能,比赛的结果就会收到很大的扰动,感觉把比赛的框架换成Pytorch会吸引更多的人参与这个比赛。

3.解决方案思路

1.本次比赛的梯度计算次数,所以攻击策略的收敛速度是很关键的。虽然不能使用模型特征信息使得我们很受伤,但是我们在论文里提出了新的损失函数,收敛速度远超Autoattack中的dlr_loss。

enter image description here


2.我们将模型分为两类,一类是不管是使用什么类型的攻击方法进行攻击,模型(以trades模型为例)的鲁棒性均不会大幅度改变,另一类模型则是在不同类型的攻击方法进行攻击的情况下,模型(以feature scatter模型为例)的鲁棒性会发生很大的变动,模型的鲁棒性直接减半甚至几乎为0。针对这两类模型的攻击策略应该有所区分。

3.步长的调整策略很关键,定长的步长并不是一个很好的选择,我们在论文中已经验证了linear_decay策略的有效性。

4.集成的攻击效果会更好,如何在平均梯度计算次数应少于100次的前提下进行集成是一个不小的考验。

5.保证攻击策略的泛化能力需要确保攻击策略对超参数不敏感,同时确保攻击策略在不同类型的模型上均有好的效果。

4.方案细节

1.首先是,在每次攻击之前,我们都会判定,参与攻击的样本是否已经成功使得模型预测出错,如果犯错则说明,该攻击已经成功,对于该输入样本的攻击则会停止。将剩余的梯度计算次数让给还未攻击成功的样本。

2.除了我们自己提出的新的损失函数,我们在攻击过程中也引入了dlr_loss,一是为了增加一些攻击扰动的多样性,最重要的则是我们要用dlr_loss攻击的结果,自适应的将模型区分为两类,之后针对不同的分类结果调用不同的后续攻击策略。这么做的主要原因就是我们自己的损失函数收敛速度快,在untarget版本的攻击下仅需要10轮迭代便可使得模型的鲁棒性下降过程趋于稳定,对于鲁棒性变动不大的模型,使用dlr_loss的top3 target版本,每个target赋予10次迭代,进行攻击不会带来很大的收益,对于鲁棒性变化很大的模型,使用dlr_loss的top3 target版本进行攻击则会使得模型的鲁棒性大幅的下降,利用这个特点,我们设计了自适应的区分不同类型的模型的策略。这个策略能不能被触发就完全取决于复赛中有没有鲁棒性变动很大的模型了。

3.针对区分出来的鲁棒性变动不大的模型,我们会将剩余的所有梯度计算次数给我们提出的新的损失函数的untarget版本进行攻击。针对区分出来的鲁棒性变化很大的模型,我们将剩余的梯度计算次数均分到我们提出的新的损失函数的top10 multitarget进行攻击。

4.由于我们使用了集成,会对同一个数据进行不同的target进行攻击,为了充分使用之前攻击的扰动,我们设计了,下一个target的攻击会在保留之前扰动的基础上进行,采用了这个策略之后,我们就完全没有使用随机噪声和动量。

5.步长的调整,我们使用了linear, cos, cosine三个版本的衰减策略,然后在三种策略中进行搜索,匹配出效果最稳定的版本,最终我们使用的为按照cos规律衰减的版本。

6.我们为了确保攻击策略对超参数不敏感,在搜索不同的组合的时候,特意选择了最终结果在不同的超参数下面比较稳定的版本。

5.致谢

感谢阿里举办的本次比赛,祝愿比赛越办越好,影响力越来越高。

查看更多内容,欢迎访问天池技术圈官方地址:CVPR2021 安全AI挑战者计划第六期赛道一第二名方案分享 (UM-SIAT队)_天池技术圈-阿里云天池

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2166064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单刀单掷(SPST)及单刀双掷(SPDT)模拟开关

单刀单掷(SPST)及单刀双掷(SPDT)模拟开关是对继电器元件的一种模拟简化, 本质上还是一种用开关控制的开关. 我们先从单刀双掷(SPDT)模拟开关与继电器的一个对比中了解其特性. 单刀双掷(SPDT)模拟开关 通过菜单 绘制--有源集成电路--添加模拟开关(SPDT) 可以添加一个单刀双掷…

我与Linux的爱恋:进程创建|终止

​ ​ 🔥个人主页:guoguoqiang. 🔥专栏:Linux的学习 ​ 文章目录 一、进程创建**fork函数**写时拷贝 二、进程终止进程退出的常见方法 一、进程创建 fork函数 在Linux中fork函数是非常重要的函数,它从已存在进程…

黑马智数Day4-2

渲染基础Table列表 封装获取企业列表接口 export function getEnterpriseListAPI(params) {return request({url: /park/enterprise,params}) } 组件中获取数据 <script> import { getEnterpriseListAPI } from /apis/enterprise export default {name: Building,dat…

C++ | Leetcode C++题解之第435题无重叠区间

题目&#xff1a; 题解&#xff1a; class Solution { public:int eraseOverlapIntervals(vector<vector<int>>& intervals) {if (intervals.empty()) {return 0;}sort(intervals.begin(), intervals.end(), [](const auto& u, const auto& v) {retur…

直播平台美颜功能开发方案:基于视频美颜SDK的集成详解

本篇文章&#xff0c;小编将于大家共同探究视频美颜SDK的美颜功能开发方案&#xff0c;帮助开发者深入理解其集成过程及关键技术。 一、美颜功能的重要性 在竞争激烈的直播市场中&#xff0c;直播平台如何提升用户体验至关重要。美颜功能不仅能够改善主播的形象&#xff0c;提…

桌面专业版【查看MAC和ip地址】

UOS统信查看MAC和ip地址的方法。 文章目录 查看方法一、图形化界面查看二、命令查看 查看方法 一、图形化界面查看 打开控制中心-网络-网络详情中-Mac地址就是您电脑的mac地址&#xff0c;IPV4就是您电脑的ip地址。 二、命令查看 桌面右键选择在终端中打开&#xff0c;输入i…

9.25度小满一面

1.map的底层 2.unorder_map哈希表有自己实现过吗&#xff1f;哈希冲突 3.poll和epoll和select的优缺点、 4.线程同步机制是用来做什么的? 5.五子棋项目问题-- 算法题: 6.LeetCode.重排链表 给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0…

Linux:地址分区——常量区、全局区、堆区、栈区

平台&#xff1a;Linux。本次实验是基于Linux平台&#xff0c;结论和其他平台大体相同&#xff0c;如有出入&#xff0c;也属于正常现象。实验内容&#xff1a;大致验证地址空间的各个分区。 结论如图&#xff1a; 结论说明&#xff0c;由低地址向高地址&#xff1a; 代码区&a…

Cortex-A7和Cortex-M7架构处理器取中断向量全流程分析

0 参考资料 Cortex M3权威指南(中文).pdf ARM Cortex-A(armV7)编程手册V4.0.pdf1 Cortex-A7和Cortex-M7处理器架构取中断向量全流程分析 1.1 什么是中断向量&#xff1f; 中断向量就是中断服务函数入口地址&#xff0c;例如我们发生了EXTI0中断&#xff0c;就需要执行EXT0中…

JavaScript 基础 - 第22天_Webpack模块打包工具

Day03_Webpack模块打包工具 目录 Webpack 简介与体验案例 - 打包注册用户网页插件 plugins 和加载器 loader 的使用案例 - 注册用户完成 - npm 作用在前端项目Webpack 开发服务器&#xff0c;打包模式调试代码 source map配置 路径 学习目标 了解 Webpack 的作用掌握 npm …

el-table中根据状态改单元格样式

需求&#xff1a;el-table中&#xff0c;有一列需要根据状态不同&#xff0c;显示的样式也不通。 解决方法&#xff1a; :cell-style"cellStyle" <el-table:data"tableData"style"width: 100%"size"mini"border:header-cell-style…

基于大数据可视化的化妆品推荐及数据分析系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

Html--笔记01:使用软件vscode,简介Html5--基础骨架以及标题、段落、图片标签的使用

一.使用VSC--全称&#xff1a;Visual Studio Code vscode用来写html文件&#xff0c;打开文件夹与创建文件夹&#xff1a;①选择文件夹 ②拖拽文件 生成浏览器的html文件的快捷方式&#xff1a; &#xff01;enter 运行代码到网页的方法&#xff1a; 普通方法&#xff1a…

毕业设计选题:基于ssm+vue+uniapp的自助购药小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

进阶SpringBoot之 Dubbo 及 Zookeeper 安装

Dubbo 文档 Dubbo 是一款高性能、轻量级的开源 Java RPC 框架 它提供了三大核心功能&#xff1a; 面向接口的远程方法调用、智能容错和负载平衡、服务自动注册和发现 ZooKeeper 是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是 Hadoop 和 Hbase …

Vue75 编程式路由导航

笔记 作用&#xff1a;不借助<router-link> 实现路由跳转&#xff0c;让路由跳转更加灵活 具体编码&#xff1a; //$router的两个API this.$router.push({name:xiangqing,params:{id:xxx,title:xxx} })this.$router.replace({name:xiangqing,params:{id:xxx,title:xxx} …

K8s flink-operator 例子

1.参考官网&#xff1a; https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/docs/try-flink-kubernetes-operator/quick-start/ 2.首先环境具备 k8s、helm 我的环境 k8s 1.30 最新版本了 [rootk8s-master ~]# kubectl get no -owide NAME …

【QGIS】软件下载安装及GIS4WRF插件使用

【QGIS】软件下载安装及GIS4WRF插件使用 QGIS软件下载软件安装GIS4WRF插件导入参考 QGIS软件下载 官网-QGIS-Spatial without Compromise 下载安装包&#xff0c;居然有1.2G&#xff0c;那就慢慢下载吧&#xff01; 软件安装 双击安装包&#xff0c;如下&#xff1a; 接受…

MATLAB案例 | 沪深股市收益率的二元Copula模型

沪深股市收益率的二元Copula模型 1. 案例描述2.实现流程2.1 确定随机变量的边缘分布2.1.1 参数法计算流程2.1.2 非参数法 2.2 选取适当的Copula函数2.3 参数估计 3. 完整代码参考资料 1. 案例描述 现有上海和深圳股市同时期日开盘价、最高价、最低价、收盘价、收益率等数据,跨…

9.2自适应阈值分割

基本概念 在图像处理中&#xff0c;阈值分割是一种简单而有效的图像分割方法&#xff0c;它根据像素值将图像分割成前景和背景。自适应阈值分割是阈值分割的一种高级形式&#xff0c;它考虑了图像局部区域的亮度变化&#xff0c;从而能够更准确地分割图像。OpenCV是一个强大的…