Transformer的稳健性更好吗?

2023-11-13

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

本文:Greene |  来源:知乎(已获作者授权)

https://zhuanlan.zhihu.com/p/361105702

最近 Transformer 在计算机视觉遍地开花,从纯 Transformer 到 Transformer 和 CNN 的显式隐式杂交,各个任务仿佛嗷嗷待哺的婴儿,等着 Transformer 奶一口,这自然让人好奇 Transformer 的稳健性(Robustness)如何。

然而,Transformer 训练起来算力要求大,对抗训练加 Transformer 训练起来算力要求就是大上加大,好在我们不用亲自花费精力去实验,或者实验到一半的你也可以先休息一下,因为在 arXiv 上已经出现了研究 Transformer 的稳健性的论文。

第一篇映入眼帘的便是 2021年3月26日 公开的 Transformer 的老家谷歌做的这篇:

Srinadh Bhojanapalli, Ayan Chakrabarti, Daniel Glasner, Daliang Li, Thomas Unterthiner, Andreas Veit. Understanding Robustness of Transformers for Image Classification. arXiv:2103.14586

首先,Transformer 也存在对抗样本(Adversarial Example),这依然是一个问题,不过,针对 Transformer 的对抗扰动和针对 CNN 的对抗扰动看起来确实不太一样:

说明 Transformer 和 CNN 摔跤的地方不太一样。Transformer 的对抗扰动有明显的块(Patch)间差异,看起来似乎是每一块单独生成的对抗样本拼接而成的。他们使用 PGD 和 FGSM 测得的稳健性如下:

原文中对威胁模型(Threat Model)的描述是 one gray level,应该对应  。可以看到,Transformer 相对 CNN 并没有显著地更加稳健(Robust),在 FGSM 下的稳健性和应对输入变换(旋转、平移)的稳健性都不如 CNN;在 PGD 攻击下的稳健性比 CNN 要好一些,个人猜测有可能是因为 Transformer 让 PGD 更难优化。

老实说,这个结果让人有点失望,本来以为 Transformer 有从根本上杜绝对抗攻击的可能,但这些结果表明,并没有 o(╥﹏╥)o

不过令人欣慰的是,对抗样本在 Transformer 和 CNN 之间的迁移性不好:

这看起来似乎佐证了 Transformer 和 CNN 确实跌倒在不同的地方[1]。这篇文章处处透露着谷歌的豪气,只能说,不愧是谷歌。

就在这篇文章出现的三天后,arXiv上便再次出现了一篇研究 Transformer 的稳健性的论文:

Rulin Shao, Zhouxing Shi, Jinfeng Yi, Pin-Yu Chen, Cho-Jui Hsieh. On the Adversarial Robustness of Visual Transformers. arXiv:2103.15670

这篇论文最吸引人的地方是开篇的第一幅图:

这个 Transformer 看起来非常稳健啊,难道谷歌这次翻车了?按照这张图,Transformer 的稳健性似乎直接达到了对抗训练之后的CNN基准[2],而且他的结论是越加 CNN,就越不稳健......

然而看到后面却发现,好像结论跟谷歌没差,他们给出的PGD 攻击的结果如下:

在同样的威胁模型下(  ),ViT-B/16 的稳健精确度为 11.05% ~ 4.54%,与谷歌那篇论文的结论基本一致。图 1 目测绘制的是威胁模型为  的结果,这个威胁模型比一个灰度阶梯(1/255)还小,实际意义有限[3]

他们做了更加完善的迁移攻击的研究,结果如下:

颜色更深表示迁移性更强,对角线是自己跟自己的迁移攻击成功率,可以看到,结论与谷歌那篇中一致,对抗样本在 Transformer 与 CNN 之间的迁移性较低。

难能可贵的是,最耗时间的对抗训练他们也帮我们做了,这里使用的威胁模型是常见的  :

需要注意的是,每个模型只训练了 20 个周期(Epoch),一般的对抗训练会进行100个周期(Epoch)以上[4]。根据这个结果,Transformer 在对抗训练后的效果似乎比 CNN 要好,两个精确度都要高一些。

对比 ResNet-18 和 ViT-B/4 使用 TRADES 对抗训练得到的结果,ViT-B/4 的 标准精确度(Clean)要高 7.4%,稳健精确度(AutoAttack)要高 4.3%;鉴于只训练了20个周期,这个更好的效果有可能是因为 Transformer 在对抗训练的前期比 CNN 收敛得更快。

Transformer 是比 CNN 更稳健呢?还是稳健性跟 CNN 差不多呢?两篇论文,诸君自取。不过可以确定的是,Transformer 跟 CNN 跌倒的方式不同,他们确实学习到了很不一样的特征,而不一样的特征能得到相似的效果,不难理解为何关于 Transformer 的论文这么多了。

PS:Transformer 有没有合适的翻译额,中英混杂看起来很累,翻译成变压器或者变形金刚似乎不太好。

参考

  1. ^不过这里测试迁移性使用的是 PGD 攻击,之前已经有研究表明,就迁移性而言,使用 FGSM 这种单次攻击得到的对抗样本要更好一些

  2. ^Robust Bench https://robustbench.github.io/

  3. ^因为保存成图片这个级别的扰动基本就没有用了

  4. ^Tianyu Pang, Xiao Yang, Yinpeng Dong, Hang Su, Jun Zhu. Bag of Tricks for Adversarial Training. arXiv preprint 2020. arXiv:2010.00467 https://arxiv.org/abs/2010.00467

上述两篇论文PDF下载

后台回复:Tranformer鲁棒性,即可下载论文PDF

后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集

后台回复:Transformer综述,即可下载最新的两篇Transformer综述PDF

CVer-Transformer交流群成立

扫码添加CVer助手,可申请加入CVer-Transformer 微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。

一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

▲长按加小助手微信,进交流群

▲点击上方卡片,关注CVer公众号

整理不易,请给CVer点赞和在看

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Transformer的稳健性更好吗? 的相关文章

  • 给定 3D 空间中的一条线,如何找到从它到一点的角度?

    我在 3D 空间中有两组点 我想画一条穿过两组点的中心的线 然后找到从该线到每个点的角度 从那里开始 我将根据两个角度的接近程度来确定两组中的匹配点 我知道如何找到每组点的中心 只需将它们平均在一起 并且我知道如何将它们匹配 甚至考虑到它们
  • 提取给定 2D 图像点、深度图和相机校准矩阵的 3D 坐标

    我有一套2D image输出的关键点OpenCV FAST角点检测功能 使用Asus Xtion I还有一个时间同步的深度图 其中所有相机校准参数都是已知的 使用这些信息我想提取一组3D坐标 点云 在OpenCV 任何人都可以给我任何有关如
  • 3D 空间:使用鼠标指针沿着对象指向的方向

    给定相机面向的方向的 3D 向量以及 3D 空间中 3D 对象的方位 方向向量 如何计算鼠标指针在屏幕上必须遵循的 2 维斜率 以便在视觉上沿着所述物体的方向移动 基本上 我希望能够单击箭头并通过拖动它来使其前后移动 但前提是鼠标指针沿着箭
  • 点列表的 3D 轮廓(凹壳)

    我有一个 C 中的 Vector3 点列表 我需要计算这些点的凹轮廓 确实有很多参考资料 特别是对于 凸 分辨率 由于格雷厄姆算法 我已经成功实现了 然而 由于我现在需要有效地计算凹轮廓 所以我迷失了 维基百科确实列出了很多用于凸计算的资源
  • 光线追踪三角形

    我正在用java编写一个光线追踪器 并且我能够追踪球体 但我相信我追踪三角形的方式有问题 据我了解 这是基本算法 首先确定射线是否与plane三角形已打开 剪裁所有点 使它们与三角形位于同一平面上 因此xy以平面为例 根据沿着新平面向任意方
  • 颜色重新映射 - 使用 3D 网格匹配目标调色板?

    假设我有颜色 FOO 它以 RGB 格式存储 我需要重新着色 FOO 以便它与颜色列表中最接近的颜色匹配 即时执行此操作 我是否无法将每种颜色的 RGB 值视为 3D 网格上的点 r x g y b z 并计算点 FOO 与每个颜色点之间的
  • C++ Irrlicht 程序未链接:“未定义对‘__imp_createDevice’的引用”

    我的 Irrlicht 程序无法链接 我使用的编译器是g Code include
  • 3D 数学:根据“向上”和“向上”正交向量计算倾斜(滚动)角度

    我希望这是提出这个问题的正确位置和这个一样 https stackoverflow com questions 3035590 bank angle from up vector and look at vector 但表示为纯数学而不是图
  • 如何知道一个点是否在复杂的 3D 形状内(.ply 文件)

    我正在研究一个Java女巫项目真是要了我的命 经过几天在不同论坛上的研究 寻找我真正需要的东西 我来寻求你的帮助 我的数据 ply 文件 包含由许多三角形组成的 3D 形状 一个点 3D坐标 我想知道这个点是否包含在复杂的 3D 形状内 我
  • 在球体边缘绘制点

    因此 来自 Flash 背景的我对一些简单的 2D 三角函数有很好的理解 在带有 I 圆的二维中 我知道使用给定角度和半径将项目放置在边缘上的数学 x cos a r y sin a r 现在 如果我在 3d 空间中有一个点 我知道球体的半
  • 如何在不使用 Kinect SDK 函数的情况下将深度空间中的点转换为 Kinect 中的颜色空间?

    我正在做一个增强现实应用程序 将 3D 对象叠加在用户的彩色视频之上 使用 Kinect 1 7 版本 虚拟对象的渲染在 OpenGL 中完成 我已经成功地在深度视频上叠加了 3D 对象 只需使用 NuiSensor h 标头中深度相机的固
  • 如何使用 matplotlib 将 3d 数据单位转换为显示单位?

    这可能有点疯狂 但我正在尝试使用 matplotlib v1 1 0 创建 3d 散点图的可点击图像图 我已经阅读了如何对二维图进行操作 参见这个博客 http hackmap blogspot com 2008 06 pylab matp
  • 使用开源 3D 引擎从 Openstreetmap 数据渲染地图? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 从 Openstreetmap 数据渲染 3D 地图可能会很漂亮麻烦的 https gis stack
  • 计算任意网格的平面 UV 坐标

    我有从二维形状生成三角形网格的代码 因为在大多数情况下 这些形状在表面上的顶点分布不均匀 所以我在生成 UV 时遇到了问题 这样就不会导致纹理扭曲 任何人都可以推荐一些讨论平面网格上 UV 计算技术的文章 书籍 代码示例吗 谢谢 好的 让我
  • 在 R 中绘制 3D 数据

    我有一个 3D 数据集 data data frame x rep c 0 1 0 2 0 3 0 4 0 5 each 5 y rep c 1 2 3 4 5 5 data z runif 25 min data x data y 0 1
  • Java 的 3D 场景图库?

    我正在寻找一个可靠的 Java 3D 场景图 API 它具有良好的文档 活跃的社区和允许商业使用的许可证 我排除了com sun scenegraph https scenegraph dev java net 因为它是 GPL 而且看起来
  • 使用 vtk 给定一组点创建多条折线

    我需要使用 vtk 和 paraview 显示 50 个粒子空间中的轨迹 目前我的数据是pos x y t n 其中 n 是第 n 个粒子的标签 我已将所有数据保存在 vtk 文件中 该文件的组织方式如下 vtk DataFile Vers
  • 3D 旋转 - 透视

    public class MainActivity extends Activity LinearLayout rotator protected void onCreate Bundle savedInstanceState super
  • 从相机视图中拖动锁定在一定距离/半径处的对象

    我在场景中心有一个相机 距离相机 z 400 处有 1 个球体 其父级位于中心 我想从视图中向上 向下 向左 向右拖动球体 但同时不改变它相对于中心的 z 位置 我最终使用了另一个球体并使其不可见 添加side THREE DoubleSi
  • 透视变换矩阵的计算

    给定 3D 空间中的一个点 如何计算齐次坐标中的矩阵 将该点投影到平面上z d 其中原点是投影中心 好吧 让我们尝试解决这个问题 扩展伊曼纽尔的答案 Assuming如果您的视图向量直接沿着 Z 轴 则所有尺寸都必须按视图平面距离的比例进行

随机推荐