[全连接神经网络]Transformer代餐,用MLP构建图像处理网络

一、MLP-Mixer

使用纯MLP处理图像信息,其原理类似vit,将图片进行分块(patch)后展平(fallten),然后输入到MLP中。理论上MLP等价于1x1卷积,但实际上1x1卷积仅能结合通道信息而不能结合空间信息。根据结合的信息不同分为channel-mixing MLPs和token-mixing MLPs。

总体结构如下图,基本上可以视为以mlp实现的vit。

二、RepMLP

传统卷积仅能处理局部领域信息,不具备捕获长程依赖的能力,其特性被称为归纳偏置 (inductive bias)或局部先验性质 (local prior)。而Transformer虽然可以使用自注意力捕获长程依赖,却无法有效获取局部先验信息。全连接(FC)结构与Transformer类似,可以捕获长程依赖(每个输入和输出都有连接)但是缺乏局部先验性质。而RepVGG则是通过将MLP和CNN的优点结合在一起实现高质量的特征提取。其核心是结构重参数技术(structural reparameterization technique)。

训练时的RepMLP与预测时截然不同。训练时,每一层都会添加平行的卷积+BN分支,而预测时会将卷积分支等效为MLP分支。

训练阶段由三部分组成:Global Perceptron、Partition Perceptron、Local Perceptron。其中Global Perceptron相当于vit中的patch-embed,通过将特征图分成7x7的小块来节省运算开销。但是这种切割会让每个patch失去位置信息,所以使用两个FC为patch添加位置信息;其操作如下:①使用avgpool将每个分区池化得到一个像素;②送入带一个BN的两层MLP中;将结果reshape后与原特征图相加,流程如下:

Partition Perceptron层包含FC和BN,由Global Perceptron切割后的特征图还会经过一组1x1的组卷积进一步降低参数量,然后由FC3进行处理后最终得到输出特征图。

Local Perceptron类似一个ASPP空洞卷积组,可以丰富特征图的空间信息,得到的结果与Partition Perceptron的特征图相加即可得到完整的输出。其结构如下:

三、ResMLP

ResMLP仅使用Linear Layers和GELU,不适用任何正则化层(Batch Norm)和自注意力(self-attention)。每个Block由sublayer+feedforward sublayer组成。

Sublayer由线性层和残差链接组成,即上图左边的部分;而feedforward sublayer则是上图右边的部分,由两个线性层和残差链接组成,中间使用GELU作为激活。其可以描述为下面公式:

其中sublayer中包含两次转置操作,其原因是要将channel维度换道最后一维以进行融合,融合过后再换回来。

ResMLP Block分为两种形式(一种全尺寸和一种轻量化结构),结构如图,全尺寸ResMLP效果略好于ResNet,轻量化Block效果持平ResNet。

四、gMLP

gMLP的g代表gating(闸门),论文提出在视觉领域自注意力机制并不是那么重要,gMLP的性能可以与基于Transformer的DeiT模型相当。gMLP的Block结构如下图所示:

gMLP为同向网络(具有相同结构),就其模块结构而言,Channel Projection可以获取通道信息,Spatial Gating Unit可以获取空间信息。

五、CycleMLP

CycleMLP的特点是构建基于密集预测的MLP架构。传统的诸如MLP-Mixer,ResMLP,gMLP存在一些问题:①均为同向性网络,不会产生金字塔结构,也不会产生多尺度特征图;②spatial FC的计算复杂度与尺寸呈平方关系,难以训练高分图。

如上图所示,Cycle FC层类似于Spatial FC,且棋遵循金字塔结构(即随着层数的加深,特征分辨率逐渐减少,也就是token不断减少)

相关推荐
hao_wujing6 分钟前
YOLOv8在单目向下多车辆目标检测中的应用
人工智能·yolo·目标检测
王学政215 分钟前
LlamaIndex 第九篇 Indexing索引
人工智能·python
白熊1881 小时前
【计算机视觉】OpenCV实战项目:基于OpenCV的车牌识别系统深度解析
人工智能·opencv·计算机视觉
IT古董2 小时前
【漫话机器学习系列】261.工具变量(Instrumental Variables)
人工智能·机器学习
小王格子2 小时前
AI 编程革命:腾讯云 CodeBuddy 如何重塑开发效率?
人工智能·云计算·腾讯云·codebuddy·craft
MonkeyKing_sunyuhua2 小时前
VSCode + Cline AI辅助编程完全指南
ide·人工智能·vscode
Leinwin2 小时前
Microsoft Azure 服务4月更新告示
人工智能·azure
胡耀超2 小时前
霍夫圆变换全面解析(OpenCV)
人工智能·python·opencv·算法·计算机视觉·数据挖掘·数据安全
jndingxin2 小时前
OpenCV CUDA 模块中用于在 GPU 上计算两个数组对应元素差值的绝对值函数absdiff(
人工智能·opencv·计算机视觉