self-attention - 李宏毅笔记

简介: self-attention - 李宏毅笔记

1.简介


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


图像识别


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


164d24162e3147a9b5baba684a1cea34.png


语音识别


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

29e883bbbdcf478eace7656d1e77e920.png

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


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


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


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

713f115d81114e7f90f2fbe32ff081de.png

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

0ee8532ae6f64e86990c44258a5f25dd.png


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

74b13849b57b4e6a8869c8da86411bc0.png

1.2 为什么用self-attention


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


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


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


2.self-attention原理


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


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

e4e799db9d6146bdae8da783ff7bb4f2.png


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


2.1 self-attention计算流程


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


1687253017594.png

e21f22630d684ac0a11563b61776ebd8.png

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


1687253046675.png


fbe9805956254aa89dcafdfa664832e4.png


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

a9a50605d7ec4602a3f5987db757e6bc.png


1687253087218.png



8c88d9e3b52a4f8b869adc4560163d45.png

1687253101968.png

8c88d9e3b52a4f8b869adc4560163d45.png

2.2 Multi-head Self-attention


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

步骤 1:

4144d311ac2545049acfa59633c140d8.png


步骤 2:


493ae74995294b1ebca846295b8b5fe3.png


步骤 3:

3daab81bafc943cab375e5c9fbfd24df.png


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 与cnn对比,数据集小的情况下,cnn精度更高,数据集更大的情况下,self-attention精度更高

f28ec43a98f74836ad8d7e6e8dfd73a7.png

3.1 self-attention vs rnn



RNN和self-attention的本质区别是,RNN必须把最左边的输入存入Memory里面然后一路带到最右边才能被最后的输出考虑,有这种序列的信息;而对于Self-attention的每一个Vector对于所有的输入都是一视同仁的,产生这种“天涯若比邻“的效果。


对于上下文来说rnn,认为上下文距离越近,影响越大,而self-attention对上下文不考虑距离,每一个词的影响都是一视同仁看待。


相关文章
|
机器学习/深度学习 数据挖掘 计算机视觉
经典神经网络论文超详细解读(一)——AlexNet学习笔记(翻译+精读)
经典神经网络论文超详细解读(一)——AlexNet学习笔记(翻译+精读)
1272 1
经典神经网络论文超详细解读(一)——AlexNet学习笔记(翻译+精读)
|
机器学习/深度学习 算法 数据挖掘
|
机器学习/深度学习 自然语言处理 并行计算
【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)
【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)
1426 0
【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)
|
机器学习/深度学习 编解码 算法框架/工具
经典神经网络论文超详细解读(二)——VGGNet学习笔记(翻译+精读)
经典神经网络论文超详细解读(二)——VGGNet学习笔记(翻译+精读)
316 0
经典神经网络论文超详细解读(二)——VGGNet学习笔记(翻译+精读)
|
机器学习/深度学习 存储 自然语言处理
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)1
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)
183 0
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)1
|
机器学习/深度学习 自然语言处理 算法
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)2
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)
69 0
|
机器学习/深度学习 自然语言处理 机器人
Transformer - 李宏毅笔记
Transformer - 李宏毅笔记
266 0
|
机器学习/深度学习 计算机视觉
CycleGAN 论文泛读
CycleGAN 论文泛读
130 0
CycleGAN 论文泛读
|
机器学习/深度学习 自然语言处理 数据库
CGAN-论文阅读笔记
CGAN-论文阅读笔记
166 0
CGAN-论文阅读笔记
|
编解码 数据挖掘 计算机视觉
论文阅读笔记 | MLP系列——CycleMLP
论文阅读笔记 | MLP系列——CycleMLP
308 0
论文阅读笔记 | MLP系列——CycleMLP
下一篇
无影云桌面