昇思25天学习打卡营第35天|计算机视觉-Vision Transformer图像分类

昇思25天学习打卡营第35天|计算机视觉-Vision Transformer图像分类

Vision Transformer(ViT)简介

  1. ViT则是自然语言处理和计算机视觉两个领域的融合结晶。在不依赖卷积操作的情况下,依然可以在图像分类任务上达到很好的效果。
  2. 主体结构是基于Transformer模型的Encoder部分

ViT图像分类流程

  1. 数据集的原图像被划分为多个patch(图像块)后,将二维patch(不考虑channel)转换为一维向量,再加上类别向量与位置向量作为模型输入。
  2. 模型主体的Block结构是基于Transformer的Encoder结构,但是调整了Normalization的位置,其中,最主要的结构依然是Multi-head Attention结构
  3. 模型在Blocks堆叠后接全连接层,接受类别向量的输出作为输入并用于分类。通常情况下,我们将最后的全连接层称为Head,Transformer Encoder部分为backbone。

多头注意力(Multi-Head Attention)层

该结构基于自注意力(Self-Attention)机制,是多个Self-Attention的并行组成。

Self-Attention:对于序列中的每一个位置,其它所有位置的表示对它的贡献是不同的,这些贡献通过一个注意力分数来衡量

  1. 线性变换 :将输入矩阵 X通过三个不同的线性变换得到查询 (Query)、键 (Key) 和值 (Value) 向量
  2. 计算注意力分数:注意力分数通过查询向量和键向量的点积来计算,表示第 i个位置与第 j个位置的相关性。

加权求和:最终的输出是值向量 V 的加权求和,权重是注意力分数。

Multi-Head Attention:为了进一步提升模型的表达能力,会将Self-Attention扩展成Multi-Head Attention通过多个独立的注意力头来计算多个不同的注意力分布,然后将这些分布拼接起来,再通过一个线性变换得到最终的输出。

总结来说,多头注意力机制在保持参数总量不变的情况下,将同样的query, key和value映射到原来的高维空间(Q,K,V)的不同子空间(Q_0,K_0,V_0)中进行自注意力的计算,最后再合并不同子空间中的注意力信息。

前馈神经网络层(Feed Forward Network)

FFN 通常由两个全连接层和一个非线性激活函数组成,提供非线性变换,增加模型的参数量。

残差链接(Residual Connection)

它的主要思想是为每一层的输出添加一个快捷连接 (shortcut connection),将输入直接传递到输出,减少了深层网络中常见的梯度爆炸和梯度消失现象。

多层感知机(Multilayer Perceptron)

最后一个 Transformer 块的输出经过 MLP 进行分类。

相关推荐
格林威20 分钟前
工业视觉项目:如何与客户有效沟通验收标准?
人工智能·数码相机·计算机视觉·视觉检测·机器视觉·工业相机·视觉项目
sakiko_35 分钟前
UIKit学习笔记5-使用UITableView制作聊天页面
笔记·学习·swift·uikit
Alice-YUE1 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
西西弗Sisyphus2 小时前
从零实现Transformer:第 4 部分 - 残差连接、层归一化与前馈网络(Add & Norm, Feed-Forward)
resnet·transformer·attention·注意力机制·注意力
冰西瓜6002 小时前
深度学习的数学原理(三十三)—— Transformer编码器完整实现
人工智能·深度学习·transformer
北山有鸟2 小时前
修改源码法和插件法
嵌入式硬件·学习
richxu202510012 小时前
嵌入式学习之路->stm32篇->(14)通用定时器(上)
stm32·单片机·嵌入式硬件·学习
qeen873 小时前
【数据结构】建堆的时间复杂度讨论与TOP-K问题
c语言·数据结构·c++·学习·
lizhihai_993 小时前
股市学习心得-六张分时保命图
大数据·人工智能·学习
nashane4 小时前
HarmonyOS 6学习:应用签名文件丢失处理与更新完全指南
学习·华为·harmonyos·harmonyos 5