Transformer
@aikenhong 2021
References For Transformer:
- NLP The Transformer Family (lilianweng.github.io)
- VIT Transformer眼中世界 VS CNN眼中世界
- 李沐 NLP Transformer论文精读
- Suveys cver1, cver2,cver3
This blog will divided into several part : lil’s blog, the survey for ViT, we using those article to help us understand the transformer.
综述我们以最新的一篇为准进行阅读,其他的可能后续进行查缺补漏把,如无必要,勿增烦恼。
Intro导言
主要参考文章2来进行我们简单的导入
基本问题
Transformer原本是NLP中的重要模型, 作为LSTM的后继者, 用于处理Seq2Seq的数据类型和情景, 若是要将Transformer运用到Vision的领域中, 首要的问题就是如何:
将Image作为序列化的Token输入Transform中 , 而达成这个目的主要有三种典型的方法:
- 像素点作为token,
- 使用VAE离散化图片作为token再输入
- ViT: 将图片切为一个个
Patch
在经过线性的projector
之后组成一个embedding
表示进行交互
CNN的异同分析
差异分析和计算主要靠CKA向量相似度计算来计算模型和表征之间的差异,这里的理论分析暂且不赘述,后续有需求的话可参考论文Similarity of neural network representations revisited或当前文章.
ViT的深浅特征高度相似, 而CNN则是层次化的存在表征区别.
我想这和网络的结构之间有很大的关系, 序列化的结构和层次化的结构之间存在的差别.
ViT最后输出使用的是CLS token, 而CNN最终的Global Pooling导致Vi T的顶层特征是独特的, 与CNN的深浅都不匹配
ViT 模型,在底层就已经是局部和全局信息都混在一起了,而上层则基本都是全局信息。和 ResNet 差别在于,因为 CNN 本身特性,底层只利用局部信息。
此外,当用少量数据训练 ViT 的时候,发现底层的头是学习不到局部信息的。
而这也导致了模型性能不是很好,所以视觉模型需要表现好,底层一般都需要学习到局部信息,这也是符合解剖学里面人类视觉神经结构的。
最后一层的空间信息的学习和Pooling有关, 导致了ViT中有更多空间信息.
Attention Is All You Need 李沐
实际上《Attention is All You Need》就是NLP的Transformer的祖宗,这一篇论文已经反反复复的度过很多次了, 所以这一部分主要用来做查缺补漏。
Transformer