Multi-Head Attention多头注意力

让我们进入并了解多头注意力机制。 符号变得有点复杂,但要记住的事情基本上只是你在上一个视频中学到的自我注意机制的四个大循环。 让我们看一下每次计算自我注意力的序列时,称为头部。

因此,多头注意力这个名称指的是你是否按照上一个视频中看到的方式进行操作,但有很多次让我们来看看它是如何工作的。请记住,您通过将每个输入项乘以几个矩阵 WQ WK 和 WV 得到了每个输入项的向量 Q K 和 V。使用多头注意力,您将同一组query key 和 value向量作为输入。所以q,k,v值写在这里,并计算多个self attention。

  1. 所以第一个,你将 k、q、v 矩阵与权重矩阵相乘,w1q、w1k 和 w1v。所以这三个值为你提供了一组新的第一个query key 和 value向量字。你对其他每个词都做同样的事情。为直观起见,您可能会发现将w1q、w1k 和 w1v对于提问和回答问题what's happening?这个问题的学习方法是有用的。所以这或多或少是我们在上一个视频中前面介绍的自我注意示例。完成后你可能会想,我们有wq,w1q、w1k 和 w1v,我学习希望你问和回答这个问题:what's happening?

  2. 因此,通过这种计算,单词 [FOREIGN] 给出了正在发生的事情的最佳答案,这就是为什么我在这里用蓝色箭头突出显示以表示 [FOREIGN] 键之间的内积具有最高值[FOREIGN] 的q,这是我们要问的第一个问题。所以这就是你如何得到 [FOREIGN] 的表示,你对 Jane、[FOREIGN] 和其他词 [FOREIGN] [FOREIGN] 做同样的事情。所以你最终*用五个向量来表示序列中的五个单词。

所以这是你在多头注意力中使用的几个头中的第一个执行的计算。

因此,您将逐步执行我们刚才对 [FOREIGN] 和其他单词进行的完全相同的计算,并最终得到相同的注意力值,即我们在上一个视频中使用的从 1 到 5。但现在我们将不止一次这样做,而是几次。所以我们现在可能有八个头,而不是一个头,这意味着整个计算可能执行八次。

  1. 到目前为止,我们已经用这些矩阵中的第一个头部表示的第一个头部计算了这个注意力量。注意力方程就是这个,你之前在上一个视频中也看到过。
  2. 现在,让我们用第二个头来做这个计算。第二个头将有一组新的矩阵。我将编写 WQ2、WK2 和 WV2,以允许此机制提出和回答第二个问题。所以第一个问题是发生了什么?也许第二个问题是什么时候发生的事情?因此,在一般情况下,这里不是 W1,而是 Wi,我现在将第一个头后面的第二个头放在红色显示的第二个头上。所以你重复一个与第一个完全相同的计算,但用这组新矩阵代替。在这种情况下,您最终可能会得到 september 键和 [FOREIGN] 查询之间的内积将具有最高的内积。因此,我将突出显示这个红色箭头,以表明 9 月的值将在 [FOREIGN] 表示的第二部分中发挥重要作用。
  3. 或许我们现在要问的第三个问题,以WQ3、WK3和WV3为代表,是谁,谁与非洲有关系?在这种情况下,当您第三次执行此计算时,可能 Jane 的键向量和 [FOREIGN] 查询向量之间的内积将是最高的,并且在此处自我突出显示此黑色箭头。这样 Jane 的值在我现在放在后面的这个表示中将具有最大的权重。在文献中,正面的数量通常用小写字母H表示。因此H等于正面的数量。

您可以将这些head中的每一个视为不同的特征。 当你将这些特征传递给一个新的网络时,你可以计算出非常丰富的句子表示。 计算三个head或八个head或任何数字的这些计算,这三个值或 A 值的串联用于计算多头注意力的输出。 所以最终值是所有这些 h 头的串联。

然后最后乘以矩阵 W。 现在还有一个值得记住的细节是,在多头注意力的描述中,我描述了为不同的头计算这些不同的值,就好像你会在一个四大循环中做它们一样。从概念上讲,这样想是可以的。但在实践中,您实际上可以并行计算这些不同头的值,因为没有一个值取决于任何其他头的值。因此,就其实现方式而言,您实际上可以并行而不是顺序计算所有头。然后将它们连接起来乘以 W 零。还有你的多头注意力。现在,幻灯片上有很多事情要做。感谢您一直陪伴我直到本视频结束。在下一个视频中,我将使用简化的图标。我们将在这里使用这个小图来表示这个多头计算。所以它需要输入矩阵 Q、K 和 V。所以这些值在此处并在此处输出此值。所以在下一个视频中,当我们将其放入完整的 Transformer 网络时,我将使用这张小图片来表示幻灯片上表示的所有这些计算。那么,恭喜。在上一个视频中,您了解了自我注意。通过多次这样做,您现在了解了多头注意力机制,它可以让您对每个单词提出多个问题,并为每个单词学习更丰富、更好的表示。现在让我们把所有这些放在一起来构建变压器网络。让我们转到下一个视频来看看。

第五课第四周笔记3:Multi-Head Attention多头注意力的更多相关文章

  1. 第五课第四周笔记1:Transformer Network Intuition 变压器网络直觉

    目录 Transformer Network Intuition 变压器网络直觉 Transformer Network Intuition 变压器网络直觉 深度学习中最令人兴奋的发展之一是 Tran ...

  2. 第五课第四周笔记4:Transformer Network变压器网络

    Transformer Network变压器网络 你已经了解了 self attention,你已经了解了 multi headed attention.在这个视频中,让我们把它们放在一起来构建一个变 ...

  3. 第五课第四周笔记2:Self-Attention 自注意力

    Self-Attention 自注意力 让我们跳进去谈谈transformer的self-attention机制.如果您能了解本视频背后的主要思想,您就会了解变压器网络工作背后最重要的核心思想. 让我 ...

  4. 第五课第四周实验一:Embedding_plus_Positional_encoding 嵌入向量加入位置编码

    目录 变压器预处理 包 1 - 位置编码 1.1 - 位置编码可视化 1.2 - 比较位置编码 1.2.1 - 相关性 1.2.2 - 欧几里得距离 2 - 语义嵌入 2.1 - 加载预训练嵌入 2. ...

  5. Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍

    原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...

  6. 红帽学习笔记[RHCSA] 第五课[用户、权限相关]

    第五课 用户权限 查看文件的权限 [kane@localhost /]$ ll total 36 ----------. 1 root root 1751 Aug 22 20:58 ~ lrwxrwx ...

  7. 斯坦福 CS183 & YC 创业课系列中文笔记

    欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 724187166 ApacheCN 学习资源 目录 Zero to One 从0到1 ...

  8. NeHe OpenGL教程 第四十五课:顶点缓存

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  9. kali linux 渗透测试视频教程 第五课 社会工程学工具集

    第五课 社会工程学工具集 文/玄魂 教程地址:http://edu.51cto.com/course/course_id-1887.html   目录 第五课社会工程学工具集 SET SET的社会工程 ...

随机推荐

  1. 服务器安装CentOS7.9系统(U盘启动方式)

    一.安装环境 机房的华为GPU服务器,型号G2500,8张P4显卡,需要安装最小化的CentOS7.9操作系统,利用U盘启动的方式进行安装. 二.安装说明 虽然本环境是GPU服务器,但是安装方式同样适 ...

  2. JDK方法区、元空间区别 & String.intern相关面试题

    一.方法区.永久代.元空间 1.方法区.永久代 方法区也是各个线程共享的内存区域,它用于存储已经被虚拟机加载的类信息.常量.静态变量.即时编译器编译后的代码等数据.方法区域又被称为"永久代& ...

  3. GIS常用算法

    目录 1.常用算法 1.1.计算两经纬度点之间的距离 1.2.根据已知线段以及到起点距离,求目标点坐标 1.3.已知点.线段,求垂足 1.4.线段上距离目标点最近的点 1.5.点缓冲 1.6.点和面关 ...

  4. Appium自动化(5) - 如何获取android app 的Activity 和 Package

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 在Desired Capab ...

  5. RDS导入注意事项

    1)导入文件大小不超过100M,支持格式有CSV.SQL.ZIP 2)sql文件需注释如下内容: SET @@SESSION.SQL_LOG_BIN=0 ; SET @@GLOBAL.GTID_PUR ...

  6. 用 Java 写个塔防游戏「GitHub 热点速览 v.21.37」

    作者:HelloGitHub-小鱼干 本周 GitHub Trending 的主题词是:多语言.本周特推的 C 语言教程是大家都知道的阮一峰编写的,想必和他之前的技术文章类似,能起到科普作用.再来时 ...

  7. 记一次 .NET 某桌面奇侠游戏 非托管内存泄漏分析

    一:背景 1. 讲故事 说实话,这篇dump我本来是不准备上一篇文章来解读的,但它有两点深深的感动了我. 无数次的听说用 Unity 可做游戏开发,但百闻不如一见. 游戏中有很多金庸武侠小说才有的名字 ...

  8. Elasticsearch(ES)集群的搭建

    1. 概述 Elasticsearch(ES)集群支持分片和副本,能够很容易的实现负载均衡.扩容.容灾.高可用. 今天我们就来聊一下,Elasticsearch(ES)集群是如何搭建的. 2. 场景介 ...

  9. Java基础系列(19)- Switch结构

    package struct; public class SwitchDemo01 { //case穿透 //switch 匹配一个具体的值 public static void main(Strin ...

  10. Nginx系列(7)- Nginx安装 | Linux

    step-1 安装gcc 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: [root@localhost ~]# yum install ...