• Transformer发展历程 Decoder输出特征利用DCT解码投分割


    一、Transformer

    1. 起源

    Transformer由NLP发家,用于NLP任务。

    2. 动机

    自适应地发掘长短关联。

    3. 关联方式

    自注意力/编码解码注意力。

    4. 技巧

    位置编码(Position Encoding)。
    在这里插入图片描述

    5. 自注意力机制

    在这里插入图片描述
    首先需要明白QKV分别是个啥。对于输入的每一个单词都生成三个vector,分别是query,key和value。这三个vector如何生成?将embedding层输出的向量分别输入三个神经网络,三个神经网络输出的向量就是query,key和value. 这三个神经网络是随着其它部分一起端到端训练的。因此自注意力倾向于一种affinity。
    在这里插入图片描述
    规定了输出,隐含地监督了网络的注意力部分让一个类别的部分去亲和为同样的输出。也就是每个pixel的Softmax(权重)*V尽量一致,Softmax(权重)来自QK,此时就进一步隐含让Q K使同类像素更亲和/一致。
    在这里插入图片描述
    但是,QKV是通过什么得到的呢?实际上,编码器Encoder提供KV,解码器Decoder提供K,如下图所示👇:

    在这里插入图片描述

    二、Vision Transformer(ViT)

    1. 动机

    上文我们说过,transformer起源于NLP,科学家们就开始思考,transformer这么好用,能不能用在CV领域呢?由于reansformer需要的输入是序列,因此,我们需要解决的是,将输入为图片转变成输入为序列。
    在这里插入图片描述
    如上图所示,将图片切分成若干块进行顺序编码,以序列的形式输入,每个小块flatten成1*n的形状,将输入转换为序列的形式。

    2. 解决任务

    分类/backbone

    三、Swin Transformer

    1. 解决任务

    分类/backbone

    2. 动机

    图像分辨率高,像素点多,Transformer基于全局自注意力的计算导致计算量较大
    在这里插入图片描述
    整个模型采取层次化的设计,一共包含4个Stage,每个stage都会缩小输入特征图的分辨率,像CNN一样逐层扩大感受野。如下图所示👇:
    在这里插入图片描述
    核心:多次重叠局部交互可以实现全局信息处理

    3. 方法

    多次重叠局部交互可以实现全局信息处理,普通的transformer将每个向量与其他全部向量做相似度运算,当图片过大时计算量很大,这显然是不合适的。因此SWIN Transformer对此进行了改进,每次不是和全部的向量进行运算,而是和相邻m个进行运算,这样可以大大减少计算量而且逐渐可以获取到全局的感受野。

    四、CSWIN Transformer

    1. 解决任务

    分类/backbone

    2. 动机

    计算量大,model capbility差

    3. 解决方案

    改变模型注意力区域的形状(有点像Axial-Attention)
    在这里插入图片描述
    在这里插入图片描述

    五、DETR

    1. 解决任务

    目标检测

    2. 动机

    传统的CNN目标检测使用anchor的方式,抛出预测结果。主要依赖于NMS(非极大值抑制)后处理得到最终检测结果。NMS非常耗时

    3. 解决方案

    动态输出集与真值集进行 二分图最小权匹配
    在这里插入图片描述

    六、Deformable DETR

    1. 解决任务

    目标检测

    2. 动机

    DETR训练慢,因为Self-Attention无法有效捕获空间信息

    3. 方法

    使用逐层优化过程,利用可变形卷积代替子注意力机制
    在这里插入图片描述

    七、UP-DETR

    1. 解决任务

    目标检测

    2. 动机

    DETR训练速度较慢(Decoder的问题)

    3. 解决方案

    自监督、预训练
    在这里插入图片描述

    八、MaskFormer

    1. 解决任务

    语义分割

    2. 动机

    transformer卷积输出可作为动态核、加解码head用于分割

    3. 解决方案

    Decoder输出特征embedding后与特征图进行卷积
    在这里插入图片描述

  • 相关阅读:
    Qt判断一个点在多边形内还是外(支持凸边形和凹变形)
    gitlab-ce-12.3.5 挖矿病毒及解决方案
    工业路由器网关的网络协议之NAT技术
    基于C语言的词法分析实验
    LeetCode刷题(11)
    图解 Spring 解决循环依赖,学不会接着砍!
    spring authorization server授权中心
    通过PyTorch构建的LeNet-5网络对手写数字进行训练和识别
    点云从入门到精通技术详解100篇-基于激光雷达点云的路面破损检测
    设计模式-装饰器模式
  • 原文地址:https://blog.csdn.net/m0_51339444/article/details/127108281