(深度学习)Self-attention

self-attention

三种seq输入输出类型

在这里插入图片描述

Each vector has a label

  • Sequence labeling

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

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

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

    • 但是这个方法只能考虑一个window内 不能考虑整个seq
      在这里插入图片描述

Self-attention

得到一个seq输出过程

  • 考虑整个seq
    在这里插入图片描述

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

在这里插入图片描述

  • 上图如何产生b1

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

在这里插入图片描述

  • 产生attention score α

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

在这里插入图片描述

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

在这里插入图片描述

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

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

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

在这里插入图片描述

上述矩阵化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 总过程:输入I 输出O

在这里插入图片描述

Multi-head Seft-attention

  • 每个head之间做处理 忽略其他head
    在这里插入图片描述

在这里插入图片描述

position encoding

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

  • 每个位置有一个独特的向量表示
    在这里插入图片描述

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

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

在这里插入图片描述

Application

  • Self-attention for Speech

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

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

在这里插入图片描述

  • Self-attention for Image

    • img可以看做是 vector set

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

    • 在这里插入图片描述

    • Self-attention vs CNN

      • CNN是简化版的self-attention

      • CNN人为设定receptive field

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

      在这里插入图片描述在这里插入图片描述

  • Self-attention vs RNN

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

在这里插入图片描述

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

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值