第五课第四周笔记2:Self-Attention 自注意力
Self-Attention 自注意力
让我们跳进去谈谈transformer的self-attention机制。如果您能了解本视频背后的主要思想,您就会了解变压器网络工作背后最重要的核心思想。
让我们开始吧。您已经看到了注意力如何与诸如 RNN 之类的顺序神经网络一起使用。要使用更晚的 CNN 风格的注意力,您需要计算自注意力,在其中为输入句子中的每个单词创建基于注意力的表示。让我们使用我们的运行示例,Jane、visite、l'Afrique、en、septembre,我们的目标是为每个单词计算这样的基于注意力的表示。所以我们最终会得到其中的五个,因为我们的句子有五个单词。当我们计算它们时,我们将这五个词用 A1 到 A5 表示。我知道您开始看到一堆符号 Q、K 和 V,我们将在稍后的幻灯片中解释这些符号的含义,所以现在不要担心它们。
我将要使用的运行示例是在这句话中使用 l'Afrique 一词。我们将在下一张幻灯片中逐步介绍 Transformer 网络的自注意力机制如何允许您为这个单词计算 A3,然后您也对句子中的其他单词执行相同的操作。
现在您之前学习了词嵌入。表示 l'Afrique 的一种方法是查找 l'Afrique 的词嵌入。但是,根据上下文,我们是否将 l'Afrique 或Africa视为具有历史意义的地点或度假胜地,或者是世界第二大洲。根据您对 l'Afrique 的看法,您可以选择以不同的方式表示它,这就是表示 A(3) 的作用。它将查看周围的词,试图找出我们在这句话中谈论Africa的实际情况,并为此找到最合适的表示。就实际计算而言,它与您之前看到的在 RNN 上下文中应用的注意力机制不会有太大区别,除了我们将对句子中的所有五个单词并行计算这些表示。当我们在 RNN 之上建立注意力时,这就是我们使用的等式。
使用自注意力机制,注意力方程看起来像这样。你可以看到方程有一些相似之处。这里的内部项也涉及一个 softmax,就像左边的这个项一样,你可以将指数项视为类似于注意力值。您将在下一张幻灯片中看到这些术语的确切计算方式。所以,再一次,不要担心细节。
但主要区别在于,对于每个单词,比如 l'Afrique,您都有三个值,称为查询(q)、键(k)和值(v)( query, key, and value)。这些向量是计算每个词的注意力值的关键输入。
现在,让我们逐步完成实际计算 A3 所需的步骤。在这张幻灯片上,让我们逐步完成从单词 l'Afrique 到自注意力表示 A3 所需的计算。作为参考,我还在右上方打印了上一张幻灯片中类似 softmax 的方程。首先,我们要将每个单词与称为query(q), key(k), value(v)对的三个值相关联。如果 X3 是 l'Afrique 的词嵌入,则 q3 的计算方式是作为学习矩阵,我将写成 WQ 乘以 X3,对于键值对也类似,所以 k3 是 WK 乘以 x3,v3 是 WV 乘以 x3。这些矩阵 WQ、WK 和 WV 是此学习算法的参数,它们允许您为每个单词提取这些查询、键和值向量。
那么这些查询键和值向量应该做什么呢?他们确实使用了一个类似于音乐会和数据库的松散类比,您可以在其中进行query, key, value对。如果您熟悉这些类型的数据库,这个类比可能对您有意义,但如果您不熟悉该数据库概念,请不要担心。让我给出这些查询、键和向量值的意图背后的一种直觉(请结合下图)。
Q3 是一个关于 l'Afrique 的问题。 Q3 可能代表一个问题,比如那里发生了什么?Africa,l'Afrique 是一个目的地。您可能想知道在计算 A^3 时,那里发生了什么。我们要做的是计算 q^3 和 k^1 之间的内积。
然后我们计算 q^3 和 k^2 之间的内积,此操作的目标是提取所需的最多信息,以帮助我们在这里计算最有用的表示 A^3。
再次,只是为了建立直觉,如果 k^1 代表这个词是一个人,因为 Jane 是一个人,而 k^2 代表第二个词,visite,是一个动作,那么你可能会发现 q^3 与k^2 的内积值最大,这可能是直观的例子,可能表明visite 为您提供与Africa正在发生的事情最相关的上下文。也就是说,它被视为访问的目的地。
我们要做的是在这一行中取这五个值并计算它们的 Softmax。这里其实有这个Softmax,在我们刚才讲的例子中,q^3 乘以k^2 对应wordvisite 可能是最大的值。用蓝色表示。最后,我们将取这些 Softmax 值并将它们与 v^1 相乘,v^1 是单词 1 的值,单词 2 的值,依此类推,因此这些值对应于那里的值。
最后,我们总结一下。这个求和对应于这个求和运算符,因此将所有这些值相加得到 A3,它正好等于这里的这个值。另一种写A3的方式实际上是A(q^3,k,v) 。但有时这样写A^3会更方便。这种表示的主要优点是 l'Afrique 的词不是一些固定的词嵌入。相反,它让自注意力机制意识到 l'Afrique 是访问者、访问的目的地,从而为这个词计算更丰富、更有用的表示。
现在,我一直在使用第三个单词 l'Afrique 作为运行示例,但您可以对序列中的所有五个单词使用此过程,以获得类似 Jane、visite、l'Afrique、en、septembre 的丰富表示。如果把这五个计算放在一起,文献中使用的外延是这样的,你可以把我们刚刚谈到的所有这些计算对序列中的所有单词进行总结,写成Attention(Q, K, V) where Q , K, V 矩阵具有所有这些值,这只是这里方程的压缩或矢量化表示。分母的式子只是为了缩放点积,因此它不会爆炸。你真的不需要担心它。但这种注意力的另一个名称是缩放点积注意力。这就是最初的 Transformer 架构论文《Attention Is All You Need》中所代表的内容。这就是transformer网络的self-attention机制。
概括地说,与五个词中的每一个相关联,您最终会得到一个查询q、一个键k和一个值v。该查询让您可以提出有关该词的问题,例如Africa正在发生的事情。关键字查看所有其他单词,并根据与查询的相似性,帮助您找出哪些单词给出了与该问题最相关的答案。在这种情况下,visite 是在Africa发生的事情,某人正在访问Africa。
最后,该值允许表示插入访问者应如何在 A^3 内表示,在Africa的表示内。这使您可以为Africa这个词提出一个表示,表示这是Africa并且有人正在访问Africa。您只需要为每个单词提取相同的固定词嵌入而不能够根据其左侧和右侧的词进行调整相比,这是对世界的一种更细致、更丰富的表示单词。我们都必须考虑到上下文。
第五课第四周笔记2:Self-Attention 自注意力的更多相关文章
- 第五课第四周笔记3:Multi-Head Attention多头注意力
Multi-Head Attention多头注意力 让我们进入并了解多头注意力机制. 符号变得有点复杂,但要记住的事情基本上只是你在上一个视频中学到的自我注意机制的四个大循环. 让我们看一下每次计算自 ...
- 第五课第四周笔记1:Transformer Network Intuition 变压器网络直觉
目录 Transformer Network Intuition 变压器网络直觉 Transformer Network Intuition 变压器网络直觉 深度学习中最令人兴奋的发展之一是 Tran ...
- 第五课第四周笔记4:Transformer Network变压器网络
Transformer Network变压器网络 你已经了解了 self attention,你已经了解了 multi headed attention.在这个视频中,让我们把它们放在一起来构建一个变 ...
- 第五课第四周实验一:Embedding_plus_Positional_encoding 嵌入向量加入位置编码
目录 变压器预处理 包 1 - 位置编码 1.1 - 位置编码可视化 1.2 - 比较位置编码 1.2.1 - 相关性 1.2.2 - 欧几里得距离 2 - 语义嵌入 2.1 - 加载预训练嵌入 2. ...
- Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍
原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...
- 红帽学习笔记[RHCSA] 第五课[用户、权限相关]
第五课 用户权限 查看文件的权限 [kane@localhost /]$ ll total 36 ----------. 1 root root 1751 Aug 22 20:58 ~ lrwxrwx ...
- 斯坦福 CS183 & YC 创业课系列中文笔记
欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 724187166 ApacheCN 学习资源 目录 Zero to One 从0到1 ...
- NeHe OpenGL教程 第四十五课:顶点缓存
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- kali linux 渗透测试视频教程 第五课 社会工程学工具集
第五课 社会工程学工具集 文/玄魂 教程地址:http://edu.51cto.com/course/course_id-1887.html 目录 第五课社会工程学工具集 SET SET的社会工程 ...
随机推荐
- DorisDB升级为StarRocks,全面开源!
今天被朋友圈刷屏了,StarRocks开源--携手未来,星辰大海! 原文链接:StarRocks开源--携手未来,星辰大海! 可能大家对StarRocks不太熟悉,但是DorisDB想必都是听说过的. ...
- Appium问题解决方案(10)- Original error: Swipe did not complete successfully
背景 从搜索页面返回首页之后,执行 swipe 滑动操作,但是报错了,如上图 解决方法 只需要在第一次 swipe 之前加个 sleep,强制等待即可 备注 这种解决方案其实不好,强制等待能少用就少 ...
- 常见GDB命令
- 【第二篇】- Git 安装配置之Spring Cloud直播商城 b2b2c电子商务技术总结
Git 安装配置 在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 Windows 平台上运行. Git 各平台安装包下载地址为:http://g ...
- request内部转发Demo
// 转发的Demo1 import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import ja ...
- 使用SQL SERVER存储过程实现历史数据迁移
今天讲下软件开发中最常见的历史数据迁移方式.在讲迁移之前,先简单介绍下几个基本概念. 1.什么是历史数据迁移? 简单直白地说:就是将一些创建时间比较久而且不常用的历史数据,存储到另一个地方(可以是另一 ...
- PHP的switch和ifelse谁更快?
对于多个if条件判断的情况下,我们使用switch来代替ifelse对于代码来说会更加的清晰明了,那么他们的效率对比呢?从PHP手册中发现有人已经对比过了,自己也用他的代码进行了实验: $s = ti ...
- Charles的breakpoint功能
修改请求报文 比如,前端已经控制了输入内容,而我们需要验证接口是否做了校验,这时候怎么测试? 可以通过charles抓包,修改请求报文,修改为在页面上无法输入的内容,发出去然后看后台怎么处理. 修改返 ...
- 【CTF】msf和impacket联合拿域控内网渗透-拿域控
前言 掌控安全里面的靶场内网渗透,练练手! 内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也 ...
- Python如何连接Mysql及基本操作
什么要做python连接mysql,一般是解决什么问题的 做自动化测试时候,注册了一个新用户,产生了多余的数据,下次同一个账号就无法注册了,这种情况怎么办呢?自动化测试都有数据准备和数据清理的操作,如 ...