| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Transformer -> 正文阅读 |
|
[人工智能]Transformer |
关键词Dot Product(向量点乘)向量的点乘是对这两个向量对应位一一相乘之后再求和的操作,点乘的结果是一个标量。
?> 0 :两向量方向基本相同,夹角范围[0°,90°],正相关; ?< 0: 两向量方向基本相反,夹角范围[90°,180°],负相关; ?= 0 :两向量正交,夹角90°,完全不相关; Attention注意力机制,通过一定方法,给输入的表征序列中的每个元素分配一个权重系数,当前输出(可能是依次输出,每次输出一个结果元素)依据注意力系数,对输入序列中不同元素分配不一样的关注度。 ?Self-attention又称为内部注意力(intra-attention),是一种将单个序列中不同位置的元素互相关联起来,再以这种关联关系建立起序列表示(序列表征)的注意力机制。Self-attention是Attention的一种特例。
Query、Keys、Values vector(查询、键、值向量)查询向量、键向量和值向量是输入(经编码)与三个矩阵分别相乘创建出的表征矩阵,三个矩阵是需要网络学习的参数。 查询向量q是用来匹配序列内所有元素的键向量k的,本元素自己的q与所有元素的k分别点乘获得attention权重,之后该attention权重分别叉乘上对应位置的值向量,再求和就得到当前元素的Self-attention结果。该过程见下图: 个人理解:q、k和v是输入向量在不同维度或不同空间上的表征特征,q主要是给当前元素自己算attention用的,k主要是给其他元素算attention用的,q和v两者计算出attention系数,而v是当前Self-attention模块“直接相关的”输出。 Transformer下图是Transformer的结构图,左侧是Encoder部分,右侧是Decoder部分。 Input Embedding、Output EmbeddingEmbedding是词嵌入的意思,词嵌入是把输入的词汇序列映射到一个特定空间的多维向量表示上,方便执行其后的计算,这个映射是手动定义的,在一个任务中是固定的。 Positional EncodingAttention的优点是可以获取局部与全局的关联信息,但是无法像CNN那样感知空间位置上的信息,即无法记录序列中元素的顺序或位置关系,为了弥补这个缺点,对Attention加入了位置编码(Positional Encoding)。
简单线性位置编码vs论文中正余弦编码?图源 https://www.ylkz.life/deeplearning/p10770524/ Multi-Head Attention?多头注意力通过把Q,K,V线性投影到不同的表示子空间(representation subspaces),提升了Self-attention的表征能力。
多头注意力机制允许模型在不同表征空间有不同的注意力。 Add & NormAdd是残差模块,直接把输入叠加到输出上。 ? 图源【机器学习】LayerNorm & BatchNorm的作用以及区别_敲代码的quant的博客-CSDN博客_layernorm Feed Forward每个Multi-Head Attention的输出后都接了一个Feed Forward层(FFN),公式是:
Masked Multi-Head AttentionMasked的意思是序列中部分元素的attention,因为只能在之前已经产生的output上做attention。 Scaled Dot-product AttentionDot-product是说attention因子是通过计算两个向量的点积获得的。 参考Attention Is All You Need |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 16:24:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |