Local Attention和动态深度卷积间的关系

news2025/1/8 18:02:54

摘要

Local Vision Transformer 是分别在一个个小的局部窗口中进行注意力计算。
作者将局部注意力重新定义为通道级的局部连接层(channel-wise locally-connected layer),并4个方面进行分析:两种网络的正则化方式,稀疏连接和权值共享,以及动态权值计算。
作者指出,局部注意力类似于稀疏连接中的深度卷积及其动态变体:通道之间没有连接,每个位置都连接到一个小局部窗口内的位置。主要区别在:
(i)权重共享——深度卷积在空间位置上共享连接权重,注意力在通道上共享连接权重;
(ii)动态权重计算方式——局部注意力基于局部窗口中成对位置之间的点积,动态卷积是基于中心表示或全局池化表示上进行的线性投影。
在局部Attention和动态深度级卷积间的联系是通过实验验证得到的。

引言

一些Local Vision Transformer的工作,将图像空间分为一系列小窗口,并在窗口内进行注意力计算。局部注意力在内存占用和计算效率上都有很大的改善,使扩展到目标检测和语义分割这样的下游任务更容易且更有效率。
从网络正则化方案入手研究局部注意力的机制
1,稀疏连接控制模型复杂度;
2,权重共享放松对训练数据规模的需求并减少模型参数
3,动态权重预测增加了model capability
作者将local attention重新解释为→有动态连接权重的通道级空间局部连接层(channel-wise spatially-locally connected layer with dynamic connection weights)
局部注意力主要有以下几点特性:
(1)稀疏连接:在通道间没有联系;每一个输出仅关联一个局部窗口内的输入;
(2)权重共享:连接权重是跨通道共享或者再一组通道间共享(一个head_dim内);
(3)动态权重:连接权重是根据每一个图像实例动态预测的。
深度级卷积和局部注意力联系
深度级卷积也是一个通道级空间局部连接层,并且可以有动态连接权重。
相似处:稀疏连接;
不同处:
(1)权重共享:深度级卷积在空间上共享连接权重;注意力在通道间共享连接权重‘
(2)动态权重的计算方式:局部注意力计算局部窗口内的成对位置的点积(dot-products);动态卷积是基于中心表征或全局池化表征的线性映射。
实验方式
基于Swin Transformer;将Swin Transformer中的局部注意力,替换为depth-wise卷积,形成DWNet。
结果
动态深度级卷积 DWNet在ImageNet和两个下游任务上实现了可比较的甚至更高的性能;并且DWNet计算复杂度更低。
消融研究表明权重共享和动态权重提升了模型容量。
1)对Swin Transformer来说,跨通道的权重共享主要有利于减少注意力权重的参数复杂度;基于注意力的动态权重有利于学习特定实例权重和块平移不变的表征;
2)对深度级卷积来说,跨位置的权重共享有利于减少参数复杂度和学习平移不变表征;基于线性映射的动态权重学习特定实例权重。

详细阐述局部注意力和深度级卷积

稀疏连接是指在一层中,一些输出神经元(变量)和一些输入神经元之间没有连接。它降低了模型的复杂性,但没有减少神经元的数量,例如,(隐藏的)表示的大小。

权重共享表示某些连接的权重是相等的。它降低了模型参数的数量,增加了网络规模,而不需要相应增加训练数据。

动态权重指的是为每个实例学习专门的连接权重。它通常旨在增加模型容量。如果将学习到的连接权值作为隐变量,则动态权值可以看作是引入了提高网络能力的二阶操作。
不同运算的连接示意图

局部注意力

将一个局部窗口 N k N_k Nk内的特征表示记为 x i j x_ij xij;基于注意力 a i j a_ij aij或者多头注意力 { a i j 1 , a i j 2 , . . . , a i j M } \{a_ij1, a_ij2, ..., a_ijM\} {aij1,aij2,...,aijM}计算得到的权重矢量为 w i j ∈ R D w_{ij}\in \mathbb{R}^D wijRD;
局部注意力的特征聚合过程可以表示为一个元素级乘法:
y i = ∑ j = 1 N k w i j ⊙ x i j y_i=\sum_{j=1}^{N_k}w_{ij}\odot x_{ij} yi=j=1Nkwijxij
结合图1(c)理解局部注意力属性:
稀疏注意力:
每一个输出位置仅与窗口 N k N_k Nk内的输入位置相连;
没有通道间的连接;也就是说,每一个输出元素 y i d y_{id} yid(第i个位置第d个通道);对应相同通道的输入窗口位置内的元素 { x i 1 d , x i 2 d , . . . , x i N k d } \{x_{i1d}, x_{i2d},...,x_{iN_{k}d}\} {xi1d,xi2d,...,xiNkd},与其他通道无关。
权重共享:
对应通道内的权重是共享的。
在单头的注意力中,D个通道间的权重是共享的;权重矢量 w i j = { w i j 1 , w i j 2 . . . . , w i j D } \mathcal{w}_{ij}=\{w_{ij1}, w_{ij2}....,w_{ijD}\} wij={wij1,wij2....,wijD}是一样的。
在多头注意力中,权重矢量 w i j \mathcal{w}_{ij} wij是group-wise相同的。即在每个head的子空间权重矢量一致。
动态权重:
权重是根据query x i \mathcal{x}_i xi和对应小窗口中的keys x i 1 , . . . x i N k \mathcal{x}_{i1},...\mathcal{x}_{iN_k} xi1,...xiNk动态预测的。
每个权重可以在一个head中获得跨所有通道的信息,并作为桥梁将跨通道信息传递到每个输出通道。
平移不变:
卷积是通过位置间的权重共享实现平移不变性;
局部注意力的平移不变性取决于keys和values是否改变,即注意力权重发生变化使,特征图会发生平移。在稀疏采样窗口的情况下,局部注意力是按块平移不变的,即平移的是一个或多个块,其块大小与窗口大小 K w × K h K_w\times K_h Kw×Kh相同,其他的不相同。
在窗口稠密采样的情况下,局部注意力可以理解为平移不变。
Set representation:
一个query的keys/values是作为一个集合收集的,空间顺序信息丢失。这导致了窗口之间的键/值之间的空间对应关系没有被利用。
通过位置编码或相对位置面包,能够保留局部窗口中的空间位置信息。

深度级卷积

深度卷积是每个卷积滤波器针对一个通道进行运算。
X d ˉ = C d ⊗ X d \bar{X_d}=C_d\otimes X_d Xdˉ=CdXd
X d X_d Xd X d ˉ \bar{X_d} Xdˉ分别是第 d d d个输入和输出通道图;
C d C_d Cd是对应卷积核; ⊗ \otimes 代表卷积运算。
这也可以表示为在一个局部邻域内对应空间位置相乘的元素级运算。
y i = ∑ j = 1 N k w o f f s e t ( i , j ) ⊙ x i j y_i=\sum_{j=1}^{N_k}w_{offset(i,j)}\odot x_{ij} yi=j=1Nkwoffset(i,j)xij

相似处:
深度卷积类似于稀疏连通性中的局部注意。没有跨频道的连接。每个位置仅连接到每个通道的小本地窗口中的位置。
不同处:
1,权重共享:深度卷积在空间位置上共享连接权重,而局部注意力在通道之间或每组通道内共享权重。局部注意力使用适当的跨通道权重共享来获得更好的性能。深度卷积得益于各个位置的权值共享,从而降低了参数复杂度,提高了网络能力。
2,动态连接:深度卷积的连接权重是静态的,并作为模型参数进行学习;局部注意力的连接权重是动态的,根据每一个实例进行预测。深度卷积的动态变体也受益于动态权重。
3,窗口表征:局部注意力利用集合的形式表征窗口中的位置,损失了空间位置信息;需要额外添加位置信息。深度卷积利用矢量形式,使用带有相对位置指示的权重聚合局部窗口中的表征,能够显式利用空间信息。

实验设置

基于Swin Transformer构建深度级卷积网络。
训练和评估方式和Swin Transformer一样。

实验分析

(感觉论文里的实验分析不够深入啊…)
在视觉识别中,局部和通道分离的连接是更有益的。

权重共享

权重共享的通道数目对性能有什么影响?
恰当的通道间权重共享是有好处的
对于Local Attention,权重共享的通道数目和每一个阶段注意力头部的数目有关。
对局部MLP来说,在每个窗口中学习权重并作为模型参数,不跨窗口共享。

对local attention, 太多的通道数和太少的通道数都不会取得最佳性能。
local MLP中,权重共享能很好地减少模型参数,但空间块的权重共享没有明显影响。
对深度卷积,通道间共享权重影响不大,但在位置间的权重共享明显提升了性能。

局部MLP和DWNet的窗口采样方案不同,局部MLP采用Swin Transformer中的方式对窗口进行稀疏采样,以降低较高的内存成本,而DWNet对窗口进行密集采样。在局部MLP中,跨位置权值共享不足以学习平移等效表示,这解释了为什么跨通道和位置权值共享的局部MLP的性能低于跨通道权值共享的深度卷积

动态权重

深度卷积的动态权重更好。
基于线性投影的动态权重方案(窗口的向量表示)比基于注意力的方案(窗口的集合表示)学习更好的权重。

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

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

相关文章

C语言实现九大排序算法(建议收藏!)

文章目录排序算法稳定性1. 插入排序原理排序过程代码实现性能分析2. 希尔排序原理排序过程关于增量取值代码实现性能分析3. 选择排序原理排序过程代码实现性能分析4. 堆排序原理排序过程代码实现性能分析5. 冒泡排序原理排序过程代码实现性能分析6. 快速排序原理Hoare法挖坑法前…

Easy App Locker - 给你的 mac 应用加锁保护你的隐私

Easy App Locker - 给你的 mac 应用加锁保护你的隐私 Easy App Locker可以对Mac上的单个应用进行密码保护。维护Mac上的隐私。 像如果你的某个应用存在隐私数据就可以使用该软件将此应用上锁,这样当你的朋友使用你的 mac 时你就不用担心你的隐私被泄露了&#xff0…

Java中创建线程的五种方式

目录: 前言 1.进程与线程的区别? 2.进程是操作系统进行资源分配的基本单位,而操作系统是以线程为单位进行调度的。 3. Java操作多线程,依赖最核心的类Thread。 4.关于start和run的区别? 5.使用JDK自带的工具jcon…

ArcGIS基础实验操作100例--实验7分割多部分要素

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 基础编辑篇--实验7 分割多部分要素 目录 一、实验背景 二、实验数据 (1)查看多…

第05讲:Redis主从复制

一、关于主从复制 1.1、什么是主从复制 主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 1.2、主从复制的作用 读写分离,性能扩展容灾快速恢复 二、一主多从的实验 2.1、原…

GitHub+HEXO博客设置主题

文章目录安装主题修改站点配置文件修改主题配置文件部署到github补充由于之前使用HexoGitHub搭建了个人博客用的是最原始的主题,丑的一批QAQ 用一下Github上面Star最高Next主题look look! 上节博客:HexoGitHub搭建个人博客 主题选取网站&a…

CnOpenData中国工业企业基本信息扩展数据

一、数据简介 拉动中国经济的三个产业中,工业企业占有特殊的地位,是推动国内经济发展的重要产业。工业是最主要的物质生产部门,为居民生活、各行业的经济活动提供物质产品,这一重要作用是其他任何产业部门都无法替代的。工业企业为…

拆串后结构化,其中按行对齐

【问题】 I have a bit weired scenario where i need to fetch data i have following three products product1 product2 product3and each product has different ids(e.g. p1345,p3453,p2345) and then each froduct have different options which are having different…

算法题刷累了就来试试游戏吧----2048小游戏----C语言实现

目录 1. 代码前的准备 2. 游戏思路及代码分析 2.1 game.h 代码分析 2.2 test.cpp代码分析 3. 完整代码 3.1 game.h 3.2 game.cpp 3.3 test.cpp 嘿嘿嘿,写游戏还是挺高兴的撒,如果你还不知道2048这个小游戏的规则,那么快去试试吧。不然…

项目管理误区:项目不确定性≠项目风险

项目失败的原因千千万万,罪魁祸首肯定跟“它”脱不了关系! 前段时间,偶然看到一个求助贴引发了各路网友(项目经理)的热议。求助人的问题是:“如何管理项目中的不确定性?” 下面的回复已然偏离答…

Linux系统运行时参数命令--文件IO性能监控

目录 4 文件IO性能监控 4.1 I/O 的两种方式(缓存 I/O 和直接 I/O) 1 缓存 I/O 2 直接 I/O 4.2 监控磁盘I/O的命令 1 iostat IO状态 2 swapon查看分区使用情况 3 df硬盘使用情况 4 du目录文件大小 4.3 文件IO写入频繁案例分析 C/CLinux服务器开发/后台架构师【零声教育…

IU8689+IU5706 单声道100W/立体声60W同步升压+功放IC大功率拉杆音箱应用组合方案

引言 目前中大功率拉杆音箱主要采用12V铅酸电池为供电电源,在电源直供的时候,一般的功放芯片输出功率在20W左右(喇叭为4欧、THD10%)。超过50W的功率现阶段市场上主要采用升压芯片TPA3116的组合解决方案。 随着竞争的加剧&#x…

如何进行数据可视化图表设计?

如何进行数据可视化图表设计? 对数据人来说,数据可视化是分析理解数据,并最终呈现数据的必修课。本文从以下几个点来说明,如何进行数据可视化图表设计。1、数据背后的故事2、充分理解数据3、多种图表类型设计指南 1数据背后的故…

安克创新能否锚定全球家用储能市场 隆起新的增长极?

提到能源储存,似乎应该是涉及一个国家或者地区的宏大概念。但事实上,储能正在走向家用领域。 近年来,全球能源价格持续高涨,但家用储能的成本却随着锂电等新能源技术的发展在逐渐下降,经济性开始凸显。家用储能在海外…

用HTML制作独一无二的2022回忆旋转相册

目录 前言 效果展示 流程 前言 元旦即将来临,展望2022,我们可以制作一个自己的2022回忆的旋转相册,通过下面的方法来学习吧 效果展示 制作好后,十张相册会在下面旋转,可以改为自己想要放的照片和音乐,制…

史上最简单的推箱子(AS3.0版)

我最熟悉的语言是 AS3.0,现在主要用C,还想学学Python,因此,最近一段时间先用AS3.0实现了最简版的推箱子、贪吃蛇和俄罗斯方块,然后换Python实现,算是熟悉了一下Python的基本用法,最后用C实现&a…

微信小程序 Spdier - OfferShow 反编译逆向(一)

微信小程序 Spdier - OfferShow 反编译逆向(一) 文章目录微信小程序 Spdier - OfferShow 反编译逆向(一)前言一、任务说明1.尝试反编译分析出js_code参数的生成方式,用来获取token2.将小程序搜索出来的数据保存至本地e…

【Java开发】Spring Cloud 01 :微服务前提精要

算是新开了一个 Spring Cloud 的坑,本文来源于姚半仙的《Spring Cloud 微服务项目实战》课程,大部分文字内容基于该课程,我的工作可能就是梳理归纳和拓展,希望尽快搞懂相对来说较为简单的 Spring Cloud Alibaba 微服务框架&#x…

决策树及分类原理与划分依据:信息熵、信息增益、信息增益率、基尼值和基尼指数

一、决策树及分类原理 决策树:是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树 熵(Entropy) :…

PostgreSQL数据库查询执行——SeqScan节点执行

SeqScan节点代码处于src/backend/executor/nodeSeqscan.c文件中,包含了4个重要函数:ExecInitSeqScan、ExecSeqScan、ExecReScanSeqScan和 ExecEndSeqScan。 ExecInitSeqScan src/backend/executor/nodeSeqscan.c文件中的ExecInitSeqScan函数&#xff0c…