您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页Self-Attention 学习笔记

Self-Attention 学习笔记

来源:好走旅游网

Attention机制的本质
attention机制的本质是从人类视觉注意力机制中获得灵感。
大致是我们视觉在感知东西的时候,一般不会是一个场景从到头看到尾每次全部都看,而往往是根据需求观察注意特定的一部分。而且当我们发现一个场景经常在某部分出现自己想观察的东西时,我们就会进行学习在将来再出现类似场景时把注意力放到该部分上。从关注全部到关注重点

Attention机制的优势

  • 参数少
    模型复杂度跟 CNN、RNN 相比,复杂度更小,参数也更少。所以对算力的要求也就更小。

  • 速度快
    Attention 解决了 RNN 不能并行计算的问题。Attention机制每一步计算不依赖于上一步的计算结果,因此可以和CNN一样并行处理。

  • 效果好
    在 Attention 机制引入之前,长距离的信息会被弱化,就好像记忆能力弱的人,记不住过去的事情。Attention 是挑重点,就算文本比较长,也能从中间抓住重点,不丢失重要的信息。


Attention机制的理解
注意力机制说白了就是要通过训练得到一个加权,自注意力机制就是要通过权重矩阵来自发地找到词与词之间的关系。实现注意力分配系数,也就是一系列权重参数罢了。
注意attention机制的实现有很多种方法


从Self-Attention较简单实现形式开始理解
最原始的sefl-attention数学公式表达:

假设模型输入 X = 早上好,下图为其embedding的结果 (右侧为X转置结果)

下图为以第一行为例的Softmax(XXT)结果
投影的值大,说明两个向量相关度高。
如果两个向量夹角是九十度,那么这两个向量线性无关,完全没有相关性!

softmax用于归一化,同时为权重分配做出了self-attention机制数学实现,进行权重分配进行了铺垫。例如
例如根据softmax结果,当我们关注"早"这个字的时候,我们应当分配0.4的注意力给它本身,剩下0.4关注"上",0.2关注"好"。

最后是对最末尾矩阵X在self-attention中的作用

至此,self-attetion最原始的表达形式和简单的attention表示有了较好的理解


ViT模型中使用的自注意力机制数学表达

公式中所含有的Q(query查询)、K(key键)、V(value值/vector向量)其来源是X与矩阵的乘积,本质上都是X的线性变换。

问题:为什么不直接使用 [公式] 而要对其进行线性变换?
是为了提升模型的拟合能力,矩阵W 都是可以训练的,起到一个缓冲的效果。



使用sefl-attention时,计算两个向量间常用的方案Relevant关系的方案——Dot product




因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务