当前位置:网站首页>Transformer前言:self-attention与Multi-Headed Attention的详细理解
Transformer前言:self-attention与Multi-Headed Attention的详细理解
2022-08-09 00:28:00 【胖虎记录学习】
在此特别感谢李宏毅老师的课程,真的是醍醐灌顶。
论文地址:
引入:
self-attention是一种新的注意力机制,transformer在NLP(自然语言处理)上应用的很广。
假设有这么一项任务,给定一个英文句子,能够得出句子中每个单词的词性:
考虑一句话:I saw a saw(我看见了一个锯子)
对应词性为:名词 动词 量词 名词
那么问题来了,这个句子如何放进模型进行训练呢?如何区别两个saw呢?
如果交给机器去学习,只考虑单个单词的话,很明显,学习出来的saw要不为名词、要不为动词,不可能同时都是。
input:之前的input为一个向量,通过一个模型,得到一个数值或者一个类别;假如inputs为一组向量并且每个向量的长度不一样时怎样通过模型得到一组输出的数值或者类别呢?例如I saw a saw每个单词都作为一个输入向量:
input编码方式(以一句话为例):one_hot编码 word embedding等
output:假设输出方式为每一个输入向量都有一个输出
如何区别两个saw呢?考虑句子中每个单词与它临近的单词之间的关系
self attention(自注意力机制)
每个输入得到一个输出
,考虑其它输入的影响。
考虑句子中每个单词与它临近的单词之间的关系,即某个输入与其他输入之间的关系用相关性relevant衡量:
两个输入之间关系的衡量方法:self attention使用第一种方法
原理介绍:
以a1为例进行介绍:首先利用矩阵点乘
得到
(query,查询),再通过
矩阵计算得到
、
、
(key,键值),这些键值与
的查询矩阵
计算得到
的attention score(注意力得分)。其他输入同理计算之后得到该输入与其他输入之间的相关性。
同时
也要计算自己的attention score,经过softmax得到得分矩阵,如下图所示。
softmax也可以换成其他变换函数,如ReLU等。
利用矩阵点乘
得到
,其他输入同理,得到的v值与上步得出的结果进行计算得到
。
同理:
由此得到所有输出:并且由于内部为矩阵乘法,可以并行计算,加快训练速度。
再从矩阵角度理解:
Q、K、V的计算:
attention score(注意力得分)计算:
attention score矩阵A与经过softmax处理的:
计算b,得到矩阵O:
完整过程:矩阵、
、
是可以被学习的参数矩阵
Multi-Headed Attention
以两头为例(可以理解为两类任务),将q矩阵分为两个q矩阵,每个矩阵单独进行计算。
最后的结果通过矩阵得到:
Positional Encoding(位置编码)
每个输入位置不定,加上一个向量作为输入对位置的考虑:
图像也能作为输入,从而将transformer应用到图像领域。
与CNN的关系:自注意力机制考虑整幅图像中像素之间的相关性,而CNN只考虑感受野内的像素特征,CNN是简化版的self-attention,CNN只考虑感受野内的,依赖人工划定的感受野;self-attention注考虑整张图,找出相关的像素,自动学出感受野的形状和大小。
与RNN的关系:自注意力机制为并行计算得到结果。
参考:
仅为学习记录,侵删!
边栏推荐
- 笔记&代码 | 统计学——基于R(第四版) 第十章 多元线性回归
- 小G砍树 (换根dp)
- MySQL5.7设置MySQL/MariaDB 数据库默认编码为utf8mb4
- 模型冻结对应层参数freeze
- ScreenSpace-ShadowMap(屏幕空间的阴影映射技术)
- 千分位数字
- 笔记&代码 | 统计学——基于R(第四版) 第九章一元线性回归
- 在Ubuntu/Linux环境下使用MySQL:修改数据库sql_mode,可解决“this is incompatible with sql_mode=only_full_group_by”问题
- Non-major graduates, five-faced Ali: Four rounds of technical + HR have already taken an offer
- 凹凸映射Bump_Mapping
猜你喜欢
随机推荐
Phoenix的安装配置以及数据处理(详细步骤)
遮罩纹理-MaskTexture
阿里云服务器买完不知道如何使用(新手入门教程)
Refract-折射
牛客多校8 补题
vscode 中新建文件自动显示作者,日期等配置
JS data types
STM32H750VBT6 Keil5 error :flash download failed cortex-M7
怎么重置mysql的自增列AUTO_INCREMENT初时值
js中常用方法总结
控件限制总结
GaN图腾柱无桥 Boost PFC(单相)二 (公式推到理解篇)
非科班毕业生,五面阿里:四轮技术面 +HR 一面已拿 offer
unity自学笔记--变色跑酷
关于cordova的InAppBrowser插件的几点问题
对纹理进行uv坐标偏移
顶点动画-VetexAnimation
「复盘」面试 BAMT 回来整理 398 道高频面试题,助你拿高薪 offer
纹理映射-TextureMapping
Dapr学习(4)之eShopOnDapr部署(Rancher2.63&k3s)