点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
作者:郑哲东 | (源:知乎)编辑:CVer
https://zhuanlan.zhihu.com/p/593319732

U-turn: Crafting Adversarial Queries with Opposite-direction Features

论文链接:
https://link.springer.com/article/10.1007/s11263-022-01737-y
论文备份链接:
https://zdzheng.xyz/files/IJCV_Retrieval_Robustness_CameraReady.pdf
代码:github.com/layumi/U_turn
作者:Zhedong Zheng, Liang Zheng, Yi Yang and Fei Wu
arXiv早期版本为:arxiv.org/abs/1809.02681
其实这篇文章初版2018年5月就写好了,最近2022年12月才中。四年中得到了老板们的很多支持和理解。
与早期版本相比,
  • 我们在公式上做了一些调整;
  • 加入了很多新的related works讨论;
  • 加入了 多尺度Query攻击 / 黑盒攻击 / 防御 三个不同角度的实验;
  • 加入 Food256, Market-1501,CUB,Oxford,Paris等数据集上的新方法和 较新的可视化方式。
  • 攻击了 reid中的PCB结构,攻击了Cifar10中的WiderResNet。
What:
  1. 本文的初衷其实特别简单,现有reid模型,或者 风景检索模型 已经达到了 95%以上的 Recall-1召回率,那么我们是不是可以设计一种方式来攻击 检索模型?一方面探探reid模型的老底, 一方面攻击是为了更好的防御,研究一下防御异常case。
  2. 检索模型与传统的分类模型的差异在于 检索模型是用提取出来的特征来比较结果(排序),这与传统的 分类模型有较大的差异,如下表。
3. 检索问题还有一个特点就是open set 也就是说 测试的时候类别 往往是训练时没见过的。如果大家熟悉 cub数据集,在检索设置下,训练的时候 训练集合100多种鸟,和 测试时 测试100多种鸟, 这两个100种是没有overlapp 种类的。纯靠提取的视觉特征来匹配和排序。所以一些分类攻击方法 不适合攻击检索模型,因为攻击时基于类别预测的graident往往是不准的。
4. 检索模型在测试时,有两部分数据 一部分是 查询图像query,一部分是图像库 gallery(数据量较大,而且一般不能access)。考虑到实际可行性,我们方法将主要瞄准攻击 query的图像来导致错误的检索结果。
How:
1. 很自然的一个想法就是攻击特征。那么怎么攻击特征?基于我们之前对于cross entropy loss的观察,(可以参考large-margin softmax loss这篇文章)。往往我们使用分类loss的时候,特征 f 会存在一个 放射形的分布。这是由于特征在学习的时候与 最后一层分类层权重W 计算的是 cos similarity。如下图,导致我们学完模型,同一类的样本会分布在该类W附近,这样 f*W 才能到达最大值。
2. 所以我们提出了一个特别简单的方法,就是让特征调头。如下图,其实有两种常见的分类攻击方法也可以一起可视化出来。如(a)这种就是把分类概率最大的 类别给 压下去(如 Fast Gradient),通过给-Wmax,所以 有红色的梯度传播方向沿着反Wmax;如(b)还有一种就是把 最不可能的类别的特征 给 拉上来 (如Least-likely),所以红色的梯度沿着 Wmin。
3. 这两种分类攻击方法在传统分类问题上当然是很直接有效的。但由于 检索问题中 测试集都是没见过的类别(没见过的鸟种),所以自然f 的分布 没有那么紧密贴合Wmax或者Wmin,因此我们的策略很简单,既然有了f, 那我们直接 把 f 往 -f 去移动就好了,如图(c)。
这样 在 特征匹配阶段,原来排名高的 结果, 理想情况下,与-f 算cos similarity,从接近1变到接近-1, 反而会排到最低。
达成了我们攻击 检索排序的效果。
4. 一个小extension。在检索问题中,我们还常用 multi-scale 来做 query augmentation,所以我们也研究了一下怎么在这种情况下维持 攻击效果。(主要难点在于 resize操作 可能把一些小却关键的抖动给smooth了。)
其实我们应对的方法也很简单,就如 model ensemble一样, 我们把多个尺度的adversarial gradient做个ensemble平均就好。
实验:
1. 在三个数据集 三个指标下,我们固定了 抖动幅度 也就是 横坐标的epsilon, 比较在同样抖动幅度下 哪一种方法能使检索模型犯更多错。我们的方法 是 黄色线 都处在最下面,也就是攻击效果更好。
2. 同时 我们也提供了在5个数据集上(Food,CUB,Market,Oxford,Paris)的 定量实验结果
3. 为了展示模型的机制,我们也尝试攻击了 Cifar10上的分类模型 。
可以看到我们改变最后一层特征的策略,对于 top-5也有很强的压制力。对于top-1,由于没有拉一个 候选类别上来,所以 会比 least-likely略低一些,但也差不多。
4. 黑盒攻击
我们也尝试了 使用ResNet50生成的攻击样本 去攻击一个黑盒的 DenseNet模型(这个模型的参数我们是不可获取的)。发现也能取得 比较好的迁移攻击能力。
5. 对抗防御
我们采用online adversarial training的方式 来训练一个防御模型。我们发现 他在接受新的白盒攻击的时候 依然是不行的,但是比完全没有防御的模型 在 小抖动上会更稳定一些(掉点少一些)。
6. 特征移动的可视化
这也是我觉得最喜欢的一个实验 。我们利用Cifar10,把最后分类层的维度改为2, 来plot 分类层的feature 的 变化。
如下图,随着 抖动幅度epsilon的变大,我们可以看到 样本的特征 慢慢 “调头”了 。比如大部分橙色的特征就移动到对面去了。
最后感谢大家看完我们微小的工作 ~欢迎关注分享点赞~
点击进入—>CV微信技术交流群
CVPR/ECCV 2022论文和代码下载
后台回复:CVPR2022,即可下载CVPR 2022论文和代码开源的论文合集
后台回复:ECCV2022,即可下载ECCV 2022论文和代码开源的论文合集
后台回复:Transformer综述,即可下载最新的3篇Transformer综述PDF
目标检测和Transformer交流群成立
扫描下方二维码,或者添加微信:CVer222,即可添加CVer小助手微信,便可申请加入CVer-目标检测或者Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测或者Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲扫码或加微信号: CVer222,进交流群
CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!
扫码进群
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看
继续阅读
阅读原文