迁移学习(Transfer Learning)用一句话概况就是把已经训练好的模型迁移到类似任务中,帮助新模型的训练。

传统的神经网络构建流程

自然语言学习17-迁移学习

迁移学习

自然语言学习17-迁移学习

主要分为两个步骤。

  1. 利用一些大型的公开数据集训练出一个“通用”的 model 。这个阶段称为 Pre-training 阶段。
  2. 用到它们发布的公开模型正对于我们的任务对模型进行微调(fine tuning)。这一阶段也称为fine tuning阶段。

使用不恰当就会产生“负迁移(negative transfer)”

Pre-training 模型一定需要:

  1. 大量的数据训练。
  2. 模型有足够的泛化能力。

自然语言学习17-迁移学习

word2vec缺陷:

  1. word2vec 还是把单词压缩到一维向量中,维度太低没有损失了过多的信息。
  2. 无法区分多义词,例如“bank”这个词,有“银行”和“岸边”两个截然不同的意思,然而因为权重矩阵是静态的,bank 无论在句子中是什么意思,只会对应一个一维向量。

BERT 结构其实就是把 GPT 单向网络结构改成了双向。

BERT 的 Pre-training

无监督学习策略,上下文训练语言模型。策略主要分为两部分。

单词级别 把语料数据集(Google 采用了 33 亿个单词的文本)随机分为两份A、B。A 占比 85%,B 占比百分之 15%。把数据 B 做类似与 CBOW 模型的操作,就是根据上下文去猜被遮挡的词(mask)。但是具体细节不同。BERT 继续把 B 拆分成B1(80%)、B2(10%)、B3(10%)进行 Mask 操作

句子级别 把语料中的句子随机划分。然后进行两两预测,预测句子二是否为句子一的下文。

Transformer模型结构

BERT 模型主要使用了 Transformer。Transformer 起初是为了解决 RNN 的长程记忆退化问题的。所以没有使用 RNN 结构。

Encoders

Encoder(8个)

Self-Attention(MulitiHead) Add&Normalize Feed&Forward

 

Decoders

Decoders

Decoder(8个)

Self-Attention(MulitiHead) Add&Normalize Feed&Forward Encoder-Decoder Attention

Base-Attention

自然语言学习17-迁移学习

Ct 是attention score 的求和

自然语言学习17-迁移学习

Self-Attention

Base-Attention 中主要是找源句中的词与目标句中词的注意力权重。而 Self-Attention 是找本句中的词与其余所有词的一个注意力值。

结构图:

自然语言学习17-迁移学习

其中 Q、K、V 都是一个权重矩阵,本网络目标就是求这三个权重矩阵。

计算过程:

自然语言学习17-迁移学习

  • 第一步 Q矩阵与K矩阵相乘。
  • 防止数据的相差过大需要做一下尺度缩放,dk是K的维度。
  • Mask(opt.)是一个遮挡操作,实际上这一步在输入的时候完成的。
  • SoftMax把数据弄成0~1的概率数值。
  • 与V矩阵进行点乘

Self-Attention(MulitiHead)

在 Transformer 中用的是 Self-Attention 的“多头版”。所谓得“头”就是一组 Q、K、V。多头就是多组 Q、K、V。

Add&Normalize

Add

自然语言学习17-迁移学习

借助了残差这一思想。

深度残差网络(Resnet)

Normalize

数据的标准化。数据通过一个公式进行平移,缩放进行分布调整。在 Transformer 中使用的是 Batch Normalization。

Encoder-Decoder Attention

与 Self-Attention 思路完全一样,只不过它的 Q 矩阵和 V 矩阵来源于 Encoder,而不再是初始化得到的。

Positional Embedding

在 Input 输入到 Transformer 的时候还做了一个 Positional Embedding 的操作,这是因为纯 Attention 是没有办法知道句子中单词的输入顺序的。所以需要把单词输入之前的位置信息给神经网络。

 

 

 

 

相关文章: