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

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第1张图片

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

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第2张图片

1 NLP结构


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

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

2 En

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第3张图片

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

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

1 彩色图假设为灰色图(1x224x244),
将每个像素点作为token来对应3 5 7(我爱你),
然后变成embeeding
Transformer讲解(三)- CV变形金刚-ViT知识介绍_第4张图片

2 在BERT中最大程度是512,像素太多导致长度太长
Transformer讲解(三)- CV变形金刚-ViT知识介绍_第5张图片

3 解决办法
1)局部注意力:2只和 7, 39(邻近的)
2)改仅attention公式
3)
上述过于复杂
因此切分图
Transformer讲解(三)- CV变形金刚-ViT知识介绍_第6张图片

 4 ViT架构图

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第7张图片

 运转顺序
Transformer讲解(三)- CV变形金刚-ViT知识介绍_第8张图片

1 切分

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

2.2
(方法1)利用Linear层将256映射到transfermer需要的embedding维度
(方法2)实现方式还可以使用768个16x16的卷积得到[768,1,1]->768
Transformer讲解(三)- CV变形金刚-ViT知识介绍_第9张图片

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第10张图片

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

为什么加cls?


Transformer讲解(三)- CV变形金刚-ViT知识介绍_第11张图片
保持与原NLP一致,其实这个是出现在BERT中出现(而不是TRM),实验说明加不加效果一样。

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

 TransformerTransformer讲解(三)- CV变形金刚-ViT知识介绍_第12张图片

 Transformer讲解(三)- CV变形金刚-ViT知识介绍_第13张图片

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

上述视频作者理解

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第14张图片

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

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第15张图片

 与RNN不同TRM没有顺序Transformer讲解(三)- CV变形金刚-ViT知识介绍_第16张图片

 VIT中的位置编码

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第17张图片

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

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第18张图片

 cat计算量会大

效果比较

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第19张图片

 Transformer讲解(三)- CV变形金刚-ViT知识介绍_第20张图片

5 TRM编码和VIT编码的差异

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第21张图片

 1  norm变了位置

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第22张图片

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

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

VIT串讲

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第23张图片

 1 Flatten->做映射到768

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第24张图片

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

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第25张图片

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

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第26张图片

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

Transformer讲解(三)- CV变形金刚-ViT知识介绍_第27张图片

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

做多分类任务

你可能感兴趣的:(mac科研环境,ubuntu,linux,运维)