当前位置: 首页 > news >正文

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架构跨尺度嵌入层&#xff08;CEL&#xff09;CROSSFORMER BLOCK长短距离注意&#xff08;LSDA&#xff09;动态位置偏置&#xff08;DPB&#xff09; 实验 深度学习CrossFormer背景维度分段嵌入&#xff08;DSW&#xff09…...

MySQL 社区版 安装总结

很早就安装过MySQL&#xff0c;没有遇到过什么问题&#xff0c;直接next就行了&#xff0c;这次在新电脑上安装却遇到了一些问题&#xff0c;记录一下。 安装的是MySQL社区版&#xff0c;下载地址是www.mysql.com&#xff0c;进入后选择DOWNLOAD页面&#xff0c;选择MySQL Com…...

二叉排序树的增删改查(java版)

文章目录 1. 基本节点2. 二叉排序树2.1 增加节点2.2 查找&#xff08;就是遍历&#xff09;就一起写了吧2.3 广度优先遍历2.4 删除&#xff08;这个有点意思&#xff09;2.5 测试样例 最后的删除&#xff0c;目前我测试的是正确的 1. 基本节点 TreeNode: class TreeNode{pri…...

linux下coredump问题的定位分析方法

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 参考&#xff1a;https://blog.csdn.net/m0_73698480/article/details/130077852 最近定位了一段时间linux下的崩溃问题&#xff0c;又收集了一些思路&#xff0c;特整理记录一下。 常见coredump定位方法是&#xff1a…...

第十届蓝桥杯省赛真题(C/C++大学B组)

目录 试题 A: 组队 试题 B: 年号字串 试题 C: 数列求值 试题 D: 数的分解 试题 E: 迷宫 试题 F: 特别数的和 试题 G&#xff1a;完全二叉树的权值 试题 H&#xff1a;等差数列 试题 I&#xff1a;后缀表达式&#xff08;不一定对&#xff09; 试题 J&#xff1a;灵能…...

Scrapy 爬取m3u8视频

Scrapy 爬取m3u8视频 【一】效果展示 爬取ts文件样式 合成的MP4文件 【二】分析m3u8文件路径 视频地址&#xff1a;[在线播放我独自升级 第03集 - 高清资源](https://www.physkan.com/ph/175552-8-3.html) 【1】找到m3u8文件 这里任务目标很明确 就是找m3u8文件 打开浏览器…...

LVGL简单记录

1、 vs中代码旁边有个小锁删除git 2、Visual Studio 试图编译已删除的文件&#xff0c; 如果这个文件也是你不再需要编译的文件&#xff0c;且已经从文件系统中删除&#xff0c;你需要从 .vcxproj 文件中移除或者注释掉这一行&#xff0c;以停止Visual Studio尝试去编译一个不…...

计算机网络——ARP协议

前言 本博客是博主用于复习计算机网络的博客&#xff0c;如果疏忽出现错误&#xff0c;还望各位指正。 这篇博客是在B站掌芝士zzs这个UP主的视频的总结&#xff0c;讲的非常好。 可以先去看一篇视频&#xff0c;再来参考这篇笔记&#xff08;或者说直接偷走&#xff09;。 …...

【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…...

深入理解计算机网络分层结构

一、 为什么要分层&#xff1f; 计算机网络分层的主要目的是将复杂的网络通信过程分解为多个相互独立的层次&#xff0c;每个层次负责特定的功能。这样做有以下几个好处&#xff1a; 模块化设计&#xff1a;每个层次都有清晰定义的功能和接口&#xff0c;使得网络系统更易于设…...

亚马逊云科技CTO带你学习云计算降本增效秘诀

2023亚马逊云科技一年一度的重磅春晚--Re:invent上有诸多不同话题的主题Keynote&#xff0c;这次小李哥带大家复盘来自亚马逊CTO: Wener博士的主题演讲: 云架构节俭之道1️⃣节俭对于云计算为什么重要&#xff1f; ▶️企业基础设施投入大&#xff0c;利用好降本策略可以减少巨…...

快速上手Vue

目录 概念 创建实例 插值表达式 Vue响应式特性 概念 Vue是一个用于 构建用户界面 的 渐进式 框架 构建用户界面&#xff1a;基于数据渲染出用户看到的页面 渐进式&#xff1a;Vue相关生态&#xff1a;声明式渲染<组件系统<客户端路由<大规模状态管理<构建工具 V…...

java 目录整理

Java知识相关目录主要参考黑马程序员 风清扬老师的视屏,参考链接为 Java_黑马刘意(风清扬)2019最新版_Java入门视频_Java入门_Java编程_Java入门教程_黑马教程_黑马程序员_idea版_哔哩哔哩_bilibili 1、java 基础 java基本认识?java跨平台原理?jdk、jre、jvm的联系? 链接:…...

使用Python的Pillow库进行图像处理书法参赛作品

介绍&#xff1a; 在计算机视觉和图像处理领域&#xff0c;Python是一种强大而流行的编程语言。它提供了许多优秀的库和工具&#xff0c;使得图像处理任务变得轻松和高效。本文将介绍如何使用Python的wxPython和Pillow库来选择JPEG图像文件&#xff0c;并对选中的图像进行调整和…...

docker 容器指定utf-8编码

在运行 Docker 容器的时候&#xff0c;如果容器内应用需要使用 UTF-8 编码来正常处理中文&#xff0c;你可以通过设置环境变量来指定编码。 可以使用 -e 或者 --env 标志来设置环境变量。比如&#xff0c;设置 LANG 和 LC_ALL 环境变量为 C.UTF-8 或者 en_US.UTF-8&#xff1a…...

单例模式以及常见的两种实现模式

单例模式是校招中最常考的设计模式之一. 设计模式其实就是类似于“规章制度”&#xff0c;按照这个套路来进行操作。 单例模式能保证某个类在程序中只存在唯一 一份实例。而不会创建出多个实例&#xff0c;如果创建出了多个实例&#xff0c;就会编译报错。而不会创建出多个实…...

Java hashCode() 和 equals()的若干问题解答

Java hashCode() 和 equals()的若干问题解答 本章的内容主要解决下面几个问题&#xff1a; 1 equals() 的作用是什么&#xff1f; 2 equals() 与 的区别是什么&#xff1f; 3 hashCode() 的作用是什么&#xff1f; 4 hashCode() 和 equals() 之间有什么联系&#xff1f; …...

高级IO——React服务器简单实现

3.4Reactor服务器实现 1.connect封装 ​ 每一个连接都要有一个文件描述符和输入输出缓冲区&#xff0c;还有读、写、异常处理的回调方法&#xff1b; ​ 还包括指向服务器的回指指针&#xff1b; class connection; class tcpserver;using func_t std::function<void(s…...

Qt使用插件QPluginLoader 机制开发

简介&#xff1a; 插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。 Qt 提供了2种APIs来创建插件&#xff1a; 一种高级API&#xff0c;用于为Qt本身编写插件&#xff1a;自定义数据库驱动程序&#xff0c;图像格…...

双子座 Gemini1.5和谷歌的本质

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...