文章目录

  • Sequence数据的处理
    • Sequence Labeling(输入和输出的大小一样)
  • Self-Attention内部机理
    • 如何求解b?
    • Multi-head Self-Attention
    • Positional Encoding
  • Self-Attention for Image
  • Self-Attention v.s. CNN
  • Self-Attention v.s. RNN
  • 总结

Sequence数据的处理

Self-Attention是用来处理Sequence数据的。
输入是Vector Set(Sequence)。
比如:

  1. 输入是一段文字:每个字会对应一个vector。(编码方式:①one-hot编码;②word embedding)
  2. 输入是一段声音信号:设置window(一般window的大小是25ms),每个window中的声音信号作为一个vector。(例:如果window滑动的step=10ms,window大小是25ms,那么1s的声音信号可以转化为100个vector的集合)
  3. 输入是一个Graph:每个node是一个vector。(向量是node的特征)

输出是什么?

  1. 每个输入的vector对应一个label:词性标注任务
  2. 整个sequence输入一个label:情感分析、语者辨认
  3. 机器决定输出的label的个数(Seq2Seq任务):翻译

Sequence Labeling(输入和输出的大小一样)

希望网络可以考虑整个sequence的信息。

首先想到全连接网络,但是每个输入的sequence的长度是不确定的,因此如果想要使用全连接网路哈哈哈没法确定神经元的个数~~

所以,使用Self-Attention:可以实现每个输出都会考虑整个Sequence的信息。

如图所示,一个Self-Attention块的输入是input sequence或者是上一层的输出。
每个输出b都会考虑整个输入序列的信息。

Self-Attention内部机理

如何求解b?

1、首先求解输入之间的相关性权重α。

求解α的方法:
(1)Dot-product
(2)Additive

Self-Attention中的α的求解方法:

然后经过一个激活层,此处是Softmax也可以是其他的,比如ReLU。

使用矩阵运算总结Self-Attention的求解机理:

Multi-head Self-Attention

实现不同类型的relevance。

Positional Encoding

前面讲的Self-Attention中没有涉及位置信息,因此考虑加入位置编码。

上述的positional encoding是hand-crafted的。
也有其他的positional encoding方法此处就不列举了。

Self-Attention for Image

可以将image看成一个w*h的sequence,每个像素的vector中包含的是像素的RGB三通道值。
或者将image分块,每块是一个输入vector。

Self-Attention v.s. CNN

其实CNN可以看成是Self-Attention中的一种情况。

对于Self-Attention其实是针对一个query像素点求解其与其他所有像素点的k值(即relevance)通过k值得到其他像素点对该query像素点的相关性,

而CNN是使用卷积核划定了相关像素点的范围。

Self-Attention模型相比于CNN有更高的灵活性因此训练需要更多的数据。

Self-Attention v.s. RNN

RNN也是一种处理序列数据的模型。

  • 相比于Self-Attention,RNN也可以通过循环RNN实现每个输出与所有输入的相关性。
    但是单向的RNN只能实现,后面的输出与其前的输入是相关的。
  • 并且RNN后面的输出对于距离较远的输入的依赖关系比较难实现,需要一直将前面的所有输入保存在内存中,而Self-Attention只需要在内存中保存计算出的Q、K、V矩阵即可。
  • RNN是一个串行的流程,Self-Attention是并行处理的。

总结

Self-Attention可以很好地处理序列数据,可以实现序列数据的全依赖。
但是Self-Attention的运算量很大!需要更多的数据训练。

Self-Attention详解相关推荐

  1. seq2seq + attention 详解

    seq2seq + attention 详解 作者:xy_free \qquad 时间:2018.05.21 1. seq2seq模型 seq2seq模型最早可追溯到2014年的两篇paper [1, ...

  2. 史上最小白之Attention详解

    1.前言 在自然语言处理领域,近几年最火的是什么?是BERT!谷歌团队2018提出的用于生成词向量的BERT算法在NLP的11项任务中取得了非常出色的效果,堪称2018年深度学习领域最振奋人心的消息. ...

  3. 深度学习之图像分类(十七)-- Transformer中Self-Attention以及Multi-Head Attention详解

    深度学习之图像分类(十七)Transformer中Self-Attention以及Multi-Head Attention详解 目录 深度学习之图像分类(十七)Transformer中Self-Att ...

  4. Self Attention 详解

    Self Attention 详解 前言 注意力机制(Attention),之前也是一直有所听闻的,也能够大概理解 Attention 的本质就是加权,对于 Google 的论文<Attenti ...

  5. 注意力机制Attention详解

    注意力机制Attention详解 一.前言 2018年谷歌提出的NLP语言模型Bert一提出,便在NLP领域引起热议,之所以Bert模型能够火出圈,是由于Bert模型在NLP的多项任务中取得了之前所有 ...

  6. 史上最直白之Attention详解(原理+代码)

    目录 为什么要了解Attention机制 Attention 的直观理解 图解深度学习中的Attention机制 总结 为什么要了解Attention机制   在自然语言处理领域,近几年最火的是什么? ...

  7. 注意力机制详解(Attention详解)

    注意力机制与人眼类似,例如我们在火车站看车次信息,我们只关注大屏的车次信息,而忽略大屏外其他内容,从而导致钱包被偷... 注意力机制只关注重点信息,忽略不重要的信息,关注最核心的内容. 主要就是这个公 ...

  8. 史上最小白之Transformer详解

    1.前言 博客分为上下两篇,您现在阅读的是下篇史上最小白之Transformer详解,在阅读该篇博客之前最好你能够先明白Encoder-Decoder,Attention机制,self-Attenti ...

  9. Transformer原理详解

    Transformer原理详解 一.前言 在学习Transformer之前,需要掌握Attention机制.Encoder-Decoder.Self-Attention机制的基础知识,可以参考本人的博 ...

  10. 【转载】Transformer详解

    转载于https://blog.csdn.net/Tink1995/article/details/105080033 文章目录 1.前言 2.Transformer 原理 2.1 Transform ...

最新文章

  1. xgboost api
  2. 小程序订单点击不同页面_小程序跳转页面参数丢失
  3. 耐寂寞谋定未来-农业大健康·国情讲坛:乡村振兴守公益心
  4. 按键精灵如何调用Excel及按键精灵写入Excel数据的方法教程---入门自动操作表格...
  5. YbtOJ#20239-[冲刺NOIP2020模拟赛Day10]连边方案【状压dp】
  6. 跨域会报40几_关于跨域,以及跨域的几种方式
  7. ffmpeg-win32-v3.2.4 下载_iTOP-4412开发板android4.4代码下载和编译
  8. centos7安装redmine3,并升级redmine1.8到3
  9. python-pymysql模块的使用入门
  10. 一阶电路中的时间常数_你知道RC电路和RL电路中时间常数的来源么?
  11. Python机器学习:多项式回归与模型泛化008模型泛化与岭回归
  12. 苹果充电配件MagSafe Duo Charger现已发售
  13. CentOS网络配置与重启方法
  14. C# MVC Controller依赖注入的办法
  15. Socket 编程之_TCP ☎☎☎
  16. layui树形美化_Layui导航树美化 - walkwithdream的个人空间 - OSCHINA - 中文开源技术交流社区...
  17. 模拟信号和数字信号的区别和特点
  18. [转载]中国文明网:为青少年“防沉迷”汇聚合力
  19. 基于Qt实现桌面宠物
  20. C 语言计算双色球的中奖率

热门文章

  1. 计算机科学与技术考研双非,2021西安电子科技大学计算机科学与技术考研真题经验参考书...
  2. 在vue开发中会遇到methods方法里有一个函数嵌套另一个函数,最内层函数this取不到data数据,该怎么解决?
  3. python绘图设置正交坐标等距_python – 使用cartopy在其他项目中绘制投影数据
  4. 28 爬虫 - re 正则 匹配中文
  5. 周训练计划之(韦德分化训练法:胸、肩、背、腿、腹)
  6. anti-fraud-admin  反欺诈后台
  7. Verilog 实现千兆网UDP协议 基于88E1111--数据发送
  8. 【Android Gradle 插件】build.gradle 中的 android 配置 ( 配置项 | compileSdkVersion 配置 | buildToolsVersion 配置 )
  9. mysql limt取指定数据条数 top取指定数据条数
  10. vue开发公众号-关闭浏览器返回主公众号