0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

transformer原理解析

新机器视觉 来源:小白学视觉 2023-09-06 14:44 次阅读

transformer架构可能看起来很恐怖,您也可能在YouTube或博客中看到了各种解释。但是,在我的博客中,我将通过提供一个全面的数学示例阐明它的原理。通过这样做,我希望简化对transformer架构的理解。 那就开始吧!
wKgZomT4H_2AI5HhAAH2McYogm4348.png

Inputs and Positional Encoding

让我们解决最初的部分,在那里我们将确定我们的输入并计算它们的位置编码。

bba63ee2-4c68-11ee-a25d-92fbcf53809c.png

Step 1 (Defining the data)

第一步是定义我们的数据集(语料库)。

bbcd014e-4c68-11ee-a25d-92fbcf53809c.png

在我们的数据集中,有3个句子(对话) 取自《权力的游戏》电视剧。尽管这个数据集看起来很小,但它已经足以帮助我们理解之后的数学公式。

Step 2 (Finding the Vocab Size)

为了确定词汇量,我们需要确定数据集中的唯一单词总数。这对于编码(即将数据转换为数字) 至关重要。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.pngbbf41392-4c68-11ee-a25d-92fbcf53809c.png   其中N是所有单词的列表,并且每个单词都是单个token,我们将把我们的数据集分解为一个token列表,表示为N。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bc1fe6e8-4c68-11ee-a25d-92fbcf53809c.png

获得token列表(表示为N) 后,我们可以应用公式来计算词汇量。 具体公式原理如下: bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bc4d239c-4c68-11ee-a25d-92fbcf53809c.png

使用set操作有助于删除重复项,然后我们可以计算唯一的单词以确定词汇量。因此,词汇量为23,因为给定列表中有23个独特的单词。

Step 3 (Encoding and Embedding)

接下来为数据集的每个唯一单词分配一个整数作为编号。

bc7af77c-4c68-11ee-a25d-92fbcf53809c.png

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png 在对我们的整个数据集进行编码之后,是时候选择我们的输入了。我们将从语料库中选择一个句子以开始:   “When you play game of thrones” bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bcb20c1c-4c68-11ee-a25d-92fbcf53809c.png

作为输入传递的每个字将被表示为一个编码,并且每个对应的整数值将有一个关联的embedding联系到它。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bcd79090-4c68-11ee-a25d-92fbcf53809c.png

这些embedding可以使用谷歌Word2vec (单词的矢量表示) 找到。在我们的数值示例中,我们将假设每个单词的embedding向量填充有(0和1) 之间的随机值。

此外,原始论文使用embedding向量的512维度,我们将考虑一个非常小的维度,即5作为数值示例。

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bd03234a-4c68-11ee-a25d-92fbcf53809c.png

现在,每个单词embedding都由5维的embedding向量表示,并使用Excel函数RAND() 用随机数填充值。

Step 4 (Positional Embedding)

让我们考虑第一个单词,即“when”,并为其计算位置embedding向量。位置embedding有两个公式:

bd2df584-4c68-11ee-a25d-92fbcf53809c.png

第一个单词“when”的POS值将为零,因为它对应于序列的起始索引。此外,i的值(取决于是偶数还是奇数) 决定了用于计算PE值的公式。维度值表示embedding向量的维度,在我们的情形下,它是5。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bd56b302-4c68-11ee-a25d-92fbcf53809c.png

继续计算位置embedding,我们将为下一个单词“you” 分配pos值1,并继续为序列中的每个后续单词递增pos值。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bdb83dac-4c68-11ee-a25d-92fbcf53809c.png

找到位置embedding后,我们可以将其与原始单词embedding联系起来。

bdcd7744-4c68-11ee-a25d-92fbcf53809c.png

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png 我们得到的结果向量是e1+p1,e2+p2,e3+p3等诸如此类的embedding和。  

be170b52-4c68-11ee-a25d-92fbcf53809c.png

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png Transformer架构的初始部分的输出将在之后用作编码器的输入。  

编码器

在编码器中,我们执行复杂的操作,涉及查询(query),键(key)和值(value)的矩阵。这些操作对于转换输入数据和提取有意义的表示形式至关重要。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

be2dc78e-4c68-11ee-a25d-92fbcf53809c.png

在多头注意力(multi-head attention)机制内部,单个注意层由几个关键组件组成。这些组件包括: bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

be4f758c-4c68-11ee-a25d-92fbcf53809c.png

请注意,黄色框代表单头注意力机制。让它成为多头注意力机制的是多个黄色盒子的叠加。出于示例的考虑,我们将仅考虑一个单头注意力机制,如上图所示。

Step 1 (Performing Single Head Attention)

注意力层有三个输入

Query

Key

Value

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

be8336e2-4c68-11ee-a25d-92fbcf53809c.png

在上面提供的图中,三个输入矩阵(粉红色矩阵) 表示从将位置embedding添加到单词embedding矩阵的上一步获得的转置输出。另一方面,线性权重矩阵(黄色,蓝色和红色) 表示注意力机制中使用的权重。这些矩阵的列可以具有任意数量的维数,但是行数必须与用于乘法的输入矩阵中的列数相同。在我们的例子中,我们将假设线性矩阵(黄色,蓝色和红色) 包含随机权重。这些权重通常是随机初始化的,然后在训练过程中通过反向传播和梯度下降等技术进行调整。所以让我们计算(Query, Key and Value metrices): bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bea157ee-4c68-11ee-a25d-92fbcf53809c.png

一旦我们在注意力机制中有了query, key, 和value矩阵,我们就继续进行额外的矩阵乘法。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.pngbbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bee1c0fe-4c68-11ee-a25d-92fbcf53809c.png

bee72df0-4c68-11ee-a25d-92fbcf53809c.png

bf38a914-4c68-11ee-a25d-92fbcf53809c.png

bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png现在,我们将结果矩阵与我们之前计算的值矩阵相乘: bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bf5daf5c-4c68-11ee-a25d-92fbcf53809c.png

如果我们有多个头部注意力,每个注意力都会产生一个维度为(6x3) 的矩阵,那么下一步就是将这些矩阵级联在一起。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bf9142b8-4c68-11ee-a25d-92fbcf53809c.png

在下一步中,我们将再次执行类似于用于获取query, key, 和value矩阵的过程的线性转换。此线性变换应用于从多个头部注意获得的级联矩阵。 bbe7bf8e-4c68-11ee-a25d-92fbcf53809c.png

bfb91e8c-4c68-11ee-a25d-92fbcf53809c.png

编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4304

    浏览量

    62417
  • Transformer
    +关注

    关注

    0

    文章

    141

    浏览量

    5980

原文标题:图解!逐步理解Transformers的数学原理

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    手机通信原理解析

    `手机通信原理解析:第 1 章    无线通信原理第2 章    移动通信系统第3 章    移动通信系统的多址接入技术第4 章    移动通信系统的语音编码第5 章 GSM移动通信系统的数字
    发表于 12-14 14:31

    如何更改ABBYY PDF Transformer+界面语言

    在安装ABBYY PDF Transformer+时会让您选择界面语言。此语言将用于所有消息、对话框、按钮和菜单项。在特殊情况下,您可能需要在安装完成后更改界面语言以适应需求,方法其实很简单,本文
    发表于 10-11 16:13

    定位技术原理解析

    【追踪嫌犯的利器】定位技术原理解析(4)
    发表于 05-04 12:20

    锂电池基本原理解析

    【锂知道】锂电池基本原理解析:充电及放电机制电池充电最重要的就是这三步:第一步:判断电压
    发表于 09-15 06:47

    虚拟存储器部件原理解析

    虚拟存储器部件原理解析
    发表于 04-15 14:25 3112次阅读

    触摸屏的应用与工作原理解析

    触摸屏的应用与工作原理解析
    发表于 02-08 02:13 38次下载

    解析Transformer中的位置编码 -- ICLR 2021

    引言 Transformer是近年来非常流行的处理序列到序列问题的架构,其self-attention机制允许了长距离的词直接联系,可以使模型更容易学习序列的长距离依赖。由于其优良的可并行性以及可观
    的头像 发表于 04-01 16:07 1.3w次阅读
    <b class='flag-5'>解析</b><b class='flag-5'>Transformer</b>中的位置编码 -- ICLR 2021

    史密斯圆图和阻抗匹配原理解析

    史密斯圆图和阻抗匹配原理解析
    的头像 发表于 11-02 20:16 1950次阅读

    什么是晶振 晶振工作原理解析

    什么是晶振 晶振工作原理解析
    的头像 发表于 12-30 17:13 4265次阅读
    什么是晶振 晶振工作原<b class='flag-5'>理解析</b>

    基于Transformer的目标检测算法

    掌握基于Transformer的目标检测算法的思路和创新点,一些Transformer论文涉及的新概念比较多,话术没有那么通俗易懂,读完论文仍然不理解算法的细节部分。
    发表于 08-16 10:51 632次阅读
    基于<b class='flag-5'>Transformer</b>的目标检测算法

    BEV人工智能transformer

    BEV人工智能transformer  人工智能Transformer技术是一种自然语言处理领域的重要技术,广泛应用于自然语言理解、机器翻译、文本分类等任务中。它通过深度学习算法从大规模语料库中自动
    的头像 发表于 08-22 15:59 830次阅读

    基于Transformer的目标检测算法难点

    理解Transformer背后的理论基础,比如自注意力机制(self-attention), 位置编码(positional embedding),目标查询(object query)等等,网上的资料比较杂乱,不够系统,难以通过自学做到深入
    发表于 08-24 11:19 297次阅读
    基于<b class='flag-5'>Transformer</b>的目标检测算法难点

    大模型基础Transformer结构的原理解析

    该研究的结果适用于一般数据集,可以扩展到交叉注意力层,并且研究结论的实际有效性已经通过彻底的数值实验得到了验证。该研究建立一种新的研究视角,将多层 transformer 看作分离和选择最佳 token 的 SVM 层次结构。
    发表于 09-07 10:50 1091次阅读
    大模型基础<b class='flag-5'>Transformer</b>结构的原<b class='flag-5'>理解析</b>

    更深层的理解视觉Transformer, 对视觉Transformer的剖析

    最后是在ADE20K val上的LeaderBoard,通过榜单也可以看出,在榜单的前几名中,Transformer结构依旧占据是当前的主力军。
    的头像 发表于 12-07 09:39 734次阅读
    更深层的<b class='flag-5'>理解</b>视觉<b class='flag-5'>Transformer</b>, 对视觉<b class='flag-5'>Transformer</b>的剖析

    Transformer语言模型简介与实现过程

    任务,随后迅速扩展到其他NLP任务中,如文本生成、语言理解、问答系统等。本文将详细介绍Transformer语言模型的原理、特点、优势以及实现过程。
    的头像 发表于 07-10 11:48 1293次阅读