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

2020机器学习 Transform 模型(1)

作者: zidea | 来源:发表于2020-03-02 21:37 被阅读0次
image

首先感谢李宏毅老师的分享,让我受益匪浅。部分图片也直接引用李宏毅老师的ppt 截图

image

今天我们将介绍 Bert,那么什么是 Bert 呢? Bert 就是无监督学习 transformer。所以大家又会问什么是 transformer 呢?transformer 就是应用了 self-attention 的 seq2seq。在这句话又出现了两个新概念 self-attention 和 seq2seq。不过今天只会解释 self-attention 而不会去解释什么是 seq2seq,seq2seq 不是今天解释范围。

有关循环神经网可以参见我的简书分享

  • 2020机器学习循环神经网(1)

  • 2020机器学习循环神经网(2)

  • 2020机器学习循环神经网(3)

这里在开始开始介绍 self-attention 我们先介绍一下什么是注意力机制,以及我们为什么需要注意力机制。这里我们举一个自然语言翻译的中问题。

  • 我喜欢机器学习

  • I like studying machine learning
    这是两个序列,在seq2seq 中我们每一个输出序列对于输入序列信息获取都是均等的,也就是 like 对我、喜欢、机器和学习这些词关注都是等同。但我们都知道 like 可能更关注喜欢。这也就是我们引入注意力机制的原因,我们想让输出某一时刻输出,对每一个时刻关注度是不同的。

transformer 中大量的用到了 self-attention 层,我们为什么要在 seq2seq 中用 self-attention 层,这是为了解决 RNN 因为是时间顺序上的限制而无法做平行计算。

处理序列问题中,我们最常用的就是 RNN,输入和输出都是序列。所以 seq2seq 特别适合处理时间上有一定顺序的语言模型等问题。

image

由于 RNN 在时间上限制而无法进行平行计算,这是因为这个原因,有人想要拿 CNN 来代替 RNN 来做序列问题。

image

用 CNN 的确也可以做到输入序列和输出序列,但是格式每一个 CNN 只能考虑有限内容,但是CNN没有办法考虑更深CNN 在深层CNN 就可以看到更广阔的序列信息。而 CNN 好处是可以平行化。但是 CNN 缺点是需要叠加很多层才能实现和 RNN。

image

但是今天有一种更好实现,也就是 self-attention 层,self-attention 合理地解决了 RNN 无法实现平行计算问题,今天几乎所有的 Seq2Seq 都使用了self-attention 重新刷新了一遍,效果让大家惊呼 awesome

image
  • 首先每一个输入经过 Embedding 层得到


    image
  • 接下来就是 self-attention 层,每一个输入都进行 3 次线性变换分别得到 image

    三个向量

    这里注意力也就是 image

    这里 d 就是 和 的维度,为什么要除以 ,paper 给出解释就是 和 维度越大,他们的方程(variance)也就是越大,为消除维度对结果影响所以除以

  • image

    这里用于通过和每一个进行匹配来进行查询

  • image

    这里也就是键值(key),k 是 key 缩写,k 用来和 q 进行匹配的。

  • image

    这里 v 是 value 也就是从 中抽取的信息,也就是等价于输入

image
  • 接下来做 softmax 来根据,通过softmax 后就会得到输出在各个时刻输入注意力概率分布

  • image
image
  • 接下来就是计算出来分别和相乘得到


    image

接下我们通过矩阵形式将上面解释内容用矩阵来表示,其实这都是一些列线性变换,所以可以进行并行计算。

image 我们知道乘以就会变成,这样从到依次乘以就得到 image

,在上面式子中,可以将到组成矩阵看成 I。同理我们可以得到 K 和 V

image

这样我们就有了三个矩阵将计算 Q,K 和 V 矩阵表示。有了这些矩阵,接下来工作就是使用 q 去与 k 进行匹配

image
  • 这里用的转置和进行点乘计算出 这样就计算出与之间关系, 也就是表示对 的关注度。这些可以用矩阵形式来表示
image image

接下来我们做 softmax 来得到,这里做 softmax 就是为了以概率形式表示我们在某一个时刻对整个序列中不同时刻输入注意力分配。以概率形式表示表示注意力分配。

image image 接下来我们与 image 相乘得到 经过循环执行这部分内容我们就得到序列。 image image

通过以上解释我们现在应该了解到在 transformer 中是如何使用 self-attention 层实现了,输出对不同时刻输入内容注意力分配。

相关文章

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

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

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

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

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

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

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

    线性模型 今天我们来讨论一下线性模型,之前已经了解到线性模型来做回归问题,所谓回归问题就是根据给定样本数据训练出一...

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

    我们今天要介绍HMM(隐马可夫链),这是一个在深度学习,也就是循环神经网出现之前处理自然语言,特别是语音识别上一个...

  • 6.machine_learning_Decision_Tree

    1 机器学习决策树 1.1机器学习中的决策树模型 ① 树模型不用做scaling ② 树模型不太需要做离散化 ③ ...

  • 1 Introduction and Motivation

    1 什么是机器学习 机器学习:能从数据中自动提取有价值信息的算法设计。三要素:数据、模型、学习。模型(model)...

  • 2020 机器学习之图模型(1)

    图模型 用图模型来重新解释一下朴素贝叶斯和隐马模型我们先简单介绍一机器分类 联合概率 如果我们知道P(A,B,C)...

  • 入门

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

  • 1. 概述

    1 机器学习机器学习是一种统计学方法、计算机利用已有数据,得出某种模型,再利用此模型预测结果。【机器学习过程】 【...

网友评论

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

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