天天看点

self-attention - 李宏毅笔记

self-attention

  • ​​1.简介​​
  • ​​1.1 不同输入的向量表示方法​​
  • ​​1.2 为什么用self-attention​​
  • ​​2.self-attention原理​​
  • ​​2.1 self-attention计算流程​​
  • ​​2.1.1 渣男自身条件q与备胎条件k计算相似度​​
  • ​​2.1.2 渣男对每个备胎的相似度整合进行归一化处理。​​
  • ​​2.1.3 渣男将不同备胎的相似度对匹配到的备胎进行加权处理​​
  • ​​2.2 Multi-head Self-attention​​
  • ​​3.self- attention 与cnn,rnn​​
  • ​​3.1 self-attention的应用​​
  • ​​3.1 self-attention vs cnn​​
  • ​​3.1 self-attention vs rnn​​

1.简介

在最常见的深度学习应用中图像识别,语音识别

图像识别

我们通常是输入一张图片,一组向量,加入到模型,模型为我们输出一个类别class或者scalar

self-attention - 李宏毅笔记

语音识别

我们通常是输入一段语音,一序列的向量,加入到模型,模型为我们输出一个类别class或者scalar

self-attention - 李宏毅笔记

1.1 不同输入的向量表示方法

在日常的深度学习中,我们对模型有不同的输入,比如文本,图片,语音,图等等,我们需要对这样的输入转化为能被模型更好处理的向量。

对于图片来说,图片本质就是一个向量集组合而成的,因此不需要做处理

对于文本来说,我们需要对文本的单词,把单词映射到一组向量中,用不同的向量表示来代表一个单词。

self-attention - 李宏毅笔记

我们将apple,bag,cat,dog用不同的向量形式表示:

self-attention - 李宏毅笔记

self-attention就是一种新的向量计算公式,将输入层的输入的向量,通过不同的self-attention公式计算出,新的向量表示方式

self-attention - 李宏毅笔记

1.2 为什么用self-attention

在我们输入的某一段文本时,譬如:this is a cat。

其中这个is,不只是单独一个向量独立的,它其实也是由上下文this和a cat共同去确定的。

在文本也好,语音,图片都是如此,而self-attention计算公式,就是考虑到上下文对当前向量的影响。有点类似于RNN中的LSTM但是效果比LSTM更好。

2.self-attention原理

这里借用一下b站up主“狗中赤兔”说的。

我们可以假设self-attention是一个渣男从备胎中选择一个适合的自己的对象,适合度越高的备胎,渣男投入的时间金钱就会越多(注意力为越多)

self-attention - 李宏毅笔记

渣男根据自身条件Q与备胎的条件K,计算其相似度(二个矩阵的相似度,也就是矩阵相关性),最后我们用计算出的相似度给匹配到的备胎V进行加权,就知道,渣男该为那个备胎付出更多的时间金钱了。

2.1 self-attention计算流程

2.1.1 渣男自身条件q与备胎条件k计算相似度

渣男自身条件,备胎,得到相似度

self-attention - 李宏毅笔记

2.1.2 渣男对每个备胎的相似度整合进行归一化处理。

将相似度,整合为

self-attention - 李宏毅笔记

2.1.3 渣男将不同备胎的相似度对匹配到的备胎进行加权处理

self-attention - 李宏毅笔记

这样就计算出了,假设是渣男的,的转化向量了,同理,我们假设是渣男的情况,得到的转化向量。

self-attention - 李宏毅笔记

2.2 Multi-head Self-attention

在self-attention还有一种self-attention的变体叫Multi-head Self-attention(多头)。

步骤 1:

self-attention - 李宏毅笔记

步骤 2:

self-attention - 李宏毅笔记

步骤 3:

self-attention - 李宏毅笔记

3.self- attention 与cnn,rnn

3.1 self-attention的应用

沿着self-attention出现了二种结构的变体

  • Transformer
  • BERT

3.1 self-attention vs cnn

在cnn中的卷积计算,其实也是一种注意力的计算,只不过是均匀的注意力乘积,也就是说cnn其实是self-attention的一种

self-attention - 李宏毅笔记

self-attention 与cnn对比,数据集小的情况下,cnn精度更高,数据集更大的情况下,self-attention精度更高

self-attention - 李宏毅笔记

3.1 self-attention vs rnn

继续阅读