(深度学习)Self-attention

文章目录

  • self-attention
    • 三种seq输入输出类型
    • Each vector has a label
    • Self-attention
      • 得到一个seq输出过程
      • 上述矩阵化
      • Multi-head Seft-attention
    • position encoding
    • Application

self-attention

三种seq输入输出类型

(深度学习)Self-attention_第1张图片

Each vector has a label

  • Sequence labeling

    • 如果但考虑一个vector 那机器没办法给同样的vector两个不同的label

    • 比如说 “saw”动词是看 名词是锯子

    • 所以需要将前后向量一起输进去 那么FC就可以考虑neighbor

    • 但是这个方法只能考虑一个window内 不能考虑整个seq
      (深度学习)Self-attention_第2张图片

Self-attention

得到一个seq输出过程

  • 考虑整个seq
    (深度学习)Self-attention_第3张图片

  • 输入不一定是input 可以使hidden layer的输出

(深度学习)Self-attention_第4张图片

  • 上图如何产生b1

    • 计算a1 a2 …之间的连续 用α表示 α的生成可以由以下两种Dot-product或者Additive生成

(深度学习)Self-attention_第5张图片

  • 产生attention score α

    • a1的q1称为 query (查询) 其余a 的k 称为 key

(深度学习)Self-attention_第6张图片

* 实战中也会a1也会跟自己做关联性得到K1  得到的α放进softmax层

(深度学习)Self-attention_第7张图片

  • 抽取每个seq的重要资讯加权得到b1:

    • a 乘上 Wv 抽取每个seq的重要信息V

    • V * α(关联度)加起来得到b

(深度学习)Self-attention_第8张图片

上述矩阵化

(深度学习)Self-attention_第9张图片
(深度学习)Self-attention_第10张图片
(深度学习)Self-attention_第11张图片

  • 总过程:输入I 输出O

(深度学习)Self-attention_第12张图片

Multi-head Seft-attention

  • 每个head之间做处理 忽略其他head
    (深度学习)Self-attention_第13张图片

(深度学习)Self-attention_第14张图片

position encoding

  • 上述的结构网络缺少seq之间的位置信息

  • 每个位置有一个独特的向量表示
    (深度学习)Self-attention_第15张图片

  • 人为的设定位置可能没有很好的复用性 由于每个seq的长度都不一样 可能溢出

  • 故需要网络自己去学习这个seq的位置

(深度学习)Self-attention_第16张图片

Application

  • Self-attention for Speech

    • 语音序列过长 ;Attention Matrix过大

    • 故可以通过人为设定range Attention in a range 考虑语音的小范围 (Truncated Self-attention)

(深度学习)Self-attention_第17张图片

  • Self-attention for Image

    • img可以看做是 vector set

    • example:下面的img可以看成是一个 5*10的vector

    • (深度学习)Self-attention_第18张图片

    • Self-attention vs CNN

      • CNN是简化版的self-attention

      • CNN人为设定receptive field

      • self-attention更像网络自己学习这个receptive field的大小 找到跟这个pixel有关的其他pixel

      (深度学习)Self-attention_第19张图片(深度学习)Self-attention_第20张图片

  • Self-attention vs RNN

    • RNN的长距离关联较弱 需要一直记在memory里面
    • RNN处理seq不是采用同时进行需要等待上一个seq输出的vector
    • 而self-attention可以平行处理所有seq

(深度学习)Self-attention_第21张图片

  • self-attention for Graph(GNN)
    • 关联性跟edge有关 可以不由网络学习得到

(深度学习)Self-attention_第22张图片

你可能感兴趣的:(深度学习,visual,studio,c++,linux)