一起了解Transformer

前言

Transformer是GooGle在2017年提出的,一开始主要应用于NLP领域,比如翻译,文本分类,比如BERT就有用到。随着技术不断发展,这门技术也逐渐应用于计算机视觉的领域了。
可是,CNN卷积神经网络不是一直主流技术吗?什么时候transformer也来凑热闹了?

CNN的局限性

我们平常在计算机视觉中所提及的卷积神经网络,大部分是指2维卷积,其实在NLP处理中也会用到1维卷积,用来提取信息。此时,就是以时间序列地形式来表示了。

  • 卷积神经网络仅关注局部的信息,而忽略了全局的感知和理解,在信息与信息之间存在长距离联系时,就很难有依赖关系了。
  • 此外,卷积神经网络所感受到的局部信息与卷积核大小有关,也就是说,当需要更大感受野的时候,那么就需要更大的卷积核尺寸,这样的话不仅会让模型复杂度大大提升,也可能导致梯度消失的出现。

Transformer

在这里插入图片描述

Transformer本质上就是一个编码-解码的过程。比如我们输入一个数据X,它的维度是[batch size, sequence length],batch size 就是 batch 的大小,这里只有一句话,所以 batch size 为 1,sequence length 是句子的长度,假如一共 7 个字,那么这里输入的数据维度是 [1, 7]。

位置的嵌入

输入到编码器前,我们需要对其进行向量的转换才能嵌入其中,这里就用到了Word2Vec,得到的维度为[batch size, sequence length, embedding dimension],embedding dimension 的大小由 Word2Vec 自身决定,Tranformer 采用的是512 长度的字向量。所以 ,这里的维度是 [1, 7, 512]。
在这里插入图片描述

自注意力机制

在Transformer中还包含了Attention机制。Transformer使用了 self attention即自注意力机制。Self Attention它可以并行地更新输入文本中每个单词的权重, 是一种计算效率很高的模型技术。
以文本序列为例:当我们输入若干个单词时,对于每个单词,Transformer都会给每个单词赋予权重,每个权重的值与单词上下文存在依赖关系,可以获取长距离的依赖关系。
自注意力机制会将每个单词线性投射三个不同的空间中:查询query、键key和值value。然后通过这些得分表示词与词之间的相关性。如果两者存在依赖性,那么就会产生很高的正数;如果不相关,则是很高的负值。
在这里插入图片描述
在这里插入图片描述
需要注意的是,倘若每句句子的长度不一样,则需要通过padding来填充至一样的长度。统一按照最长的句子长度处理。
但是实际上,对于高分辨率的输入来说,自注意力机制层的计算量很大,因此它只适用于较小的空间维度输入的数据场景。其实,注意力机制和卷积层的作用是很类似的,尤其是在网络的前若干层中自注意力机制学习到的归纳偏差和卷积层学习到的特征图十分类似。

残差连接与归一化处理

这里引进的这两个处理就很常见了,为了防止梯度消失,以及加快收敛。进行残差连接的时候,因为维度是一致的,所以可以直接将元素相加。而归一化就是将数据转为标准正态分布,作后面的训练。

前馈网络

也是深度学习中离不开的网络,将此层的信息传递给下一层。

最后引用

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值