self-attention与transformer学习笔记-李宏毅

self-attention

解决问题:针对输入有多个向量,并且每个向量长度不一致的情况

  • 输入向量个数与输出结果个数一致
    self-attention会考虑整个序列的信息,可以对fully connect与self-attention交替使用,
    self-attention与transformer学习笔记-李宏毅_第1张图片

会考虑到整个序列的信息

self-attention与transformer学习笔记-李宏毅_第2张图片

计算a1与其他(a2,a3,a4)的关联程度阿尔法
self-attention与transformer学习笔记-李宏毅_第3张图片
分别计算a1与其他每一个的关联性(自己与自己也会计算)
self-attention与transformer学习笔记-李宏毅_第4张图片
接下来使用softmax
self-attention与transformer学习笔记-李宏毅_第5张图片

(基于注意力分数来提取信息)为了寻找与a1最有关系的向量,找到序列中最有价值的信息
self-attention与transformer学习笔记-李宏毅_第6张图片
从整体来看(矩阵层面)
self-attention与transformer学习笔记-李宏毅_第7张图片
self-attention与transformer学习笔记-李宏毅_第8张图片
self-attention与transformer学习笔记-李宏毅_第9张图片
self-attention与transformer学习笔记-李宏毅_第10张图片

self-attention与transformer学习笔记-李宏毅_第11张图片

multi-head self-attention
self-attention与transformer学习笔记-李宏毅_第12张图片

但是self-attention缺少了位置信息(每个输入向量的计算是并行进行的) ,解决办法在每个位置出加上ei
self-attention与transformer学习笔记-李宏毅_第13张图片

应用领域
语音(小范围),影像上(图像看成patch)
CNN就是self-attention(需要更多的数据)的特例,CNN是简化版的self-attention,CNN只考虑感受野内的,依赖人工划定的感受野;self-attention注考虑整张图,找出相关的像素,自动学出感受野的形状和大小。
self-attention与transformer学习笔记-李宏毅_第14张图片
self-attention vs RNN
self-attention,能够并行处理,
RNN:最后一个节点需要记住前面的每一个节点信息,耗费内存
self-attention与transformer学习笔记-李宏毅_第15张图片

Transformer(sequence-to-sequence):语音识别,机器翻译,语音翻译,语音合成,聊天机器人QA ,multi-label 分类,一个节点可能属于不同的类别,目标检测
输入:一个序列
输出:一个序列, 输出的长度由模型自己决定
input->encoder->decoder->output
encoder:
self-attention与transformer学习笔记-李宏毅_第16张图片

你可能感兴趣的:(transformer,学习,深度学习)