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. 20210717 noip18

    考前 从小饭桌出来正好遇到雨下到最大,有伞但还是湿透了 路上看到一个猛男搏击暴风雨 到了机房收拾了半天才开始考试 ys 他们小饭桌十分明智地在小饭桌看题,雨下小了才来 考场 状态很差. 开题,一点想法 ...

  2. JS012. 变量存储含class、id等其他属性的标签元素(动态渲染DOM结点)

    项目中有一处源码需要用变量存储html标签,包含类名和其他一些属性,再动态地将其渲染到页面上. 看下普通的存储方式: initHtml: function () { var me = this; // ...

  3. ARM架构安装ubuntu系统

    一.简介 arm开发板制作系统是比较麻烦,不论使用busybox还是yocto制作根文件系统对新手都比太友好,除非深度定制,否则使用ubuntu系统既可以满足,把更多的精力放在应用开发上. 二.准备材 ...

  4. 洛谷P1309——迷宫(傻瓜DFS)

    题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...

  5. PTA 面向对象程序设计6-2 统计数字

    对于给定的一个字符串,统计其中数字字符出现的次数. 类和函数接口定义: 设计一个类Solution,其中包含一个成员函数count_digits,其功能是统计传入的string类型参数中数字字符的个数 ...

  6. 腾讯云与 Grafana Labs 达成深度合作, 推出全新 Grafana 托管服务

    9 月 23 日,腾讯云宣布与业界领先的开源数据可视化公司 Grafana Labs 达成深度合作协议,共同开发和验证全新的 Grafana 托管服务,通过 Grafana Labs 开源软件与腾讯云 ...

  7. MySQL update 链表 (一个表数据当做条件错误时候的转换)

    MySQL语句一: UPDATE lesson_p set solve_status = 6 where lesson_p_id in (SELECT lp.lesson_p_id FROM `les ...

  8. WireShark基础用法

    特点 免费 开源 跨平台 抓包原理 内部原理 抓取网卡 抓包环境 抓取本地数据 抓取外部数据 利用hub 流量镜像span.rspan.erspan 界面介绍.首选项.抓包选项 界面介绍 菜单栏 帮助 ...

  9. supervisor + celery 的简单配置与报错处理

    ubuntu服务器下使用 supervisor 和 celery supervisor 的卸载过程: sudo apt purge supervisor whereis supervisord如果有用 ...

  10. python接口自动化--json解析神器jsonpath

    前言 做接口测试的时候,大部分情况下返回的是json数据,我们需要对返回的json断言. 当返回的数据量比较大,并且嵌套的层级很深的时候,很多小伙伴不会取值,往往在返回结果取值上浪费很多时间.一直在寻 ...