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. noip模拟35

    A. 玩游戏 考场做法用双指针向两侧更新,当左段点左移一位时,如果右端点不满足条件,则跳回肯定满足的位置.复杂度玄学 题解做法是类似最长子段和,如果有一个区间和为负,则维护的指针跳过去即可 B. 排列 ...

  2. Git 系列教程(10)- 仓库别名

    Git 别名 前言 Git 并不会在你输入部分命令时自动推断出你想要的命令 如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名 $ git c ...

  3. bean的作用域和生命周期

    一.Bean作用域 二.生命周期 其中,这个类实现各种接口重写各种方法,会按bean的声明周期按序执行: 其中,自定义的初始化和自定义销毁的方法不是实现接口重写,而是成员方法,并且在装配bean即在x ...

  4. iNeuOS工业互联平台,PLC监测与控制应用过程案例。新闻:.NET 6 RC1 正式发布

    目       录 1.      概述... 1 2.      平台演示... 2 3.      应用过程... 2 1.   概述 iNeuOS工业互联网操作系统主要使用.netcore 3. ...

  5. 九、Abp vNext 基础篇丨评论聚合功能

    介绍 评论本来是要放到标签里面去讲的,但是因为上一章东西有点多了,我就没放进去,这一章单独拿出来,内容不多大家自己写写就可以,也算是对前面讲解的一个小练习吧. 相关注释我也加在代码上面了,大家看看代码 ...

  6. JAVA修饰符优先级先后顺序规范

    在实际的开发中,会遇到定义静态常量时,有的人使用的修饰符顺序不一致,例如 ... static final ... 或者 ... final static ... 于是找到了下规范,分享下 优先级 修 ...

  7. Linux没有/var/log/messages日志文件

    1.新安装的CentOS8没有/var/log/messages日志文件: 安装rsyslog: dnf  install   -y  rsyslog 或 yum  install  -y  rsys ...

  8. 入坑微信小程序必经之路(六)图片上传服务器——WebSercice接口

    wxml文件 <view class="weui-uploader"> <view class="img-v weui-uploader__bd&quo ...

  9. PHP打印跟踪调试信息

    对于大部分编译型语言来说,比如 C . Java . C# ,我们都能很方便地进行断点调试,但是 PHP 则必须安装 XDebug 并且在编辑器中进行复杂的配置才能实现断点调试的能力.不过,如果只是简 ...

  10. Jmeter系列(23)- 常用逻辑控制器(2) | 事务控制器Transaction Controller

    事务控制器(Transaction Controller) 作用 选择一些请求,作为事务,放在该控制器下 比如:我有三个请求,注册.登录.下单.这三个请求其实就是一个下单完成过程,可以作为一个下单事务 ...