Vision Transformer学习了什么-WHAT DO VISION TRANSFORMERS LEARN? A VISUAL EXPLORATION
WHAT DO VISION TRANSFORMERS LEARN? A VISUAL EXPLORATION
文章地址
代码地址
摘要
视觉转换器( Vision Transformers,ViTs )正在迅速成为计算机视觉的事实上的架构,但我们对它们为什么工作和学习什么知之甚少。虽然现有研究对卷积神经网络的机制进行了可视化分析,但对ViT的类似探索仍然具有挑战性。在本文中,我们首先解决在ViT上执行可视化的障碍。在这些解决方案的辅助下,我们观察到用语言模型监督(例如, CLIP)训练的ViT中的神经元是由语义概念而不是视觉特征激活的。我们还探索了ViT和CNN之间的潜在差异,我们发现Transformer和它们的卷积对应物一样检测图像背景特征,但它们的预测对高频信息的依赖要小得多。另一方面,两种建筑类型在特征从早期的抽象模式到后期的具体对象的过程中表现出相似的特征。此外,我们表明ViT在除最后一层之外的所有层中都保持空间信息。与以前的工作不同,我们表明最后一层最有可能丢弃空间信息,表现为一个学习的全局池化操作。最后,我们对包括DeiT、CoaT、ConViT、PiT、Swin和Twin在内的多种ViT变体进行大规模可视化,以验证我们方法的有效性。
介绍
实验发现
(1)通过剖析和可视化Transformer架构中的内部表示,我们发现patch tokens在除最后一个注意力块之外的所有层中都保留了空间信息。ViTs的最后一层学习类似于平均池化的token-mixing操作,使得分类头在摄取随机token而不是CLS token时表现出相当的准确率。
(2)在探讨了空间信息的作用后,我们深入探究了视觉通道和卷积神经网络的行为差异。在执行激活最大化可视化时,我们注意到ViTs比CNNs持续生成更高质量的图像背景。因此,我们尝试在推理过程中掩盖图像前景,发现当仅暴露于图像背景时,ViTs始终优于CNNs。这些发现支持Transformer模型从图像中提取多个源的信息,在分布外泛化和对抗鲁棒性上表现出优越的性能的观察。此外,卷积神经网络对图像中的高频纹理信息依赖较大。相比之下,我们发现ViTs即使在从输入中移除高频内容时也表现良好。
(3)虽然只有视觉的模型包含与不同物理对象和形状相对应的简单特征,但我们发现CLIP中的语言监督会导致响应复杂抽象概念的神经元。这包括响应与词性(如修饰语、形容词和介词)相关的视觉特征的神经元,响应广泛视觉场景的"音乐"神经元,甚至响应抽象的发病率概念的"死亡神经元"。
贡献
(1)我们观察到,当将标准的特征可视化方法应用于基于Transformer的模型的相对低维组件,如keys,queries,或者values时,会出现不可解释和对抗的行为。然而,将这些工具应用于position-wise feedforward层的相对高维特征,结果是成功的和信息丰富的可视化。我们对包括ViTs、DeiT、CoaT、ConViT、PiT、Swin和Twin在内的多种基于变压器的视觉模型进行大规模可视化,以验证我们方法的有效性。
(2)我们表明,针对ViT特征的patch-wise激活模式本质上类似于显著图,突出了给定特征所关注的图像区域。这种行为即使在相对较深的层中也持续存在,表明模型保留了块之间的位置关系,而不是将它们用作全局信息存储。
(3)我们比较了ViTs和CNNs的行为,发现ViTs更好地利用了背景信息,对高频、纹理属性的依赖较小。这两种类型的网络在更深的层次上逐步建立更复杂的表示,并最终包含负责检测不同对象的特征。
(4)我们研究了CLIP的自然语言监督对ViTs提取特征类型的影响。我们发现,CLIP训练的模型包含了各种特征,这些特征明显适合于检测与字幕文本对应的图像成分,如介词、形容词和概念范畴。
实验
实验思路
技术路线:基于在像素空间基于梯度做优化,主要目的是观察输入和 feature map 的关系。
优化问题是:
其中:ak表示对x进行增强操作,k表示第几次增强;TV表示正则项,让像素空间更锐化
主体思路:从k次增强的图像中找到Lmain损失最大的,Lmain损失其实就是将这个通道的特征图的所有位置相加,里面的特征向量f是一个通道d上的所有元素的堆叠,其中l表示是第几层,p表示patch。
可视化结果
Query,key和value的可视化结果不好,但是全连接层有更好的可视化结果,因为它向量大小为4倍d,表示更高维度。
解释:我们发现可视化的前馈特征明显比其他层更具有可解释性。我们将其他层可视化的困难归因于ViTs将大量信息打包成仅有768个特征的特性。
ViT空间信息的保留:layer 5有明显的空间信息(黑色部分),last layer就很平均了。如下图:
ViT的某些通道是由背景激活的,也有空间信息。图(a)的左边是识别草和雪,右边的激活图是由背景块产生的,如下图:
说明:对于每个图像三元组,顶部的可视化显示了我们方法的结果(优化结果),左下角的图像是验证/训练集中最活跃的图像(跟我们方法的结果最接近的图像),右下角的图像显示了激活模式(激活结果,白色的激活效果更强)。可视化结果表明,ViTs与CNNs的相似之处在于,当我们从浅层特征到深层特征的过程中,ViTs表现出从纹理到零件到物体的特征递进。L5这些表示的是层数。
结论
为了剖析视觉转换器的内部工作原理,我们引入了一个基于优化的特征可视化框架。然后,我们确定了ViT的哪些组件最适合产生可解释的图像,发现前馈层的高维内部投影是合适的,而自注意力的键、查询和值特征则不适合。
将该框架应用于上述特征,我们观察到ViTs在除最后一层外的所有层中都保留了patch的空间信息,表明网络从头开始学习空间关系。我们进一步表明,最后一个注意力层中定位信息的突然消失是由类似于平均池化的学习到的token混合行为造成的。
通过比较CNNs和ViTs时,我们发现ViTs更好地利用了背景信息,并且在仅暴露于图像背景时,ViTs能够做出远优于CNNs的预测,尽管ViTs对高频信息的丢失并不像CNNs那样敏感。我们还得出结论,这两种架构有一个共同的属性,即较早的层学习纹理属性,而较深的层学习高级对象特征或抽象概念。最后,我们表明,经过语言模型监督训练的ViTs学习到更多的语义和概念特征,而不是像典型的分类器那样学习对象特定的视觉特征。
感悟
学到了很多之前不知道的,至少不是很玄学了,主要是:
- ViT对高频信息不是很敏感
- ViT可以利用背景信息
- ViT跟CNN相同,低层特征还是纹理,高层特征就是体现对象特征了
- ViT的低维特征不好解释
- ViT中除了Transformer的最后一层外其他都保留了位置信息。
相关文章:

Vision Transformer学习了什么-WHAT DO VISION TRANSFORMERS LEARN? A VISUAL EXPLORATION
WHAT DO VISION TRANSFORMERS LEARN? A VISUAL EXPLORATION 文章地址 代码地址 摘要 视觉转换器( Vision Transformers,ViTs )正在迅速成为计算机视觉的事实上的架构,但我们对它们为什么工作和学习什么知之甚少。虽然现有研究对卷积神经网络的机制进…...

一种全新的图像滤波理论的实验(三)
一、前言 2023年02月22日,我发布了滤波后,为针对异常的白色和黑色像素进行处理的实验,本次发布基于上下文处理的方案的实验,目的是通过基于加权概率模型滤波后,在逆滤波时直接修复大量的白色和黑色的异常像素…...

CV——day79 读论文:基于小目标检测的扩展特征金字塔网络
Extended Feature Pyramid Network for Small Object DetectionI. INTRODUCTIONII. RELATED WORKA. 深层物体探测器B. 跨尺度特征C. 目标检测中的超分辨率III. OUR APPROACHA. 扩展特征金字塔网络B. 特征纹理传输C. 交叉分辨蒸馏IV. EXPERIMENTSA. Experimental Settings1&…...

智能家居项目(五)测试串口功能
目录 一、写一个单独测试串口的demo 二、直接运行上一篇智能家居的代码 一、写一个单独测试串口的demo 1、TTL串口与树莓派的连接方式 (1)TTL的RXD和TXD针脚连接到树莓的TXD和RXD上(T–>R R–>T),交叉连&…...

2023年全国最新道路运输从业人员精选真题及答案7
百分百题库提供道路运输安全员考试试题、道路运输从业人员考试预测题、道路安全员考试真题、道路运输从业人员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 71.根据《中华人民共和国安全生产法》,生产经营单位…...

python的所有知识点(含讲解),不看就亏死了
目录 简介 特点 搭建开发环境 版本 hello world 注释 文件类型 变量 常量 数据类型 运算符和表达式 控制语句 数组相关 函数相关 字符串相关 文件处理 对象和类,注:不是那个对象!!!!&…...

【Servlet篇】Response对象详细解读
文章目录Response 继承体系Response 设置响应数据设置响应行数据设置响应头数据设置响应体数据Response 重定向Response 响应字符数据Response 响应字节数据Response 继承体系 前面说到,我们使用 Request 对象来获取请求数据,使用 Response 对象来设置响…...

SAP FICO期初开账存货导入尾差
一、问题 1.AFS物料网格级别库存导入先除再乘有尾差: 旧系统数据迁移自两个系统:一个管理数量账(网格级别),一个管理金额账(物料级别) 2.MB52分工厂与MB5L分工厂统计差异: M…...

微信商城小程序怎么做_分享实体店做微信商城小程序制作步骤
各行各业都在用微商城小程序开店,不管是餐饮店还是便利店,还是五金店。都是可以利用微信小程序开一个线上店铺。实现线上跟线下店铺更加全面的结合。维护好自己的老客户。让您的客户给您拉新,带来新客户。小程序经过这几年的快速发展和不断升…...

【moment.js】时间格式化插件
Moment.js 用于在JavaScript中解析,验证,操作和显示日期和时间。是一款在项目中使用频率极高的时间格式化工具,Ant Design Vue 组件中就是使用它来处理时间的。 安装 npm install moment --save # npm yarn add moment # Ya…...

微信小程序开发【壹】
随手拍拍💁♂️📷 日期: 2023.02.24 地点: 杭州 介绍: 2023.02.24上午十点,路过学院的教学楼时🏢,突然看见了一团粉红色。走进一看是一排梅花🌸,赶在它们凋零前,将它们定格在我的相…...

2 k-近邻算法
0 问题引入 想一想:下面图片中有三种豆,其中三颗豆品种未知,如何判断他们类型? 1 KNN概述 1.1 KNN场景 电影可以按照题材分类,那么如何区分 动作片 和 爱情片 呢? 动作片:打斗次数更多爱情…...

深入探究文件I/O
目录Linux 系统如何管理文件静态文件与inode文件打开时的状态返回错误处理与errnostrerror 函数perror 函数exit、_exit、_Exit_exit()和_Exit()函数exit()函数空洞文件概念实验测试O_APPEND 和O_TRUNC 标志O_TRUNC 标志O_APPEND 标志多次打开同一个文件验证一些现象多次打开同…...

【LeetCode】剑指 Offer(9)
目录 题目:剑指 Offer 25. 合并两个排序的链表 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 题目:剑指 Offer 26. 树的子结构 - 力扣&#…...

python 遍历可迭代对象的方法
python 遍历可迭代对象的方法 可迭代(iterable) 迭代(遍历)就是按照某种顺序逐个访问对象中的每一项。 Python中有很多对象都是可以通过for语句来直接遍历的,例如list、string、dict等,这些对象都是可迭代的,被称为可迭代对象。 可以将可迭…...

【数据库】 第11章 并发控制
第11章 并发控制 事务 事务:(从微观角度,或者从DBMS角度)是数据库管理系统提供的控制数 据操作的一种手段,通过这一手段,应用程序员将一系列的数据库操作组合 在一起作为一个整体进行操作和控制,以便数据库管理系统能…...

Python3-数字
Python3 数字(Number) Python 数字数据类型用于存储数值。 数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。 Python 支持三种不同的数值类型: 整型(int) - 通常被称为是整型或整数,是正或负整数&#x…...

(四十一)Read Committed隔离级别是如何基于ReadView机制实现的?
今天我们来给大家讲一下,基于之前我们说的ReadView机制是如何实现Read Committed隔离级别的,那么当然了,首先就是要先做一些简单的回顾。所谓的Read Committed隔离级别,我们可以用骚气一点的名字,就是简称为 RC 隔离级…...

React echarts封装
做大屏的时候经常会遇到 echarts 展示,下面展示在 React (^18.2.0) 中对 echarts (^5.4.0) 的简单封装。 文章首发于https://blog.fxss.work/react/echarts封装.html,样例查看 echarts 封装使用 props 说…...

【C语言进阶】了解计算机的程序环境和预处理过程 掌握计算机预处理操作
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C语言进阶 🎯长路漫漫浩浩,万事皆有期待 文章目录1.编译与链接1.1 程…...

(三十六)大白话数据库幻读,本质到底是个什么问题?
上一讲我们给大家讲解了不可重复读这个问题,这个问题简单来说,就是一个事务多次查询一条数据,结果每次读到的值都不一样,这个过程中可能别的事务会修改这条数据的值,而且修改值之后事务都提交了,结果导致人…...

【算法经典题集】递归(持续更新~~~)
😽PREFACE🎁欢迎各位→点赞👍 收藏⭐ 评论📝📢系列专栏:算法经典题集🔊本专栏涉及到的知识点或者题目是算法专栏的补充与应用💪种一棵树最好是十年前其次是现在1.递归1.1 递归实现…...

多区域的OSPF实战配置
多区域的OSPF实战配置 需求 如图配置设备的接口IP地址如图规划OSPF网络的区域要求每个设备的 router-id 都是 x.x.x.x(x是每个路由器的名字)确保不同的PC之间可以互通 拓扑图 配置命令 PC1: 192.168.1.1 255.255.255.0 192.168.1.254PC2:…...

现在转行做程序员的多吗?
曾经有一名程序员说,他在编写程序时,就像一个发明家在做实验;当他把程序编好可以运行时,他就已经是个发明家了。 程序员作为众多转行人员首选的职业,也是被大众熟知了。但我们需要知道的不仅是它作为一个职业的定义&a…...

社招前端常见react面试题(必备)
解释 React 中 render() 的目的。 每个React组件强制要求必须有一个 render()。它返回一个 React 元素,是原生 DOM 组件的表示。如果需要渲染多个 HTML 元素,则必须将它们组合在一个封闭标记内,例如 <form>、<group>、<div&g…...

力扣-变更性别
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:627. 变更性别二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总结前言…...

【项目精选】医院管理住院系统的研究与实现(源码+论文+视频)
点击下载源码 本系统主要分为六大模块,分别是医生管理模块、病人管理模块、病床管理模块、收费管理模块、统计分析模块和系统功能模块 ,医生、病人和医院的管理人员都可以通过此系统寻找出自己所需要的信息。 1.1 背景 医院管理住院系统是当今大部分现代…...

Lenovo Legion Y530-15ICH电脑 Hackintosh 黑苹果efi引导文件
原文来源于黑果魏叔官网,转载需注明出处。硬件型号驱动情况主板Lenovo Legion Y530-15ICH处理器Intel Core™ i7-8750H (Coffee-Lake)已驱动内存16GB RAM DDR4 2667MHz已驱动硬盘2TB HP EX950 PCI-E Gen3 x4 NVMe SSD已驱动显卡Intel UHD Graphics 630Nvidia GTX 10…...

CICD 导航
目录内容链接产研服务产研服务参考文章:【产研】 服务部署配置及使用产研服务问题解决参考文章:【问题解决】产研.Net服务部署 配置 使用代码托管GitlabGitlab参考文章:Gitlab 安装 与 使用代码托管Gitlab问题解决参考文章:【问题…...

xgboost学习-原理
文章目录一、xgboost库与XGB的sklearn APIXGBoost的三大板块二、梯度提升树提升集成算法:重要参数n_estimators三、有放回随机抽样:重要参数subsample四、迭代决策树:重要参数eta总结一、xgboost库与XGB的sklearn API 现在,我们有…...