赞
踩
本专题需要具备的基础:
Transformer 技术里程碑:
时间:2020年CVPR
论文全称:《An Image is Worth 16*16 Words: Transformers for Image Recognition at Scale》
发明人:谷歌团队
简介:论文中提出了 Vision Transformer (ViT),能直接利用 Transformer 对图像进行分类,而不需要卷积网络。(论文中也提到CNN+transformer,但效果差不多)
基本原理:将图像划分为16x16的小切片,转成序列,输入ViT中,得到分类。
备注:上图14*14*768卷积的结果拉平后是196*768,图中(197*768)写错了。
有了基础,理解上图不是很复杂,代码也不是很长,记录几个要点:
问题:为什么刚开始要将224*224的图像通过16*16的卷积核(步长为16)把图形处理成14*14然后拉成一维,而不是直接先把图形拉成一维然后接个全连接层将图形变形为196?
分块操作:通过将图像切分为多个16x16的块,每个块可以保留一部分图像的空间信息。这对于理解图像的局部结构很重要,因为这些局部结构(如物体的一部分或特定的纹理)对于图像分类、物体检测等任务是有意义的。
直接拉平:如果直接将整个图像拉平成一维向量,那么所有的空间信息都会丢失。虽然可以通过一个全连接层尝试学习这些信息,但这通常是不高效的,因为全连接层没有设计来特别处理空间结构,且参数量会非常大,增加了模型的复杂度和过拟合的风险。
分块减少序列长度:通过将图像分割成小块,可以显著减少Transformer模型处理的序列长度。例如,将224x224图像分割成16x16的块,得到的序列长度为224/16∗224/16=196224/16∗224/16=196。这比直接处理整个图像的像素要少得多,从而减少了计算复杂度。
全连接层复杂度高:相比之下,如果先将图像拉平成一维向量,再通过一个全连接层变换到所需维度,不仅会丢失空间信息,而且全连接层的参数数量会非常庞大,因为每个输入节点都要与每个输出节点连接。这会导致计算量大大增加,并增加过拟合的风险。
综上所述,ViT通过分块处理图像而非直接拉平,旨在保留图像的空间信息,减少计算复杂度,并借鉴NLP中成功的处理方式。这种方法使得模型能够更有效地处理大规模图像数据,并利用Transformer的优点来学习图像的全局和局部特征。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。