昇思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 进行分类。

相关推荐
red_redemption23 分钟前
自由学习记录(118)
学习
小猪佩奇TONY1 小时前
OpenCL 学习(5)---- OpenCL 内核和内核参数
学习
01二进制代码漫游日记1 小时前
自定义类型:联合和枚举(一)
c语言·开发语言·学习·算法
非凡ghost2 小时前
小X分身APP(手机分身类工具)
android·windows·学习·智能手机·软件需求
weixin_458872612 小时前
东华复试OJ每日3题打卡·复盘82~84
学习
昌兵鼠鼠3 小时前
LeetCode Hot100 哈希
学习·算法·leetcode·哈希算法
旖旎夜光3 小时前
哈希(14)(下)
数据结构·c++·学习
2401_848009725 小时前
Redis零基础入门学习
数据库·redis·学习
如果你想拥有什么先让自己配得上拥有5 小时前
全等三角形的判定条件思考
学习·总结
zenpluck6 小时前
RTAB-Map学习记录(1)--论文阅读
c++·论文阅读·学习·机器人