Vision Transformer 总结

这里写自定义目录标题

  • [Vision Transformer](#Vision Transformer)
    • Transformer
    • 结构
    • [相较于CNN 的优势在哪里?](#相较于CNN 的优势在哪里?)
  • [Transformer in Transformer](#Transformer in Transformer)
  • 代码实现的一些描述

Vision Transformer

Transformer

结构

ViT中最重要的部分是self-attention, 对照片做的patches, 以及position embedding。self-attention机制在之前的博客里面也有讲过,在这里主要是计算每一个patch 之间的相关性,多头的自注意力机制有些许不一样的。我个人的理解是单头的注意力机制只能计算某一个特征和另外一个特征的相关性,但是多头注意力机制可以同时处理多个特征的和另外多个特征的相关性。我感觉这里可以结合"线性分类器" 和 "CNN"的区别来理解。 线性分类器只能学习到输入数据的一个mode,比如 "一个人的看向左边",但是如果输入数据中还有:'一个人看向右边'的图片,线性分类器就无法准确的学习,但是CNN却因为很多的kernels,所以可以学习到一个物体的不同mode。 这里的self-attention 和multi-head self-attention 可以采用的同样的方式来理解。

至于patch, 我认为是将图片序列化的一个过程而已,因为Transformer本身是无法处理图片格式的数据的。所以将图片打散成小的patch更符合Transformer的输入条件。但是图像数据本身携带了位置信息的,通过这样的"序列化"过程会导致图像丢失之前的位置信息,所以position embedding 在ViT中才如此的重要。所谓position embedding 实际上是加在每一个patch上的一个小向量来表示当前patch的位置信息。

相较于CNN 的优势在哪里?

想要获得全局的信息CNN 通常需要通过堆叠深度来实现感受野的增长。因为对于CNN 来说 第N层的特征图上的一个像素点,是第N-1层的一片区域。随着层数的变多,网络的感受野也会逐渐变大,但是通常是需要较深的深度才能达到这个效果,较深深度不仅会出现计算力吃紧的问题,也是潜在出现过拟合的原因,而transformer 因为每一层都会整合patch之间的信息,他可以从第一层开始就看到全局信息,在一定程度上规避了CNN 需要非常深的深度才能获得较好全局信息的问题。

Transformer in Transformer

ViT中将图像分成patches不是最优的选择。因为patch中包含的不同比例和位置的信息不能较好的处理。所以TNT中,进一步将patch再拆分成更小的单位然后进行重组。论文中将patch称为 'visual sentance',把进一步拆分的更小单位称之为'visual words'。

文章只是使用了一个inner VIT 去进一步拆分patch而已,outer VIT 和经典VIT一致。

代码实现的一些描述

postional embedding 和 patch embedding都是使用的一层Conv2D来完成的。将位置和patch 都embed到相同的维度上。注意力机制的QKV 都是使用单独的一层MLP,多头注意力就是把输入特征维度拆分开即可。

相关推荐
编程武士2 小时前
从50ms到30ms:YOLOv10部署中图像预处理的性能优化实践
人工智能·python·yolo·性能优化
max5006002 小时前
基于Meta Llama的二语习得学习者行为预测计算模型
人工智能·算法·机器学习·分类·数据挖掘·llama
mCell3 小时前
长期以来我对 LLM 的误解
深度学习·llm·ollama
月疯3 小时前
OPENCV摄像头读取视频
人工智能·opencv·音视频
极客天成ScaleFlash3 小时前
极客天成让统一存储从云原生‘进化’到 AI 原生: 不是版本升级,而是基因重组
人工智能·云原生
王哥儿聊AI3 小时前
Lynx:新一代个性化视频生成模型,单图即可生成视频,重新定义身份一致性与视觉质量
人工智能·算法·安全·机器学习·音视频·软件工程
_pinnacle_4 小时前
打开神经网络的黑箱(三) 卷积神经网络(CNN)的模型逻辑
人工智能·神经网络·cnn·黑箱·卷积网络
Ada's4 小时前
深度学习在自动驾驶上应用(二)
人工智能·深度学习·自动驾驶
张较瘦_4 小时前
[论文阅读] 人工智能 + 软件工程 | 从“人工扒日志”到“AI自动诊断”:LogCoT框架的3大核心创新
论文阅读·人工智能·软件工程
lisw054 小时前
连接蓝牙时“无媒体信号”怎么办?
人工智能·机器学习·微服务