美文网首页深度学习
2020机器学习 Transform 模型(3)

2020机器学习 Transform 模型(3)

作者: zidea | 来源:发表于2020-03-04 20:07 被阅读0次
image

编码器(encoder)

  • 输入为 ( batch_size,sequence_length ),batch_size 表示句子数量而sequence_length 则表示每句长度。

  • 首先输入矩阵经过 Input Embedding 变为一个维度为(batch_size,sequence_length,embedding_dim) 的矩阵,这里我们通过 embedding 矩阵将表示每一个词 id 转换为一个向量(word2vec)

  • 接下来通过 Posional Encoding 添加位置信息
    位置嵌入是(sequence_length,embedding_dim) 的矩阵,可以和词嵌入相加得到(batch_size,sequence_length,embedding_dim)的矩阵,我们用表示来表示一下这个步骤

    image
  • 然后就进入可以多次重复块(block)

    image
    然后我们对 和 三个矩阵按 header 数量进行切分出多头注意力机制。按 h 数量将矩阵进行切分为维度 (batch_size,sequence_length,h,(embedding_dim/h)) 这里 h 为多头注意力机制数量超参数 h。为了方便计算我们会把 image

    维度 sequence_length 和 h 进行转置,得到 (batch_size,h,sequence_length,(embedding_dim/h))

    这里 和 相乘会得到输入序列长度方阵,类似协方差矩阵。作为sofatmax 表示某一个时刻输入与各个输入间关系一行的概率分布,和为 1。


    image

    经过一系列运算维度还是保持(batch_size,h,sequence_length,(embedding_dim/h))

image
  • Batch Norm 我们是对同一个 batch 不同数据同一个维度进行归一化(标准化),也就是希望一个 batch 同一个维度(特征)均值为 0 方差为 1

  • Layer Norm 是无需考虑 batch 给一个数据,我们希望其在各个不同维度上均值为 0 方差为 1

  • Add & Norm 层,这里做的事情是,字面上意思是做加法,在从图中箭头走向,我们发现就是 多头注意力层(Multi-Head Attention) 的输入 a 和其输出 b 相加得到 然后就是单词 Norm ,这里 Norm 就是 layer Norm 值得注意的是这里是 Layer 而不是我们之前熟悉的 Batch。

  • image
  • Feed Forward 这里没有什么好将的,就是将输入序列处理后向前传递到下一个 Add & Norm

  • Multi-head Attention 就是我们介绍过多头注意力层(Multi-Head Attention),也就是输入一个序列后通过此层会得到另外一个序列。也就是经过词嵌入和位置嵌入后得到 (sequence_length,embedding_dim) 经过

    image 和 变换后得到三个矩阵 image
  • image

解码器(decoder)

  • 输入是前一个时刻所产出的输出

  • 同样经过 nput Embedding 变为一个向量

  • 添加位置信息 Pisitonal Encoding

  • 然后就进入可以多次重复块(block)

  • Masked Multi-head Attention 这里和之前 Multi-head Attention 多了个 Masked。Masked 表示只会关注到已生成出来的序列。
    在上面 self attention 的计算过程中, 通常会使用 mini_batch 来进行计算, 也就是一次计算多句话, 也就是 X 的维度是(batch_size, sequence_length],sequence_length) 是句长, 而一个 mini_batch 是由多个不等长的句子组成的, 我们就需要按照这个 (mini_batch) 中最大的句长对剩余的句子进行补齐长度, 我们一般用 0 来进行填充, 这个过程叫做 padding。
    但这时在进行 softmax 的时候就会产生问题, 回顾 softmax 函数

image 函数 image , 是1, 是有值的, 这样的话 image 中被 image 的部分就参与了运算, 就等于是让无效的部分参与了运算, 会产生很大隐患, 这时就需要做一个 image 让这些无效区域不参与运算, 我们一般给无效区域加一个很大的负数的偏置, 也就是: image image image 经过上式的 image 我们使无效区域经过 image 计算之后还几乎为, 这样就避免了无效区域参与计算.
  • Add & Norm
  • Multi-head Attention 这一个层会接收从解码器过来的(隐藏层)输入(解码器的输出)
  • Add & Norm
  • Feed Forward
  • Add & Norm
  • Linear

  • Softmax
    这里过于基础或者已经介绍过我们就不做过多解释了。

相关文章

  • 2020机器学习 Transform 模型(3)

    编码器(encoder) 输入为 ( batch_size,sequence_length ),batch_siz...

  • 2020机器学习 Transform 模型(2)

    现在结合这张图大家可以回顾一下之前我们介绍如何通过线性变换来实现序列中各个时刻的注意力的分配。 多头自注意力机制(...

  • 2020机器学习 Transform 模型(1)

    首先感谢李宏毅老师的分享,让我受益匪浅。部分图片也直接引用李宏毅老师的ppt 截图 今天我们将介绍 Bert,那么...

  • 2020机器学习线性模型(3)

    在实际中我们是无法找到一条完美线性模型取拟合所以的样本点,我们总是近视找到一条线性模型来拟合所有点。现在我们哪一个...

  • 2019-02-17

    机器学习系列 机器学习100天 机器学习第1天:数据预处理 机器学习第2天:简单线性回归模型 机器学习第3天:多元...

  • 入门

    了解机器学习 标签需要通过机器学习模型判断出的结果 特征机器学习模型进行判断的条件(可以是很多的变量) 模型机器学...

  • 机器学习(3)——回归模型

    前言:紧接上一篇文章结尾,预测值和真实值存在较大差距,接着介绍用多项式权重来提高拟合度(R2),过拟合解决办法,引...

  • NLP入门 - 新闻文本分类 Task3

    Task3 基于机器学习的文本分类 学习目标 学会TF-IDF的原理和使用 使用sklearn的机器学习模型完成文...

  • nlp入门笔记——Task3 基于机器学习的文本分类

    学习目标 TF-IDF的原理和使用 使用sklearn的机器学习模型完成文本分类 机器学习模型 机器学习通过历史数...

  • 算法工程师面试

    1、编程语言 2、基本算法 3、传统的机器学习算法 4、常见机器学习问题 过拟合问题、交叉验证问题、模型融合、...

网友评论

    本文标题:2020机器学习 Transform 模型(3)

    本文链接:https://www.haomeiwen.com/subject/xheilhtx.html