PyTorch计算机视觉之Vision Transformer 整体结构

【图书推荐】《PyTorch深度学习与计算机视觉实践》-CSDN博客

Vision Transformer(ViT)模型是最新提出将注意力机制应用在图像分类的模型。Vision Transformer算法会将整幅图像拆分成小图像块,然后把这些小图像块的线性映射序列作为注意力模块的输入数据送入网络,然后进行图像分类的训练。

Vision Transformer 整体结构

Vision Transformer是注意力机制在图像识别领域的一项开创性的应用,它舍弃了传统基于卷积神经网络的图像识别模式,采用了全新的Transformer架构来处理图像数据。这种架构的核心思想是自注意力机制,它允许模型在同一序列中的不同位置之间建立相互依赖的关系,从而实现对图像特征的全局捕捉和长距离依赖的处理。与传统的卷积神经网络相比,Vision Transformer具有以下几个显著优势:

  1. 长距离依赖处理:传统卷积神经网络在处理局部特征时表现出色,但在处理长距离依赖方面相对较弱。而Vision Transformer通过注意力机制,可以有效地捕捉到图像中不同位置之间的依赖关系,从而提高模型在处理长距离依赖任务时的性能。
  2. 可解释性:虽然深度学习模型通常被认为是"黑盒",但Vision Transformer在一定程度上具有可解释性。通过对模型的中间层输出进行分析,我们可以了解到模型在不同层次上关注的图像特征。这有助于我们理解模型的工作原理,并在需要时进行调试和优化。
  3. 并行计算能力:由于Transformer架构天然具有并行计算能力,因此在处理大量图像数据时,Vision Transformer可以充分利用GPU资源,实现高效的计算。
  4. 全局感知:Vision Transformer通过注意力机制,可以在不同层次的特征之间建立起关联关系,从而实现对图像全局信息的感知。这使得模型在处理复杂图像任务时,能够更好地捕捉到图像的整体结构和语义信息。
  5. 易于迁移学习:由于Vision Transformer摒弃了传统的卷积神经网络结构,因此可以很容易地将其预训练好的权重迁移到其他任务上。这使得模型具有更强的泛化能力,可以在不同的图像识别任务中取得良好的效果。

一个完整的Vision Transformer结构如图11-1所示。

图11-1 Vision Transformer的整体结构

可以看到,同上一章讲解的编码器类似,Vision Transformer也由组件构成:

  1. Patch Emebdding:将整幅图像拆分成小图像块,然后把这些小图像块的线性映射序列作为Transformer的输入送入网络。
  2. Posiotion Emebdding:由于Transformer没有循环结构,因此需要添加位置编码来保留输入序列中的位置信息。
  3. Transformer Encoder:使用多头自注意力机制对每个小图像块映射后的向量进行加权求和,得到新的向量。
  4. 分类器:最后使用一个全连接层对每个小图像块的向量进行分类。

《PyTorch深度学习与计算机视觉实践(人工智能技术丛书)》(王晓华)【摘要 书评 试读】- 京东图书 (jd.com)

相关推荐
Cathy Bryant9 分钟前
大模型损失函数(二):KL散度(Kullback-Leibler divergence)
笔记·神经网络·机器学习·数学建模·transformer
fantasy_arch1 小时前
transformer-注意力评分函数
人工智能·深度学习·transformer
CoookeCola2 小时前
MovieNet(A holistic dataset for movie understanding) :面向电影理解的多模态综合数据集与工具链
数据仓库·人工智能·目标检测·计算机视觉·数据挖掘
应用市场4 小时前
OpenCV进阶:图像变换、增强与特征检测实战
人工智能·opencv·计算机视觉
lingchen19064 小时前
卷积神经网络中的卷积运算原理
深度学习·计算机视觉·cnn
灵遁者书籍作品4 小时前
语言的拓扑学约束公理:语言对实在的描述具有拓扑不变量——某些真理必须通过悖论、沉默或隐喻表达
人工智能·计算机视觉
N0nename5 小时前
TR3--Transformer之pytorch复现
人工智能·pytorch·python
MYX_3096 小时前
第七章 完整的模型训练
pytorch·python·深度学习·学习
CLubiy6 小时前
【研究生随笔】Pytorch中的线性代数
pytorch·python·深度学习·线性代数·机器学习
学不会就看6 小时前
PyTorch 张量学习
人工智能·pytorch·学习