【一文搞定】Transfomer和BERT

论文导航

Transformer
Bert

前言

不知道有没有人像我一样,再最开始接触 TransfomerBert 的时候,感觉就是云里雾里,只知道着 Bert 不是基于 Transformer 的构建的吗,对他们之间的具体区别一直没有清晰到位的理解 (((φ(◎ロ◎;)φ)))。于是在论文阅读和资料查找答疑之后,用这篇博文记录自己的理解,也方便以后回顾。

Transfomer

transfomer 原意为变形金刚,由于网络中attention部分就像是用于组装的零件,能根据我们的设计和需要构成各种模型,最终成为能完成各种任务的“变形金刚”。由此可知,attention 就是其中最重要的部分。
Transformer 抛弃了以前的 CNN 结构和 RNN 结构,提出了全新的编解码框架,即由编码端 encoder 和解码端 decoder 两个部分组成。 其结构如下图:
在这里插入图片描述

  • encoder
流程概述

(1)input 经过 Embedding (直接一句话的所有 embedding
(2)每一个单词加上对应的 位置编码
(3)经过一个 MHA(multi-head position)同时做一个 shortcut 处理后经过一个 normalization
(4)经过一个两层的全连接网络同时做一个 shortcut 处理后经过一个 normalization

要点分析
  • Multi-Head Attention
    其中的 attention 是为 self-attention , multi-head 就是将多个 self-attention 叠在一起,所以只需要明白 self-attentionMulti-Head Attention 就迎刃而解了。
    self-attention 中每个单词 iembedding 复制成为三个相同的向量后分别乘以系数矩阵 WQ,WK,WV(矩阵均随机初始化,通过训练得到新值,每一个单词都是乘以相同的 WQ,WH,WV ) 得到 qi, ki, vi(其中 q 代表 queriesk 代表 keysv 代表 values

    对于每一个单词 i,其 qi 乘以其他单词 jkj 并将每一个结果结果然后除以键向量(即k)维数的开方值 将这一列结果值进行 softmax 得到对应的系数权重, 再将这些系数权重和其对应单词的 v 做加权求和,得到了单词对应的输出向量 z
    通过上述计算之后,每一个输出向量 z 都包含了其他词的信息,而且系数权重的大小能够反映词与词之间的相关程度的深浅。
    接下来说说 multi-headmulti-head 的中文意思就是多头,即对同一组输入的 embedding,我们可以进行多个 attention 操作。每一个 attention 都有独立的 WQ,WK,WV 系数矩阵 ,每一个 attention 对应一个输出,对吼将这些输出连接起来(直接拼接),并乘以矩阵 WO 做一次线性变换得到输出
  • 位置编码
    因为 transformer 是对全局进行 attention,即前面的单词也能看见后面的单词,因此 transformer 丢失了时序信息,为解决这个问题,加入了位置编码。将位置 embedding 和词 embedding 相加,作为最终输入 embedding

Bert

在结构模型上就是将 transformerencoder 作为一个基本单元,把 N 个这样的基本单元顺序连接起来。
Bert 是一个 ①预训练 ②微调 的方案。

  • 预训练
    包含了两个任务,第一个任务是随机遮盖掉15%的单词,用 mask 替代原单词,让模型去猜测这个单词是是什么;第二个任务是每一个训练样本是一个上下句,有50%的样本,上句和下句是真的(即下句是接上句的),有50%的样本,上句和下句是无关的,让模型判断两个句子之间的关系。这两个任务各自有一个 loss ,将这两个 loss 相加作为总的 loss
    优点:
    可以充分利用到上下文的信息,使得模型有更强的表达能力,而且能够很好的捕捉到句子之间的关系
  • 微调
    主要是针对下游任务进行微调。
    假设应用于分类任务,取出句子开头的 CLS 标记对应的向量 C,加一层网络 W, 并使用 softmax 进行分类,得到预测结果。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CNN(卷积神经网络)和Transformer(变形器)都是常用于图像分类任务的深度学习模型。 首先,CNN是一种经典的图像分类模型。它通过使用卷积层、池化层和全连接层构成的多层神经网络,以从图像中学习到特征。CNN通过学习图像的局部结构和位置信息,能够对复杂的图像进行分析和分类。CNN在图像分类任务上表现出色,因为它能够从原始像素中提取出丰富的特征,并通过汇集特征进行分类。 与之相比,Transformer是一种用于自然语言处理任务的模型,最初并不适用于图像分类。然而,通过将图像拆分成一系列的块,并将块的特征作为输入,可以将Transformer用于图像分类。Transformer通过多头自注意力机制(self-attention)来捕捉图像中单个块之间的关系,并使用多层前馈神经网络来学习整个图像的特征表示。相对于CNN,Transformer能够更好地捕捉图像中的全局信息,并更好地处理长距离依赖关系。 综上所述,CNN和Transformer都是强大的图像分类模型,其表现取决于不同的应用场景。CNN适用于需要从图像中提取局部特征的任务,而Transformer适用于更注重全局信息的任务。此外,如今也有一些将CNN和Transformer结合的模型,以综合两者的优势。对于具体的图像分类任务,选择合适的模型需要综合考虑数据集的特点、模型的复杂度和计算资源等因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值