ViT Model

卷积神经网络本身具有先验知识:

  • Locality:相邻的区域之间的相关性更高
  • Translation equation:平移等变性

Transformer的时间复杂度在O(n^2),n是序列长度,而图片的大小是224 * 224,Flatten之后太大了,有一些之前的文章将Res50中的Res4部分输出的14*14的特征输入Transformer中解决了输入太大的问题,而ViT通过将图片切分成一个一个的Patch输入Transformer。

Transformer目前没有饱和的现象。
在这里插入图片描述

VIT - Patch输入

  1. 输入图像224 * 224 * 3的大小
  2. 根据16 * 16的Patch对图像进行切分,切分为14*14=196的数量
  3. 196个Patch,每个Patch中16 * 16 * 3的维度,得到196 * 768的特征维度
  4. 特征通过Linear全连接层,得到196 * 768的大小特征
  5. Cls特征用于学习分类的损失,特征大小为768大小,与196 * 768大小进行拼接,得到197 * 768大小的特征
  6. 然后与位置编码进行相加,位置编码对应的和之前的特征一样的大小,为了减少对模型的改动,我们最后还是使用了1D的位置编码(1D和2D的效果发现很像)

最后得到197*768的大小作为输入。

VIT - Transformer Encoder

  • 输入为197 * 768大小
  • 通过Layer和Norm得到197 * 768
  • 如果使用12个头,得到197*64的QKV
  • 通过多头的拼接得到197*768的特征
  • 然后通过Layer和Norm得到197 * 768
  • 最后通过MLP,中间特征维度一般会增大4倍,得到197*3072维度的特征
  • 最后得到的197*768的特征维度

VIT - 分类

  • MLP用作分类头
  • stay as close as possible:保留了原始的< cls >,用这个输入MLP中进行分类

VIT - Fine Tuning and Higher Resolution

如果改变了图像大小,意味着改变了Patch的数量,也就是原来的位置信息可能就没用了;在这里可以使用插值的思想,临时解决方案,所以可能会掉点。

VIT - 自监督学习

Bert使用的是Mask Language Model.

VIT使用的是Masked Patch Prediction.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SpaceSunflower

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值