MedicalTransformer论文解读

news2024/11/24 1:16:19

论文是一个分割任务,但这里的方法不局限于分割,运用到检测、分类都可以。

论文下载

https://www.yuque.com/yuqueyonghupjh9oc/ovceh4/onilw42ux6e9n1ne?singleDoc# 《轴注意力机制》

一个问题

为什么transformer一开始都有CNN:降低H、W,降低self-attention计算规模O(特征点的个数^2,即(H*W)^2)

Stand-Alone Self-Attention 就是不通过CNN下采样,直接使用transformer,但是这样计算量会比较大,如何解决这个问题

摘要

Convolution exploits locality for efficiency at a cost of missing long range context.
卷积时感受野(卷积核)不能太大,要不效率太慢

Self-attention has been adopted to augment CNNs with non-local interactions.
自注意力机制一开始就有全局的视野

创新点1:

In this paper, we attempt to remove this constraint by factorizing 2D self-attention into two 1D self attentions.

这篇文章的核心思想就是:将图2D的self-attention转换成1D规模来增加效率

1Dself-attention:只在一维上的点进行自注意力机制,运算规模O(length^2)

2D的self-attention在二维上的点进行自注意力机制,运算规模O((H*W)^2)

创新点2:

In companion, we also propose a position-sensitive self-attention design.
由于transformer对位置编码不敏感,这里提出一个对位置编码设计

(之后咱们的论文都可以加上这一点,大概率不会比原来差)

介绍

However, it makes modeling long range relations challenging
卷积的感受野是由不断的卷积堆叠起来,对于浅层是具备很小的感受野

Recently, stacking attention layers as stand-alone models without any spatial convolution has been proposed and shown promising results
不使用卷积,不断堆叠transformer层级也能有不错的结果

However, naive attention is computationally expensive, especially on large inputs.
然而,单纯的attention非常吃数据(其实并且对数据也敏感,这是transformer最大的两个问题)

轴注意力机制

In this work, we propose to adopt axial-attention, which not only allows efficient computation, but recovers the large receptive field in stand-alone attention models.
推出一个轴注意力机制,不仅效率高,而且感受野比较大(作者认为感受野还是保存一致了)
In this work, we propose to adopt axial-attention, which not only allows efficient computation, but recovers the large receptive field in stand-alone attention models. The core idea is to factorize 2D attention into two 1D attentions along height- and width-axis sequentially.
在本篇文章中,推出一个轴向注意力机制,他不同于之前的一些降低运算规模(如:swin transformer 为了降低self-attention的计算量,他将h*w的矩形分成几个矩阵(如:4个h/2*w/2)来各自进行self attention,但这样就失去了transformer天生就拥有全局感受野的特点)

这里的意思应该是:一个点与他同行的所有的点做self-attention,之后再跟他同列的所有的点做self-attention,

这样也保持了比较大的全局感受野

举个栗子:对一张图256*256,之前论文是一个点的运算规模256*256,而现在是256(行方向上)+256(列方向上)

我自己的一些想法(关于为什么感受野保持不变,不保真):

点3可以通过这种方式来接收到点1的特征:

1:点2通过行方向的轴注意力机制,获取到了点1的特征,因此点2里面包含了点1的特征:

2:点3通过列方向的轴注意力机制,获取到了点2的特征,而点2包含了点1的特征,因此点3可以获取到点1的特征

这类似于图的神经网络,通过不断的传递,一个点能够获得其他所有点的特征。

对于transformer的论文,一般都在这两个方向设计:

self-attention如何设计、位置编码如何设计

方法

原来transformer的不足

However, self-attention is extremely expensive to compute (O(h^2*w^2)) when the spatial dimension of the input is large, restricting its use to only high levels of a CNN (i.e., downsampled feature maps) or small images. Another drawback is that the global pooling does not exploit positional information, which is critical to capture spatial structures or shapes in vision tasks.
一方面,self-attention的计算规模是O(h^2*w^2);另外一方面,加入了池化之后位置信息也变得不敏感了

结构设计

位置编码

想解决的问题

以前的位置编码并没有考虑到某个向量的重要性,比如说在NLP中,说一句:我今天想吃饺子;此时我想强调“吃”这个词,但是位置编码(包括正余弦编码)是无差别的对待该句话的每个词的;

下面引入可学习的位置编码,使得位置能够对每个Q/K差异化对待

原来的self-attention

现在的self-attention

仅Q加上位置编码

Q、K、V都加上位置编码

rq为作用在Q上可学习的位置编码,rk为作用在K上可学习的位置编码

对应流程图

对该部分流程解释一下:这里应该是

分别与rv和Wv

做矩阵乘法之后,得到

乘上

以及

乘上

,之后再把两者作加法

 

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

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

相关文章

【李肯C语言小册.必读】为什么有这份专栏?解决什么问题?有哪些价值?是否值得订阅?

文末有惊喜...... 一、李肯的自我介绍 【昵称】架构师李肯 【坐标】深圳 【职业】主业中厂物联网架构师,副业技术自媒体 【个人标签】 专注于嵌入式物联网超10年的系统架构师 国产操作系统RT-Thread技术社区专家、2022年度优秀布道师 CSDN深圳城市开发者社区主…

基于Java+Servlet+Mysql的人才招聘网站的设计与实现(附源码 调试 文档)

基于Servlet人才招聘网站的设计与实现 一、引言二、国内外研究现状三、系统需求分析四、系统设计五、系统实现六、系统测试与评估七、结论与展望八、界面展示九、源码获取 摘要 本文介绍了一种基于Servlet人才招聘网站的设计与实现。该系统分为管理员、注册用户和企业用户三种角…

企业怎么在社交媒体进行软文推广?媒介盒子为你支招

数字化时代下,社交媒体已经成为企业进行营销推广的重要渠道,在社交媒体进行软文推广,能够提高企业的知名度与曝光度,还能更好地吸引用户关注,从而实现推广目标。但是想要在社交媒体上进行宣传,软文内容是十…

CS 2520nonono

CS 2520nonono WeChat:yj4399_​​​​​ Sina Visitor System High-level●3 Congestion Control Algorithms:○TCP Reno:■additive increase, multiplicative decrease function to adjust window size for every RTTuntil a packet loss is detected○TCP CUBI…

rabbitmq消息队列实验

实验目的:实现异步通信 实验条件: 主机名 IP地址 组件 test1 20.0.0.10 rabbitmq服务 test2 20.0.0.20 rabbitmq服务 test3 20.0.0.30 rabbitmq服务 实验步骤: 1、安装rabbitmq服务 2、erlang进入命令行,查看版本 …

ArkTS-日期滑动选择器弹窗

日期滑动选择器弹窗 根据指定的日期范围创建日期滑动选择器,展示在弹窗上。 示例 lunar: 接受一个boolean值,日期是否显示为农历。 Entry Component struct DatePickerDialogExample {selectedDate: Date new Date("2010-1-1")Sta…

算法通关村第六关—序列恢复二叉树(青铜)

根据序列恢复二叉树 示例 给定序列恢复二叉树(1)前序:1 2 3 4 5 6 8 7 9 10 11 12 13 15 14(2)中序:3 4 8 6 7 5 2 1 10 9 11 15 13 14 123)后序:8 7 6 5 4 3 2 10 15 14 13 12 11 9 1 一、前中序列恢复二叉树 (1)前序:1 2 3…

python 交互模式和命令行模式的问题

python 模式的冲突 unexpected character after line continuation character 理论上 ide里,输入 python 文件路径\文件.py 就可以执行 但是有时候却报错 unexpected character after line continuation character 出现上述错误的原因是没有退出解释器&#x…

Echarts 大屏注册自定义地图解析文件流报错以及坐标显示数值和地图填充以及dataV轮播数据不显示问题解决

效果图: 1、第一种方式 后台接口获取到SVG图片的文件流,postman能够正确解析出文件流,前端调用api时需要设置返回的响应格式为image/svg+xml格式,否则解析失败 拿到文件流后是这样的 <?xml version="1.0" encoding="utf-8"?> <!-- Generato…

记录 | onnx-simplifier安装、使用

安装&#xff1a; pip install onnx-simplifier# 若想加速 # [可选] 使用豆瓣源加速 pip install -i https://pypi.douban.com/simple onnx-simplifier# [可选] 使用阿里源加速 pip install -i http://mirrors.aliyun.com/pypi/simple onnx-simplifier使用&#xff1a; pytho…

俄罗斯方块小游戏开发

代码图&#xff1a; import pygame, randompygame.init()# 游戏界面参数 width 300 height 600 surface pygame.display.set_mode((width, height))# 颜色定义 black (0, 0, 0) white (255, 255, 255) red (200, 0, 0) green (0, 200, 0) blue (0, 0, 200)# 俄罗斯方块…

iview弹窗提交问题优化

如上图所示 有时候在弹窗中 有比较复杂的表格组件数据 这时候 你如果把提交按钮直接放在弹窗上 就会很麻烦 不仅要处理表格的验证 同时也要维护弹窗的开启和关闭状态 不是很自由 这时候 就看见把提交按钮单独摘出来 可以在自建的按钮上 判断各种状态 是不是很方便呢

Navicat连接Oracle数据库记录

oracle服务如图&#xff1a; navicat连接设置&#xff1a; 测试连接成功&#xff01; 连接创建成功&#xff01;

dubbo发送接收

consumer 主要使用ThreadlessExecutor实现全consumer的全双工通讯。consumer创建本次请求的requestId用于将response和request匹配。 然后分以下几步完成一次请求发送并接收结果&#xff1a; 槽&#xff1a;发送消息前将用于接收结果的executor放到一个map中存储 发送消息&…

三季度利空出尽,金山软件即将“破茧”?

引言&#xff1a;近日&#xff0c;金山软件&#xff08;以下简称为“金山”&#xff09;披露了2023Q3 季报&#xff0c;AI业绩首次兑现如约而至&#xff0c;而伴随着全球AI商业化进程加速&#xff0c;作为国产办公软件领军企业的金山软件是否也迎来了新的盈利风口期&#xff1f…

论文学习-Bert 和GPT 有什么区别?

Foundation Models, Transformers, BERT and GPT 总结一下&#xff1a; Bert 是学习向量表征&#xff0c;让句子中某个词的Embedding关联到句子中其他重要词。最终学习下来&#xff0c;就是词向量的表征。这也是为什么Bert很容易用到下游任务&#xff0c;在做下游任务的时候&a…

Windows核心编程 HOOK

目录 HOOK概述 HOOK API SetWindowsHookExA 函数(winuser.h) UnhookWindowsHookEx 函数(winuser.h) NextHookEx 函数(winuser.h) 局部钩子 全局钩子 为什么全局钩子需要用dll作为过程函数&#xff1f; HOOK概述 本质&#xff1a;Windows消系统的消息过滤器。 全局钩子…

如何提高3D建模技能?

无论是制作影视动画还是视频游戏&#xff0c;提高3D建模技能对于你的工作都至关重要的。那么如何能创建出精美的3D模型呢&#xff1f;本文给大家一些3D建模技能方面的建议。 3D建模通过专门的软件完成&#xff0c;涉及制作三维对象。这项技能在视频游戏开发、建筑、动画和产品…

电商物流信息查询难?一招解决

在当今的电商时代&#xff0c;物流信息查询一直是电商行业的痛点。很多电商商家在处理大量快递订单时&#xff0c;经常需要手动一个个查询快递信息&#xff0c;不仅耗时而且耗力。为了解决这个问题&#xff0c;我们可以使用固乔快递查询助手&#xff0c;它可以帮助我们快速批量…

redis单机版本安装

redis单机版本安装 1.redis单机版源码编译安装搭建(4.0示例) redis下载地址 https://redis.io/download redis源码编译 #!/bin/sh yum install -y wget gcc gcc-c make tar openssl openssl-devel cmakecd /usr/local/src wget http://download.redis.io/releases/redis-4…