机器学习周报(transformer学习1)

devtools/2024/11/18 9:33:00/

文章目录

    • 摘要
    • Abstract
  • 1 Transformer
    • 1.1 数据部分,输入处理和Embedding
    • 1.2 位置编码
    • 总结

摘要

本文介绍了Transformer模型的输入结构,包括Embedding层和位置编码的作用与实现。深入了解如何将原始数据转换为模型能够处理的嵌入向量,并探讨了位置编码在捕获序列信息中的重要性。通过一个具体的实例,学习如何对数据进行处理以适应Transformer的输入要求,并利用编造的数据帮助理解各部分的计算过程和工作原理。

Abstract

This article introduces the input structure of the Transformer model, including the roles and implementation of the Embedding layer and positional encoding. It delves into how raw data is transformed into embedding vectors that the model can process and explores the importance of positional encoding in capturing sequence information. Through a specific example, it demonstrates how to preprocess data to meet the input requirements of the Transformer and uses fabricated data to clarify the calculation processes and operational principles of each component.

1 Transformer

Transformer整体结构图

在这里插入图片描述

Transformer 是 seq2seq 模型,分为Encoder和Decoder两大部分,如上图,Encoder部分是由6个相同的encoder组成,Decoder部分也是由6个相同的decoder组成,与encoder不同的是,每一个decoder都会接受最后一个encoder的输出。

在这里插入图片描述

其中,编码组件由多层编码器(Encoder)组成(在论文中作者使用了 6 层编码器,在实际使用过程中你可以尝试其他层数)。解码组件也是由相同层数的解码器(Decoder)组成(在论文也使用了 6 层)

在这里插入图片描述

编码器的输入会先流入 Self-Attention 层。它可以让编码器在对特定词进行编码时使用输入句子中的其他词的信息(可以理解为:当我们翻译一个词时,不仅只关注当前的词,而且还会关注其他词的信息)。然后,Self-Attention 层的输出会流入前馈网络。每个编码器的结构都是相同的,但是它们使用不同的权重参数。

解码器也有编码器中这两层,但是它们之间还有一个注意力层(即 Encoder-Decoder Attention),其用来帮忙解码器关注输入句子的相关部分(类似于 seq2seq 模型中的注意力)。

在这里插入图片描述

1.1 数据部分,输入处理和Embedding

我们以一个中英翻译为例:

在这里插入图片描述

将数据进行预处理:

  1. 将字符串转化为数字编码
  2. 按句子长度进行过滤
  3. 添加起始符和结束符
  4. mini_batch,padding填充

在这里插入图片描述
选其中一个batch研究

进行Embedding,将每一个字符都用一个4维的向量表示

在这里插入图片描述

1.2 位置编码

到目前为止,我们所描述的模型中缺少一个东西:表示序列中词顺序的方法。为了解决这个问题,Transformer 模型为每个输入的词嵌入向量添加一个向量。这些向量遵循模型学习的特定模式,有助于模型确定每个词的位置,或序列中不同词之间的距离。

在这里插入图片描述

位置编码公式

P E ( p o s , 2 i ) = s i n ( p o s / 1000 0 2 i / d m o d e l ) PE_{(pos,2i)}=sin(pos/10000^{2i/d_{model}}) PE(pos,2i)=sin(pos/100002i/dmodel)
P E ( p o s , 2 i + 1 ) = c o s ( p o s / 1000 0 2 i / d m o d e l ) PE_{(pos,2i+1)}=cos(pos/10000^{2i/d_{model}}) PE(pos,2i+1)=cos(pos/100002i/dmodel)

c o s ( α + β ) = c o s ( α ) c o s ( β ) − s i n ( α ) s i n ( β ) cos(\alpha+\beta)=cos(\alpha)cos(\beta)-sin(\alpha)sin(\beta) cos(α+β)=cos(α)cos(β)sin(α)sin(β)

s i n ( α + β ) = s i n ( α ) c o s ( β ) + c o s ( α ) s i n ( β ) sin(\alpha+\beta)=sin(\alpha)cos(\beta)+cos(\alpha)sin(\beta) sin(α+β)=sin(α)cos(β)+cos(α)sin(β)

其中,pos表示位置,i表示维度。上面的函数使得模型可以学习到 token 之间的相对位置关系:任意位置的 P E ( p o s + k ) PE_{(pos+k)} PE(pos+k)都可以被 P E ( p o s ) PE_{(pos)} PE(pos) P E ( k ) PE_{(k)} PE(k)的线性函数表示:

P E ( p o s + k , 2 i ) = P E ( p o s , 2 i ) × P E ( k , 2 i + 1 ) + P E ( p o s , 2 i + 1 ) × P E ( k , 2 i ) PE_{(pos+k,2i)}=PE_{(pos,2i)}×PE_{(k,2i+1)}+PE_{(pos,2i+1)}×PE_{(k,2i)} PE(pos+k,2i)=PE(pos,2i)×PE(k,2i+1)+PE(pos,2i+1)×PE(k,2i)
P E ( p o s + k , 2 i + 1 ) = P E ( p o s , 2 i + 1 ) × P E ( k , 2 i + 1 ) − P E ( p o s , 2 i ) × P E ( k , 2 i ) PE_{(pos+k,2i+1)}=PE_{(pos,2i+1)}×PE_{(k,2i+1)}-PE_{(pos,2i)}×PE_{(k,2i)} PE(pos+k,2i+1)=PE(pos,2i+1)×PE(k,2i+1)PE(pos,2i)×PE(k,2i)

在这里插入图片描述
该图是一个512维的Embedding向量,i=dim_index // 2得到 0 0 1 1 … ,255

在这里插入图片描述

可以清晰地看出pos=4 i=0所在位置的数值的位置编码跟那四个数值有关系

总结

本文通过分析Transformer的输入结构及其核心组件Embedding层和位置编码,理解Transformer如何处理序列数据。示例数据的引入,使得各个模块的作用及其计算细节更加清晰。掌握这些基础知识,不仅有助于理解Transformer的内部机制,也为后续的模型优化和应用打下基础。总体而言,Embedding和位置编码是理解和运用Transformer的关键。


http://www.ppmy.cn/devtools/134926.html

相关文章

树形dp总结

这类题型在 dp 中很常见,于是做一个总结吧!!! 最经典的题:没有上司的舞会 传送门:没有上司的舞会 - 洛谷 状态表示: dp[i][0] 为 以 i 为根的子树中,选择 i 节点的最大欢乐值 d…

git push时报错! [rejected] master -> master (fetch first)error: ...

错误描述:在我向远程仓库push代码时,即执行 git push origin master命令时发生的错误。直接上错误截图。 错误截图 错误原因: 在网上查了许多资料,是因为Git仓库中已经有一部分代码,它不允许你直接把你的代码覆盖上去…

Git_2024/11/16

文章目录 前言Git是什么核心概念工作流程常见术语解读Git的优势 Git与SVN对比SVNGit总结 Git配置流程及指令环境配置获取Git仓库本地初始化远程克隆 工作目录、暂存区、版本库文件的两种状态本地仓库操作远程仓库操作Git分支Git标签IntelliJ IDEA使用Git回滚代码 GitHub配置流程…

StarRocks Summit Asia 2024 全部议程公布!

随着企业数字化转型深入,云原生架构正成为湖仓部署的新标准。弹性扩展、资源隔离、成本优化,帮助企业在云上获得了更高的灵活性和效率。与此同时,云原生架构也为湖仓与 AI 的深度融合奠定了基础。 在过去一年,湖仓技术与 AI 的结…

ssm105基于JAVAEE技术校园车辆管理系统+jsp(论文+源码)_kaic

毕 业 设 计(论 文) 题目:校园车辆管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本校园车辆管理系统…

【论文解读CVPR2024】Scaffold-GS: Structured 3D Gaussians for View-Adaptive Rendering

论文:https://arxiv.org/abs/2312.00109https://arxiv.org/abs/2312.00109 代码:https://city-super.github.io/scaffold-gs/https://city-super.github.io/scaffold-gs/ Overview TL;DR: 我们提出了 Scaffold-GS,它利用锚点分布局部的 3D …

Matlab深度学习(一)——如何构建一个卷积神经网络

1.1 CNN的核心 —— 卷积 我们以二维滑动卷积着重说明。与我们的滑动窗异常值检测类似,但滑动卷积涉及三个矩阵:第一个矩阵通常尺寸大且固定不动,在这称之为“输入矩阵”;第二个矩阵尺寸小,在输入矩阵上以从左到右&…

antdesign对话框输出html格式

antdesign对话框this. i n f o 、 t h i s . info、this. info、this.success、 this. e r r o r 、 t h i s . error、this. error、this.warning、this.KaTeX parse error: Expected }, got EOF at end of input: … this.message.success(‘文件上传成功’) this.handleReLo…