Transformer原理及其应用

基本介绍

transformer 最早使用于NLP模型中,使用了 Self-Attention 机制。相较于RNN结构可以进行并行化训练,能够拥有全局信息

  1. 基本原理
    • 基本思想阐述
    • 公式推导
    • 运行流程图讲解
  2. 应用方向
    • 机器翻译(出处)
    • 自然语言处理
    • 机器视觉的技术演进
  3. 未来展望
    • 有可能取代所有组件
    • 每个领域都可尝试,遍地开花
    • 预训练一个通用基础模型

基本原理

scale dot-product attention

image.png

image.png

self-attention 过程图

query q 对 key k做attention:

image.png

softmax归一化:


image.png

权重乘value v 输出转化值:


image.png

合并之前的三个图中操作:


image-20210517170611977.png

Transformer架构

Feed-Forward组件:


image.png

架构图:


image.png

应用方向

自然语言处理使用场景: 机器翻译

Transformer:[2017] attention is all you need

Bert[2018]: Elmo, GPT

参数文件大小:
BERT(BASE) (L=12, H=768, A=12, Total Parameters=110M)

BERT(LARGE) (L=24, H=1024,A=16, Total Parameters=340M)

image.png

机器视觉中技术的演进

IGPT:
借鉴bert思想,OpenAI尝试对测试数据随机mask 5 个token,最终ImageNet结果果然上升了一些(红色)。由于马赛克操作过于严重(整张图片都mask了),尽管事实证明还是有效果的,但从输入上看,降低了模型的拟合能力。

image.png
image.png

VIT:

尝试过三种预训练方法,首先mask掉50%的patch,然后:

  1. 只预测patch的mean color
  2. 只预测一个马赛克版的patch
  3. 用L2损失预测所有pixel。

第三种方式已经非常接近了,但是由于研究的重点不在于此便浅尝辄止了

image.png
image.png
image.png

DEIT:
在预训练阶段,最多会mask 40%的patch。
另外,作者们其实也试过复原pixel,但效果会有1.8%的下降。对于这个现象,BEiT给出的猜想是,就像多层CNN一样,编码器最终得到的应该是一个更全局、高维的表示,而复现pixel会让后几层太关注局部细节。

image.png
image.png

MAE:
轻量级架构的两大核心:

  1. encoder输入只包含没有mask的像素。并且使用的是VIT的encoder block。
    2.vit-huge 模型mask 的比例很高时(75%)效果依旧表现很好(accuracy 87.8%),同时可以加速预训练过程。预训练时仅仅只使用了imagenet-1k data。
image.png
image.png
image.png

一些值得注意的细节,比如:

1.输入侧直接丢掉mask token,效果+0.7,效率x3.3

  1. 预测normalize之后的pixel,效果+0.5

3.选取数据增强策略,效果+0.2

image.png
image.png

思考:导致视觉和语言的masked autoencoder 不一样的三大原因

  1. 结构: CNN天然适用于图像,但是应用transformer缺显得很不自然。不过这个问题被vit解了,后续又有IGPT的马赛克、dVAE的离散化,patch形态相对来说信息损失最少且高效。

  2. 信息密度:语言的含义比较多,一个单词可能有很多解释。而图片直观易表示。所以预测的时候图片patch比预测单词更容易。预测patch稍微有点周边信息就够了,可以放心大胆的mask。这点ViT、BEiT其实也都有,但主要就是最后一点没有深究。

  3. 需要一个Decoder:因为图片信息密度有限,复原pixel这种细粒度信息会让模型强上加强。那怎么优雅地复原呢?BEiT已经说过了,在预训练图像encoder的时候,太关注细节就损失了高维抽象能力。所以凯明大神加了一个decoder。到这里分工就很明确了,encoder负责抽取高维表示,decoder则负责细粒度还原。

规模大的简单算法是深度学习的核心。在NLP中,简单的自我监督学习方法能够从模型的规模中获益。在计算机视觉中,实用的预训练范例主要是监督式的。在这项研究中,自我监督学习已经取得了进展。我们在ImageNet和迁移学习中观察到自动编码器(一种类似于NLP技术的简单的自我监督方法)与NLP中的技术类似,提供了可扩展的好处。视觉中的自我监督学习现在可能会走上一条与NLP类似的轨迹。另一方面,我们注意到,图像和语言是不同性质的信号,这种差异必须仔细处理。图像仅仅是记录的光,没有语义分解为视觉类似物的语义分解。我们不是试图去除物体,而是去除很可能不构成语义段的随机斑块。同样地,我们的MAE重建了像素,而这些像素并不是语义实体。从测试的结果上看,MAE能推断出了复杂的、整体的重建,这表明它已经学会了许多视觉概念(语义)。我们假设,这种行为的发生通过MAE内部丰富的隐藏表征。我们希望这个观点能给未来的工作带来启发。更广泛的影响。建议的方法预测内容基于训练数据集的学习统计,因此将反映这些数据中的偏差,包括具有负面社会影响的偏差。该模型可能产生不存在的内容。这些问题值得在这项工作的基础上进一步研究和考虑,以生成图像。

未来展望:

有可能取代所有组件。

每个领域都可尝试,遍地开花。

你可能感兴趣的:(Transformer原理及其应用)