文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

快速学会一个算法,Transformer

2024-11-29 20:00

关注

今天给大家分享一个强大的算法模型,Transformer

Transformer 是近年来在自然语言处理(NLP)领域取得显著成果的一种深度学习模型,最初由 Vaswani et al. 在 2017 年提出。

与传统的序列模型(如 RNN 和 LSTM)相比,Transformer 的主要优势在于其能够更好地处理长距离依赖关系,同时显著提高了计算效率。

Transformer 架构

Transformer 模型的核心由编码器(Encoder)和解码器(Decoder)两部分组成,每部分由多个相同的层(Layer)堆叠而成。

图片

编码器

编码器部分由六个相同的层(来自原始论文)堆叠而成,每层分为 2 个子层。

每个子层后面都紧跟着一个残差连接(Residual Connection)和层归一化(Layer Normalization)。

图片

下面,我们来对编码器的组件进行详细的描述。

  1. 词向量

原始形式的单词对机器来说毫无意义。

词向量是将离散的词表示成连续的向量,以捕捉词与词之间的语义关系。

词向量通过嵌入层(Embedding Layer)实现,将每个词映射到一个高维的向量空间中。

这使得模型可以处理输入序列中的词,并在训练过程中学习词与词之间的语义关系。

图片

  1. 位置编码

由于 Transformer 不像 RNN 那样具有顺序信息,因此需要显式地将位置信息加入到输入中。

位置编码通过将每个位置映射到一个向量,提供了词在序列中的位置信息。

常见的方法是使用正弦和余弦函数来生成位置编码。

其中,pos 是位置,i 是维度索引,d 是嵌入维度。位置编码将被添加到词向量中,使得每个词的表示包含了位置信息。

图片

  1. 自注意力
    自注意力机制是 Transformer 的核心组件,它通过计算输入序列中每个位置与其他位置之间的注意力权重,来捕捉序列中的长距离依赖关系。
    具体步骤如下:

图片

  1. 残差连接和层归一化
    残差连接和层归一化用于稳定训练过程,并加速模型的收敛。
    残差连接将子层的输入直接添加到输出中,使得每一层都可以直接访问输入信号。
    层归一化则对每一层的输出进行标准化,减少内部协变量偏移。
  2. 前馈层
    前馈层是一个简单的两层全连接神经网络,用于对每个位置的表示进行进一步的非线性变换。
    它在每个位置上独立操作,不共享参数。
  3. 输出
    编码器的输出是一个大小为 (N, T, d) 的张量,其中每个位置的向量表示是经过多层编码器后的最终表示。
    这些表示将被传递到解码器或用于下游任务(如分类、翻译等)。

解码器

解码器层除了包含与编码器层相同的两个子层外,还额外包含一个用于处理编码器输出与解码器输入之间关系的多头注意力机制。

具体来说,解码器层包括以下三个子层:

同样,每个子层后面都有残差连接和层归一化。

图片

  1. Masked 多头自注意力子层


在标准的多头注意力机制中,每个位置的查询(Query)会与所有位置的键(Key)进行点积计算,得到注意力分数,然后与值(Value)加权求和,生成最终的输出。

然而,在解码器中,生成序列时不能访问未来的信息。因此需要使用掩码(Mask)机制来屏蔽掉未来位置的信息,防止信息泄露。

具体来说,在计算注意力得分时,对未来的位置进行屏蔽,将这些位置的得分设为负无穷大,使得 Softmax 归一化后的权重为零。

图片

  1. 编码器-解码器注意力子层

编码器-解码器多头注意力子层在 Transformer 解码器中起到了关键作用,它使解码器能够有效地关注输入序列(编码器的输出),从而在生成序列时参考原始输入信息。

具体来说,编码器-解码器多头注意力的基本思想是通过对编码器输出(Key 和 Value)和解码器当前输入(Query)来生成新的表示。

这种机制使得解码器能够在生成序列时动态地选择性关注输入序列的不同部分。

图片

  1. 前馈神经网络子层
    这是一个完全连接的前馈神经网络,通常由两个线性变换和一个ReLU激活函数组成。
    它在每个位置上独立地应用相同的网络,处理每个位置的表示。
来源:程序员学长内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯