Transformer讲解(三)- CV变形金刚-ViT知识介绍

 VIT (Vision Transformer) 模型论文+代码从零详细解读,看不懂来打我_哔哩哔哩_bilibili公众号【NLP从入门到放弃】后台回复【VIT】获取对应的PPT和代码https://www.bilibili.com/video/BV1Uu411o7oY?spm_id_from=333.999.0.0

1 NLP结构


编码器部分
1 汉字->数字->token embedding 向量
2 位置编码
3 多头
自注意力层-残差-
-前馈神经网络-残差

解码器部分
1 汉字->数字->token embedding 向量
2 位置编码
3 多头
自注意层(mask自注意力层)-残差-
交互注意力层(Q来自解码器,KV来自编码器)-残差-
-前馈神经网络-残差

2 En

 汉字->数字->token embedding 向量->加位置编码

3 用于图像(模仿NLP将图且为 我 爱 你)

1 彩色图假设为灰色图(1x224x244),
将每个像素点作为token来对应3 5 7(我爱你),
然后变成embeeding

2 在BERT中最大程度是512,像素太多导致长度太长

3 解决办法
1)局部注意力:2只和 7, 39(邻近的)
2)改仅attention公式
3)
上述过于复杂
因此切分图

 4 ViT架构图

 运转顺序

1 切分

2.1 patch变成固定维度embedding
一种是flatten将其一个patch(16x16)变成1维(256)

2.2
(方法1)利用Linear层将256映射到transfermer需要的embedding维度
(方法2)实现方式还可以使用768个16x16的卷积得到[768,1,1]->768

3.1 生成cls符号的token embedding 对应 *星号(extra learnable (class)embedding)
其他粉色是图片patch token embedding
3.2 生成所有序列的位置编码0,1,....,9(紫色)
3.3 token embedding 位置embedding相加

为什么加cls?



保持与原NLP一致,其实这个是出现在BERT中出现(而不是TRM),实验说明加不加效果一样。

表明所有句子的一个语义信息

 Transformer

 

cls作用 : 加入cls能让任务1和2在训练中保持一定独立性,ViT没涉及MLM这类任务,因此不是必须的。

上述视频作者理解

 为什么需要位置编码?
 为什么位置编码可以和patch embedding相加?

 与RNN不同TRM没有顺序

 VIT中的位置编码

 为什么可以partch embdding和位置编码相加?

 cat计算量会大

效果比较

 

5 TRM编码和VIT编码的差异

 1  norm变了位置

 2 在NLP中序列长度不一致,要添加pad符号。

在VIT中,不同的图片大小(224x224,256x256)做resize就可以都是224了,因此没有pad(补零符号)

VIT串讲

 1 Flatten->做映射到768

 2 生成一个768的cls的初始化的token embedding

 3 位置编码(posision embeding)和切片编码(patch token embedding) 对应位置相加得到 input embedding

 4 编码(norm-多头-残差-norm-mlp-残差)

5 每个token都是一个768的输出

做多分类任务

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

计算机视觉-Archer

图像分割没有团队的同学可加群

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

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

打赏作者

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

抵扣说明:

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

余额充值