西安做网站xamokj,网络营销一般月薪多少,做一个app需要多少成本,新冠目前全国最新情况把图片看成一个个16x16的patch堆起来的
摘要
卷积神经网络不是必备的#xff0c;一个纯transformer表现也是非常好的 transformer#xff1f;2500天tpu v3
介绍
大规模上预训练#xff0c;小规模任务数据集上微调。扩大模型时候还没观察到瓶颈#xff08;还没出现过拟合…把图片看成一个个16x16的patch堆起来的
摘要
卷积神经网络不是必备的一个纯transformer表现也是非常好的 transformer2500天tpu v3
介绍
大规模上预训练小规模任务数据集上微调。扩大模型时候还没观察到瓶颈还没出现过拟合
轴注意力机制把2d的图片注意力分成从H和从W出发两个1d的注意力机制
将224x224的图片根据16x16的patch划分成为14x14使用特征图展开成1d来进行attention操作
在不加强约束的情况下transformer效果是比Resnet差的因为少了归纳偏置 1是本地偏置相近的特征会相邻2是平移同变性f(g(x))g(f(x))无论先做平移还是卷积输出永远是一样的。卷积有很多先验信息。
只要预训练的数据集够大特征迟早会学到效果会变好
前人工作
要么就是用transformer将CNN取代要么两者结合 降低时间复杂度
使用窗口代替所有像素使用sparse transformer:只对一些稀疏的点使用自注意力横轴和纵轴 但是需要硬件加速
方法
尽可能使用原始的transformer
(无法上传原结构图
每个patch会通过线性投影层转换成序列最开始有一个cls标签分类从BERT中引进然后只看该标签来预测类别
流程224x224图片划分成为14x14196的16x16x3768的RGB图片乘以一个线性投影矩阵得到196x768输出 加上一个cls标签1x768得到197x768的最终输出再与位置向量相加得到patch embeddings cls相信它可以学到图像的特征。cls经过很多层transformer encoder后融合了其他token的信息。将其最后通过一个MLP处理成分类信息。 位置编码选择一维还是二维发现两者结果差不多
公式化
z0是输入 第二条是多头自注意力机制出来的结果先LaynerNorm然后注意力加上过去输入 第三条就是LN 然后MLP个残差 第四条是最后一层输出的第一个位置当成整体图像的特征作为分类任务
归纳偏置 transformer没有先验知识
混合结构 detrCNMtran的结合。使用CNN产生14x14的特征拉直之后使用原始transformer
微调和更高清晰度
用预训练好的模型尝试高分辨率图片微调 从短序列到长序列需要进行插值操作但是效果不太好。微调有局限性。
实验
对比和resnet的表征学习能力 样本小 小于ImageNet21k时候bit占优否则Vit后来居上效果好一丢丢
可视化
贾柏滤波器(Gabor filter)
可视化注意力距离后发现在训练初期同一层自注意力机制是有距离的并且随着网络越深距离越大且方差越小 这相对与CNN的好处是CNN在浅层网络的感受野是很小的只能看到邻近像素点的信息 作图将学习到的权重投射到原图的像素点中
消融实验
补充全局平均池化是每一个channel得到一个元素最后得到一个长度为channel的一维向量。 在ViT中全局平均池化和cls token的方法效果一致
2维的位置编码将一维的长度为D的位置编码换成D/2为高D/2为宽的2维位置矩阵根据具体位置选择两个向量拼接到一起就又成了长度D的向量
自监督学习
选择部分patch抹除然后自监督重建这一部分patch。但是效果差一筹。
结论
不一样的是我们不使用图像的归纳偏执而是一个序列块 有可能规模增加还能带来更好的结果 VIT-G
额外
mataformer用池化操作取代qkv他觉得是结构好并不是mlp的原因