论文信息
题目:ConvFormer: Plug-and-Play CNN-Style Transformers for Improving Medical Image Segmentation
ConvFormer:插拔式CNN风格Transformer用于提升医学图像分割性能
源码链接:https://github.com/xianlin7/ConvFormer
论文创新点
-
提出了CNN风格的Transformer(ConvFormer):作者提出了一种新的Transformer架构,称为ConvFormer,通过结合CNN和Transformer的优点,解决了Transformer在医学图像分割中的注意力崩溃问题。
-
引入了CNN风格自注意力(CSA)模块:ConvFormer中的CSA模块通过构建自适应大小的卷积核的自注意力矩阵来建立长程依赖,从而提高了注意力的多样性和收敛性。
-
采用了卷积前馈网络(CFFN):CFFN模块通过连续卷积精炼每个像素的特征,替代了传统Transformer中的线性投影和层归一化,使ConvFormer完全基于卷积,避免了训练过程中CNN和Transformer之间的冲突。
-
实现了插拔式模块设计:ConvFormer作为一个插拔式模块,可以无缝替代现有基于Transformer的框架中的传统Transformer块,显著提升了多个数据集上的分割性能。
摘要
Transformer在医学图像分割中被广泛研究以构建成对的长程依赖。然而,相对有限的标注医学图像数据使得Transformer难以提取多样的全局特征,导致注意力崩溃,即注意力图变得相似甚至相同。相比之下,卷积神经网络(CNN)在小规模训练数据上具有更好的收敛性,但受限于感受野。现有工作致力于探索CNN和Transformer的结合,却忽略了注意力崩溃,未能充分挖掘Transformer的潜力。本文提出构建CNN风格的Transformer(ConvFormer),以促进更好的注意力收敛,从而提升分割性能。具体而言,ConvFormer包括池化、CNN风格自注意力(CSA)和卷积前馈网络(CFFN),分别对应于传统视觉Transformer中的标记化、自注意力和前馈网络。与位置嵌入和标记化不同,ConvFormer采用二维卷积和最大池化来保留位置信息并减少特征尺寸。通过这种方式,CSA将二维特征图作为输入,通过构建自适应大小的卷积核的自注意力矩阵来建立长程依赖。随后,CFFN通过二维卷积进行特征精炼。多项数据集上的实验结果表明,ConvFormer作为插拔式模块能够一致地提升基于Transformer的框架的性能。
关键字
CNN风格Transformer · 注意力崩溃 · 自适应自注意力 · 医学图像分割
方法
视觉Transformer(ViT)和ConvFormer之间的比较如图2所示。最大的区别在于ConvFormer在二维输入上进行,而ViT应用于一维序列。具体而言,池化模块用于替代ViT中的标记化,能够在不需要额外位置嵌入的情况下很好地保留局部性和位置信息。CNN风格自注意力(CSA)模块,即ConvFormer的核心,被开发用于替代ViT中的自注意力(SA)模块,通过构建自适应和可扩展的卷积核的自注意力矩阵来建立长程依赖。卷积前馈网络(CFFN)用于精炼每个像素的特征,对应于ViT中的前馈网络(FFN)。没有采用上采样过程将ConvFormer的输出调整回输入大小,因为池化模块可以通过调整最大池化次数来匹配输出大小。需要注意的是,ConvFormer基于卷积实现,消除了训练过程中CNN和Transformer之间的张力。ConvFormer的每个模块描述如下。
池化与标记化
池化模块用于实现标记化的功能(即使输入在通道维度上适合Transformer,并在需要时调整和减少输入大小),同时不丢失标记化中的网格线细节。对于输入,首先应用核大小为的卷积,随后是批归一化和Relu,以捕获局部特征。然后,针对ViT中的每个补丁大小,在池化模块中应用总共次下采样操作以生成相同的分辨率。这里,每次下采样操作包括一个核大小为的最大池化和一个卷积、批归一化和Relu的组合。最终,通过池化模块变为,其中对应于ViT中的嵌入维度。
CNN风格与序列化自注意力
ConvFormer中的长程依赖构建依赖于CNN风格自注意力,通过构建自定义卷积核为每个像素创建自适应感受野。具体而言,对于的每个像素,卷积核基于两个中间变量构建:
其中和是可学习的投影矩阵,对应于ViT中的、和的嵌入维度,将邻域中的相邻像素特征整合到中。然后,通过计算余弦相似度计算初始自定义卷积核。这里,,且很少出现。对应于ViT中的注意力得分计算(被限制为正值,而可以是正值或负值)。然后,作者通过引入可学习的高斯距离图动态确定的自定义卷积核的大小:
其中是控制的感受野的可学习网络参数,是控制感受野趋势的超参数。与感受野成正比。例如,在典型设置,,下,当时,感受野仅覆盖五个相邻像素,当时,感受野为全局。越大,越可能具有全局感受野。基于和,通过计算得到。通过将与相乘,CSA可以构建自适应的长程依赖,其中可以根据公式(1)类似地进行公式化。最后,结合卷积、批归一化和Relu来整合从长程依赖中学习到的特征。
卷积与传统前馈网络
卷积前馈网络(CFFN)用于精炼CSA生成的特征,仅由两个卷积、批归一化和Relu的组合组成。通过替代ViT中的线性投影和层归一化,CFFN使ConvFormer完全基于卷积,避免了像CNN-Transformer混合方法那样在训练过程中CNN和Transformer之间的冲突。
实验
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。