热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

10_从Attention层到Transformer网络

文章目录一、Multi-HeadAttention(多头)1.1Single-HeadSelf-Attention(单头Self-Attention)1.2Multi-HeadSe




文章目录


  • 一、Multi-Head Attention(多头)
    • 1.1 Single-Head Self-Attention(单头Self-Attention)
    • 1.2 Multi-Head Self-Attention(多头Self-Attention)
    • 1.3 Multi-Head Attention(多头Attention)

  • 二、Stacked Self-Attention Layers(堆叠)
    • 2.1 Self-Attention Layer+Dense Layer
    • 2.2 Stacked Self-Attention Layers
    • 2.3 Transformer's Encoder

  • 三、Stacked Attention Layers
    • 3.1 Stacked Attentions
    • 3.2 Transformer's Decoder

  • 四、Transformer
  • 五、Summary(总结)
    • 5.1 From Single-Head to Multi-Head
    • 5.2 Encoder Network of Transformer
    • 5.3 Decoder Network of Transformer
    • 5.4 Transformer Model


一、Multi-Head Attention(多头)

1.1 Single-Head Self-Attention(单头Self-Attention)

输入为一个序列(X1 ,X2 ,X3 ,···,Xm),Self-Attention层有三个参数矩阵(WQ ,WK ,WV),输出是一个序列(C:1 ,C:2 ,C:3 ,···,C:m


image-20210405143313713

1.2 Multi-Head Self-Attention(多头Self-Attention)


  • Using L single-head self-attentions (which do not share parameters.) (多头Self-Attention是由L个单头的Self-Attention组成的,它们各自有各自的参数,不共享参数)
    • A single-head self-attention has 3 parameter matrices: WQ ,WK ,WV 。(每个单头self-attention有三个参数矩阵)
    • Totally 3L parameters matrices.(因此的,多头self-attention共有3L个参数矩阵)

所有单头Self-Attention都有相同的输入,但是它们的参数矩阵各不相同,所以输出的C序列也各不相同,把 L个单头Self-Attention输出的序列做合并堆叠起来,作为多头Self-Attention的最终输出,堆叠起来的C向量变得更高。


  • Suppose single-head self-attentions’ outputs are dxm matrices. (如果每个单头的输出都是d×m的矩阵)
  • Multi-head’s output shape: (Ld) xm. (多头的输出是 (Ld)×m )

image-20210405150250498


1.3 Multi-Head Attention(多头Attention)


  • Using L single-head attentions (which do not share parameters.) (多头Self-Attention是由L个单头的Self-Attention组成的,它们各自有各自的参数,不共享参数)

  • Concatenating single-head attentions’ outputs. (合并堆叠单头attention的输出)

  • 输入为两个序列(X1 ,X2 ,X3 ,···,Xm),(X‘1 ,X’2 ,X‘3 ,···,Xt


image-20210405150828379
二、Stacked Self-Attention Layers(堆叠)

多头Self-Attention和全连接层搭建一个encoder网络


2.1 Self-Attention Layer+Dense Layer


  • 这几个全连接层是相同的,参数矩阵都是Wu
  • 搭建的是两层。
  • U:i 向量不仅仅依赖于Xi ,U:i 向量依赖于所有m个Xi 向量。改变任何Xi 向量,U:i 向量都会发生变化,对U:i 向量影响最大的还是Xi 向量。

image-20210405164946975


2.2 Stacked Self-Attention Layers

在这里插入图片描述


2.3 Transformer’s Encoder


  • 一个block有两层,一个是self-attention层和全连接层。
  • 输入是512×m的矩阵,输出也是512×m的矩阵
  • m是输入序列X的长度,每个X向量都是512维的
  • Transformer的encoder网络一共有6个blocks,每个block有两层,每个block都有自己的参数,block之间不共享参数
  • 最终的输出是512×m的矩阵,输出与输入的大小是一样的

image-20210405171218175


三、Stacked Attention Layers

3.1 Stacked Attentions


  • Transformer is a Seq2Seq model (encoder + decoder).
  • Encoder’s inputs are vectors X1 ,X2 ,X3 ,···,Xm
  • Decoder’s inputs are vectors X‘1 ,X‘2 ,X’3 ,···,X‘t
  • Transformer’s encoder contains 6 stacked blocks。(Transformer的encoder包含6个blocks)
  • 1 block 1 multi-head attention layer + 1 dense layer.(1个block包含两层)
    在这里插入图片描述

3.2 Transformer’s Decoder


  • decoder的一个block包含:Self-Attention层,Attention层,全连接层。

  • 这个block需要两个输入序列,两个序列都是512维的向量,两个序列的长度分别为m和t。
    在这里插入图片描述


四、Transformer

image-20210405193233464


五、Summary(总结)

5.1 From Single-Head to Multi-Head


  • Single-head self-attention can be combined to form a multi-head self-attention.
  • Single-head attention can be combined to form a multi-head attention.

在这里插入图片描述


5.2 Encoder Network of Transformer


  • 1 encoder block ≈ multi-head self-attention + dense.
  • Input shape: 512xm.
  • Output shape: 512xm.
  • Encoder network is a stack of 6 such blocks.(这些blocks之间不共享参数)

5.3 Decoder Network of Transformer


  • 1 decoder block ≈ multi-head self-attention + multi-head attention + dense.
  • Input shape: ( 512 x m,512 x t ).
  • Output shape:512 x t ;
  • Decoder network is a stack of 6 such blocks.(这些blocks之间不共享参数)

5.4 Transformer Model


  • Transformer is Seq2Seq model; it has an encoder and a decoder.(Transformer是Seq2Seq模型,它有encoder和decoder网络,可以用来做机器翻译)
  • Transformer model is not RNN.(Transformer不是RNN,它没有循环结构)
  • Transformer is based on attention and self-attention 。 (Transformer完全基于attention和全连接层,Transformer和RNN的输入输出大小完全一样)
  • Transformer outperforms all the state-of-the-art RNN models. (Transformer用在自然语言处理问题上效果非常好,可以完爆最好的RNN+attention,因此Transformer现在已经是业界标准)



推荐阅读
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 使用jqTransform插件美化表单
    jqTransform 是由 DFC Engineering 开发的一款 jQuery 插件,专用于美化表单元素,操作简便,能够美化包括输入框、单选按钮、多行文本域、下拉选择框和复选框在内的所有表单元素。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • poj 3352 Road Construction ... [详细]
  • PyTorch实用技巧汇总(持续更新中)
    空洞卷积(Dilated Convolutions)在卷积操作中通过在卷积核元素之间插入空格来扩大感受野,这一过程由超参数 dilation rate 控制。这种技术在保持参数数量不变的情况下,能够有效地捕捉更大范围的上下文信息,适用于多种视觉任务,如图像分割和目标检测。本文将详细介绍空洞卷积的计算原理及其应用场景。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 针对图像分类任务的训练方案进行了优化设计。通过引入PyTorch等深度学习框架,利用其丰富的工具包和模块,如 `torch.nn` 和 `torch.nn.functional`,提升了模型的训练效率和分类准确性。优化方案包括数据预处理、模型架构选择和损失函数的设计等方面,旨在提高图像分类任务的整体性能。 ... [详细]
  • 每日学术推荐:异质图神经网络在抽取式文档摘要中的应用研究
    在抽取式文档摘要任务中,学习跨句子关系是至关重要的一步。本文探讨了利用异质图神经网络来捕捉句子间复杂关系的有效方法。通过构建包含不同类型节点和边的图结构,模型能够更准确地识别和提取关键信息,从而生成高质量的摘要。实验结果表明,该方法在多个基准数据集上显著优于传统方法。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 本文探讨了如何在 Java 中将多参数方法通过 Lambda 表达式传递给一个接受 List 的 Function。具体分析了 `OrderUtil` 类中的 `runInBatches` 方法及其使用场景。 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • 在2019中国国际智能产业博览会上,百度董事长兼CEO李彦宏强调,人工智能应务实推进其在各行业的应用。随后,在“ABC SUMMIT 2019百度云智峰会”上,百度展示了通过“云+AI”推动AI工业化和产业智能化的最新成果。 ... [详细]
  • 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4277。作者:Bob Lee,日期:2012年9月15日。题目描述:给定n个木棍,求可以组成的不同三角形的数量,最多15根木棍。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
author-avatar
良心無悔1314_878
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有