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

相关推荐
海绵宝宝转agent2 分钟前
2026-10-19学习笔记
笔记·学习
燃烧的枫18 分钟前
Windows 下 YOLO26 的 TensorRT C++ 部署
人工智能·pytorch·windows·计算机视觉·tensorrt·cuda·yolo26
云水初35 分钟前
【agent篇】RAG Agent避坑指南(附高级RAG Agent汇总)
开发语言·笔记·python·学习·langchain·agent·rag
外收内放42 分钟前
数据分析(图表信息详解)
python·学习·数据分析·matplotlib
气质、小青年!1 小时前
进程1学习
linux·学习
点PY1 小时前
OmDet-Turbo: Real-Time Transformer-Based Open-Vocabulary Object Detection论文精读
深度学习·目标检测·transformer
坤坤子吖1 小时前
Linux 线程同步与互斥——互斥锁
linux·服务器·c++·笔记·学习
撩得Android一次心动1 小时前
Jetpack Compose 知识点整理3【个人用】
android·笔记·学习·kotlin·android compose
深度学习lover2 小时前
<数据集>棉花虫害识别<目标检测>
人工智能·深度学习·yolo·目标检测·计算机视觉·棉花虫害识别
阿梦Anmory2 小时前
规划领域定义语言(PDDL)学习笔记
笔记·学习