当前位置: 首页 > article >正文

自注意力,多头注意力,交叉注意力与因果注意力复习

“自注意力机制中有三个重要的输入矩阵:查询矩阵Q(query)、键矩阵K(key)和值矩阵V(value)。这三个矩阵都是由输入序列经过不同的线性变换得到的。然后,查询矩阵Q与键矩阵K的乘积经过一个softmax函数,得到一个与输入序列长度相同的概率分布,该分布表示每个元素对于查询矩阵Q的重要性。最后,将这个概率分布乘以值矩阵V得到自注意力向量,表示将每个元素的值加权平均后的结果。”

这相当于在说:我要比较每一个向量(可能代表了某一个单词)和其他向量的相似度(和自己或者重复的向量相似度自然高),最后的结果就是一个加权和(自己和与自己类似的向量乘上相似度的和)显然要是有一个向量重复的多或者与它类似的多的话,他最后的结果就大,更重要,而且也体现了有哪些词和他有关

当然要记得给输入向量加上位置信息,毕竟注意力机制对输入顺序不敏感,但我们的结果是敏感的。

(中间的Scale只是一个除法,防止向量不一样大)

transformer的多头注意力机制是怎么做的?就是对最开始输入的矩阵做不同的线性变化,做出很多套降维的q,k,v来,并行的计算,出来之后会得到很多套乘过权重的输入数据,把大家连接起来就好

这样一来注意力机制中还可以有可学习参数,可以识别更多模式。

总结:注意力机制就是在输入数据上做文章,让重要的数据获得更大的权重。主要的方式是比较向量与其他的之间的相似度,也可以在比较之前加上线形层来有一些学习的空间。

交叉注意力与自注意力机制类似,Q,K来自一个输入序列,V来自另一个。

因果注意力就是加mask,给后面的乘上一个绝对值很大的复数,softmax之后


http://www.kler.cn/a/280701.html

相关文章:

  • JVM-类加载过程
  • 金融基础知识-银行间债券市场交易规则+场外市场交易规则
  • Qt之QCharts一篇玩转图表QCharts
  • scrapy学习笔记0827
  • 【STM32】C语言基础补充
  • 第十三章- 游戏结束
  • Qt WebAssembly 警告:构建套件中未设置编译器
  • UE5打包iOS运行查看Crash日志
  • 【STM32开发笔记】使用RT-Thread的SDIO驱动和FATFS实现SD卡文件读写
  • 如何用JavaWeb技术开发旅行社网站系统?详解步骤与技巧
  • python 把一个视频复制3次
  • pinctrl_GPIO子系统
  • Java 开发中常用的Linux 性能调优技巧
  • WEB开发---使用HTML CSS开发网页实时显示当前日期和时间
  • linux dma cache和主存数据不一致问题
  • 嵌入式Qt移植之tslib部署到Busybox根文件-思维导图-学习笔记-基于正点原子阿尔法开发板
  • 畅捷通CRM newleadset.php SQL注入漏洞复现
  • Mybatis Plus乐观锁实现
  • 测试用例(还需要输入1个字)
  • 使用 Java 记录简化 Spring Data 中的数据实体