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

本文主要是介绍[全连接神经网络]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不断减少)

这篇关于[全连接神经网络]Transformer代餐,用MLP构建图像处理网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626406

相关文章

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(