2024/4/14周报
文章目录
- 摘要
- Abstract
- 文献阅读
- 题目
- 创新点
- CROSSFORMER架构
- 跨尺度嵌入层(CEL)
- CROSSFORMER BLOCK
- 长短距离注意(LSDA)
- 动态位置偏置(DPB)
- 实验
- 深度学习
- CrossFormer
- 背景
- 维度分段嵌入(DSW)
- 两阶段注意力层(TSA)
- 分层encoder-decoder
- 表现
- 超参数调整
- 总结
摘要
本周阅读了一篇以跨尺度注意力为基础的通用视觉Transformer器的文章,文中提出了跨尺度嵌入层(CEL)和长短距离注意(LSDA)。不仅减少了计算负担,而且在嵌入中同时保留了小尺度和大尺度特征。通过以上两种设计,实现了跨尺度注意。大量的实验表明,CrossFormer在图像分类、对象检测、实例分割和语义分割任务上优于其他视觉转换器。此外,对CrossFormer进行更近一步的学习。
Abstract
This week, an article about a universal visual Transformer based on cross-scale attention is readed, in which cross-scale embedding layer (CEL) and long-short distance attention (LSDA) are proposed. It not only reduces the computational burden, but also preserves both small-scale and large-scale features in embedding. Through the above two designs, cross-scale attention is realized. A large number of experiments show that CrossFormer is superior to other visual converters in image classification, object detection, instance segmentation and semantic segmentation. In addition, learn more about CrossFormer.
文献阅读
题目
CROSSFORMER: AVERSATILE VISION TRANSFORMER HINGING ON CROSS-SCALE ATTENTION
创新点
1) 提出了跨尺度嵌入层(CEL)和长短距离注意(LSDA),它们共同弥补了现有变压器无法建立跨尺度注意的缺陷。
2) 进一步提出了动态位置偏置模块(DPB),以使相对位置偏置更加灵活,即,适应可变的图像大小或组大小。
3) 构建了多个不同大小的CrossFormers,并通过四个代表性视觉任务的充分实验证实了它们的有效性。
CROSSFORMER架构
CrossFormer的整体架构如图所示:

左图(a):用于分类的CrossFormer的架构。输入大小为H0 ×W0,每个阶段的特征图大小显示在顶部。阶段i由CEL和ni CrossFormer块组成。CEL中的数字表示用于对补丁进行采样的内核大小。
右图(b):两个连续CrossFormer块的内部结构。SDA和LDA交替出现在不同的区块中。
CrossFormer采用了金字塔结构,将Transformer模型分为四个阶段。每个阶段由一个跨尺度嵌入层(CEL)和几个CrossFormer块组成。CEL接收最后一级的输出(或输入图像)作为输入,并生成跨尺度嵌入。在这个过程中,CEL(除了第1阶段)将嵌入的数量减少到四分之一,同时将金字塔结构的维度增加一倍。然后,在CEL之后,建立多个CrossFormer模块,每个模块都涉及长短距离注意(LSDA)和动态位置偏差(DPB)。
跨尺度嵌入层(CEL)
跨尺度嵌入层(CEL)被用来为每个阶段生成输入嵌入。图2以第一个CEL为例:

输入图像由四个不同的核采样(即,4 × 4,8 × 8,16 × 16,32 × 32),步幅相同4 × 4。每个嵌入都是通过投影和连接四个补丁来构建的。Dt表示嵌入的总维数。
CROSSFORMER BLOCK
每个CrossFormer模块由长短距离注意模块(即,LSDA,其涉及短距离注意(SDA)模块或长距离注意(LDA)模块)和多层感知器(MLP)。如图1b所示,SDA和LDA交替出现在不同的块中,动态位置偏置(DPB)模块在SDA和LDA中工作,以获得嵌入的位置表示。在先前的视觉变换器之后,在每个块中使用剩余连接。
长短距离注意(LSDA)
将自我注意模块分为两部分:短距离注意(SDA)和长距离注意(LDA)。对于SDA,每个G×G相邻嵌入被分组在一起。图3a给出了G = 3的示例。对于输入大小为S × S的LDA,嵌入以固定间隔I采样。例如,在图3b(I = 3)中,所有带有红色边框的嵌入都属于一个组,而那些带有黄色边框的嵌入则组成另一个组。LDA的组的高度或宽度被计算为G = S/I(即,在这个例子中G = 3)。在分组嵌入之后,SDA和LDA都在每个组内使用香草自我注意。因此,自注意模块的存储/计算成本从O(S4)降低到O(S2 G2),并且在大多数情况下G <S。

动态位置偏置(DPB)
相对位置偏差(RPB)通过在嵌入者的注意力上增加一个偏差来表示嵌入者的相对位置:

提出了一个基于MLP的模块DPB来动态生成相对位置偏差:

实验
实验进行了四个具有挑战性的任务:图像分类,对象检测,实例分割,语义分割。
图像分类:
结果示于表2中:

CrossFormer实现了与其他最先进的视觉Transformer结构相媲美的参数和FLOP的最高精度。具体而言,与强大的基线DeiT,PVT和Swin相比,我们的CrossFormer在小模型上的准确性至少绝对优于它们1.2%。此外,虽然RegionViT在小模型上达到了与我们相同的准确度(82.5%),但在大模型上绝对低于我们的0.7%(84.0% vs. 83.3%)。
目标检测和实例分割:
关于对象检测和实例分割的实验都是在COCO 2017数据集上完成的(Lin et al.,2014),其中包含118K训练和5K瓦尔图像。结果RetinaNet和Mask R-CNN的结果分别见表3和表4:


语义分割:
结果示于表5中。与对象检测类似,CrossFormer在扩大模型时表现出更大的性能增益:

深度学习
CrossFormer
背景
现有的Transformer类模型变体主要都是侧重于捕捉时间序列的跨时间依赖性,而忽略了变量之间的跨维度依赖性。Crossformer,这是一个基于Transformer的模型,考虑了跨维度依赖性。
主要设计了三大结构:
1)维度分段嵌入(DSW):负责保留时间和维度信息。每个维度的序列被分割成段,嵌入到特征向量中。
2)两阶段注意力(TSA):有效捕捉跨时间和跨维度依赖性。
3)分层encoder-decoder(HED):每一层对应一个尺度,encoder上层捕捉较粗尺度的依赖性,decoder生成不同尺度的预测并加总作为最终预测。
以往Transformer变体在做多变量时间序列预测的时候,位于同一个时间步不同维度的数据是直接嵌入到同一个向量中的,如此一来计算向量之间的注意力就只能捕捉到时间步上的区别(如图b)。图a所示的是在ETTh1数据集上训练的注意力图,可以看到注意力值有明显的分段,且相近的数据点的注意力权重相似。
故CrossFormer作者认为每个维度的序列在不同时间步上应该被分割成好几段来嵌入,而不是单个时间步表示所有维度的嵌入(如图c)。

维度分段嵌入(DSW)

两阶段注意力层(TSA)
对于获得的二维数组H,直接应用自注意力会产生二次方的复杂度,因此通过两阶段注意力层捕获二维数组跨时间和跨维度的依赖性。
1、 跨时间阶段:直接将多头自注意力应用于每个维度
2、 跨维度阶段:该阶段直接对每个维度间应用多头自注意力会导致O(D2)的复杂性,对每个时间步i设置固定数量的可学习向量作为路由器,让信息先与中间少量路由器聚合再进行信息传递,减少注意力计算的复杂度。

首先将路由器R作为多头自注意力的query、所有维度的向量Z作为key和value聚合来自所有维度的信息B;然后将维度向量Z作为query、聚合的信息B作为key和value进行聚合,作为路由器在维度之间分发收到的信息。
最终路由器机制将复杂度从O(D2L)降到O(DL)。

两阶段注意力层的最终输出为Y,总计算复杂度为O(DL2+DL)=O(DL2)

分层encoder-decoder
通过DSW嵌入、TSA层以上两个结构,作者加入序列段的合并来构建分层的encoder- decoder。

将Z与可学习的权重矩阵W相乘得到L层第i个分段的预测值,对所有层预测值相加得到最终预测。


表现
Crossformer在大多数数据集以及预测长度上都表现出较好的性能,在58个案例中有36个排名第一,51个排名第二。其次 FEDfrmer 和 MTGNN 的表现也优于许多baseline。

消融实验(DSW、TSA、HED)
(1)DSW嵌入因考虑了跨维度依赖性,在大多数情况下比Transformer原始嵌入方法表现得更好。
(2)TSA两阶段注意力分开考虑了时间和维度,提高了预测精度。
(3)HED在短期预测中降低了精度,而在长期预测中HED包含不同尺度的信息提高了精度。
三者结合效果最佳

超参数调整
(1)分段长度Lseg:对于短期预测(24、48),较小的分段效果越好,预测精度总体较稳定。对于长期预测(168以上),随着分段长度从4到24 MSE下降,即分段长度越长适合长期预测。
(2)路由器个数c:在预测长度336之前,随着c变化MSE较稳定,当预测长度720时,随着c增加MSE趋于下降。选择c=10来平衡预测精度和计算效率。

计算效率分析
Crossformer encoder的复杂度是二次方,但可以使用较大的分段长度Lseg进行长期预测来降低复杂度(化掉分母)。

消融版本随着维度D增大的内存占用:TSA可以明显降低复杂度,没有路由器机制的TSA(w/o Router)也有助于降低复杂度,而路由器机制可以进一步使复杂度线性化,能够处理300维的数据。

总结
(1)在TSA的跨维度阶段,路由器机制建立的连接除了捕获跨维度依赖性外,还给高维数据引入了噪声,因此,利用高维数据的稀疏性来降低噪声,提高TSA层的计算效率是一个很有前途的方向。
(2)Dlinear的作者认为基于transformer的模型难以保持有序信息,因为注意机制是排列不变的,并且注入到模型中的绝对位置嵌入不足以用于时间序列预测,可考虑文本和视觉中的相对位置编码。
(3)用于时间序列预测的数据集比用于文本和视觉的数据集要小得多,并且时间序列数据集中的模式也更简单,可考虑在大型数据集上充分发挥潜力。
相关文章:
2024/4/14周报
文章目录 摘要Abstract文献阅读题目创新点CROSSFORMER架构跨尺度嵌入层(CEL)CROSSFORMER BLOCK长短距离注意(LSDA)动态位置偏置(DPB) 实验 深度学习CrossFormer背景维度分段嵌入(DSW)…...
MySQL 社区版 安装总结
很早就安装过MySQL,没有遇到过什么问题,直接next就行了,这次在新电脑上安装却遇到了一些问题,记录一下。 安装的是MySQL社区版,下载地址是www.mysql.com,进入后选择DOWNLOAD页面,选择MySQL Com…...
二叉排序树的增删改查(java版)
文章目录 1. 基本节点2. 二叉排序树2.1 增加节点2.2 查找(就是遍历)就一起写了吧2.3 广度优先遍历2.4 删除(这个有点意思)2.5 测试样例 最后的删除,目前我测试的是正确的 1. 基本节点 TreeNode: class TreeNode{pri…...
linux下coredump问题的定位分析方法
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 参考:https://blog.csdn.net/m0_73698480/article/details/130077852 最近定位了一段时间linux下的崩溃问题,又收集了一些思路,特整理记录一下。 常见coredump定位方法是:…...
第十届蓝桥杯省赛真题(C/C++大学B组)
目录 试题 A: 组队 试题 B: 年号字串 试题 C: 数列求值 试题 D: 数的分解 试题 E: 迷宫 试题 F: 特别数的和 试题 G:完全二叉树的权值 试题 H:等差数列 试题 I:后缀表达式(不一定对) 试题 J:灵能…...
Scrapy 爬取m3u8视频
Scrapy 爬取m3u8视频 【一】效果展示 爬取ts文件样式 合成的MP4文件 【二】分析m3u8文件路径 视频地址:[在线播放我独自升级 第03集 - 高清资源](https://www.physkan.com/ph/175552-8-3.html) 【1】找到m3u8文件 这里任务目标很明确 就是找m3u8文件 打开浏览器…...
LVGL简单记录
1、 vs中代码旁边有个小锁删除git 2、Visual Studio 试图编译已删除的文件, 如果这个文件也是你不再需要编译的文件,且已经从文件系统中删除,你需要从 .vcxproj 文件中移除或者注释掉这一行,以停止Visual Studio尝试去编译一个不…...
计算机网络——ARP协议
前言 本博客是博主用于复习计算机网络的博客,如果疏忽出现错误,还望各位指正。 这篇博客是在B站掌芝士zzs这个UP主的视频的总结,讲的非常好。 可以先去看一篇视频,再来参考这篇笔记(或者说直接偷走)。 …...
【C++]C/C++的内存管理
这篇博客将会带着大家解决以下几个问题 1. C/C内存分布 2. C语言中动态内存管理方式 3. C中动态内存管理 4. operator new与operator delete函数 5. new和delete的实现原理 6. 定位new表达式(placement-new) 1. C/C内存分布 我们先来看下面的一段代码和相关问题 int global…...
深入理解计算机网络分层结构
一、 为什么要分层? 计算机网络分层的主要目的是将复杂的网络通信过程分解为多个相互独立的层次,每个层次负责特定的功能。这样做有以下几个好处: 模块化设计:每个层次都有清晰定义的功能和接口,使得网络系统更易于设…...
亚马逊云科技CTO带你学习云计算降本增效秘诀
2023亚马逊云科技一年一度的重磅春晚--Re:invent上有诸多不同话题的主题Keynote,这次小李哥带大家复盘来自亚马逊CTO: Wener博士的主题演讲: 云架构节俭之道1️⃣节俭对于云计算为什么重要? ▶️企业基础设施投入大,利用好降本策略可以减少巨…...
快速上手Vue
目录 概念 创建实例 插值表达式 Vue响应式特性 概念 Vue是一个用于 构建用户界面 的 渐进式 框架 构建用户界面:基于数据渲染出用户看到的页面 渐进式:Vue相关生态:声明式渲染<组件系统<客户端路由<大规模状态管理<构建工具 V…...
java 目录整理
Java知识相关目录主要参考黑马程序员 风清扬老师的视屏,参考链接为 Java_黑马刘意(风清扬)2019最新版_Java入门视频_Java入门_Java编程_Java入门教程_黑马教程_黑马程序员_idea版_哔哩哔哩_bilibili 1、java 基础 java基本认识?java跨平台原理?jdk、jre、jvm的联系? 链接:…...
使用Python的Pillow库进行图像处理书法参赛作品
介绍: 在计算机视觉和图像处理领域,Python是一种强大而流行的编程语言。它提供了许多优秀的库和工具,使得图像处理任务变得轻松和高效。本文将介绍如何使用Python的wxPython和Pillow库来选择JPEG图像文件,并对选中的图像进行调整和…...
docker 容器指定utf-8编码
在运行 Docker 容器的时候,如果容器内应用需要使用 UTF-8 编码来正常处理中文,你可以通过设置环境变量来指定编码。 可以使用 -e 或者 --env 标志来设置环境变量。比如,设置 LANG 和 LC_ALL 环境变量为 C.UTF-8 或者 en_US.UTF-8:…...
单例模式以及常见的两种实现模式
单例模式是校招中最常考的设计模式之一. 设计模式其实就是类似于“规章制度”,按照这个套路来进行操作。 单例模式能保证某个类在程序中只存在唯一 一份实例。而不会创建出多个实例,如果创建出了多个实例,就会编译报错。而不会创建出多个实…...
Java hashCode() 和 equals()的若干问题解答
Java hashCode() 和 equals()的若干问题解答 本章的内容主要解决下面几个问题: 1 equals() 的作用是什么? 2 equals() 与 的区别是什么? 3 hashCode() 的作用是什么? 4 hashCode() 和 equals() 之间有什么联系? …...
高级IO——React服务器简单实现
3.4Reactor服务器实现 1.connect封装 每一个连接都要有一个文件描述符和输入输出缓冲区,还有读、写、异常处理的回调方法; 还包括指向服务器的回指指针; class connection; class tcpserver;using func_t std::function<void(s…...
Qt使用插件QPluginLoader 机制开发
简介: 插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。 Qt 提供了2种APIs来创建插件: 一种高级API,用于为Qt本身编写插件:自定义数据库驱动程序,图像格…...
双子座 Gemini1.5和谷歌的本质
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
