• 自注意力机制(self-attention)


    前言

    输入的类型
    请添加图片描述
    输入一堆向量
    文字处理
    声音讯号
    图的节点可以看作一个向量表示
    输出是什么呢

    • 每一个向量都有一个标签
      应用:
      词性标注,语音,social network
    • 整个句子有一个标签
      应用:
      情感分析,语音辨认,图
    • 机器自己决定输出多少个标签
      应用:seq2seq(机器翻译)请添加图片描述

    引入self-attention

    Sequence Labeling
    使用全连接神经网络
    如果是词性标注的问题,对于全连接神经网络而言,不能区别第一个saw和第二个saw,完全不知道怎么处理

    请添加图片描述
    输入的Sequence有长有短
    self-attention 考虑了整个句子的信息,可以叠加多层

    self-attention计算流程

    请添加图片描述
    两个向量之间的关联性,左边的向量乘上 w q w^q wq矩阵,右边的向量乘上 w k w^k wk矩阵
    另外一种计算方式如右边
    请添加图片描述
    根据 α i \alpha_i αi去抽取最重要的资讯,哪些向量和 a 1 a^1 a1是最有关系的
    请添加图片描述
    得到attention分数,得到 b 1 . . . . . . b 4 b^1......b^4 b1......b4,可以同时得到这些向量, w q , w k , w v w^q,w^k,w^v wq,wk,wv都是未知的需要从train data找出来

    在这里插入图片描述

    Multi-head self-attention

    请添加图片描述

    Positional Encoding

    在自注意力机制中没有位置信息,完全没有这个资讯
    为每一个位置设置一个独特的位置编码 vector e i e^i ei,请添加图片描述
    在语音辨识方面
    不需要要看完整句话
    请添加图片描述

    Self-attention vs CNN

    在处理图像问题时,每一个像素点都可以看成一个三维的向量,维度就是图像的通道数,所以图像也可以看成是很多向量输入的模型
    自注意力机制和CNN的概念类似,都是希望网络不仅仅考虑某一个向量,也就是CNN中希望模型不仅仅考虑某一个像素点,而是让模型考虑一个正方形或者矩形的感受野(Receptive field)
    对于自注意力机制来说,相当于模型自己决定receptive field是怎样的形状和类型
    其实CNN卷积神经网络是特殊情况下的一种self-attention,self-attention就是复杂版的CNN
    请添加图片描述

    请添加图片描述
    Self-attention 的弹性比较大
    请添加图片描述

    self-attention vs RNN

    • Self-attention可以考虑全部的输入,而RNN似乎只能考虑之前的输入(左边)。但是当使用双向RNN的时候可以避免这一问题。
    • Self-attention可以容易地考虑比较久之前的输入,而RNN的最早输入由于经过了很多层网络的处理变得较难考虑。
    • Self-attention可以并行计算,而RNN不同层之间具有先后顺序。

    请添加图片描述
    This is one type of Graph Neural Network(GNN)
    请添加图片描述

  • 相关阅读:
    JavaScript常用事件详解
    【如何学习CAN总线测试】——AUTOSAR网络管理自动化测试(含源码)
    代码随想录算法训练营第四十六天丨 动态规划part09
    mapreduce序列化(Hadoop)
    Linux用户和用户组管理总结
    【网络协议】聊聊UDP协议
    【FPGA教程案例41】图像案例1——通过verilog读取图片
    (二) Docker安装
    流程图 and/or/xor 讲解
    【链接装载与库】 Linux共享库的组织
  • 原文地址:https://blog.csdn.net/weixin_45768308/article/details/127560004