热门标签 | 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现在已经是业界标准)



推荐阅读
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
  • LwebandStringTimeLimit:20001000MS(JavaOthers)MemoryLimit:6553665536K(JavaO ... [详细]
  • 本文整理了Java中org.apache.pig.backend.executionengine.ExecException.<init>()方法的一些代码 ... [详细]
  • 项目需要实现弹幕,网上参考了各种方法,最后觉得transform+transition实现的效果在移动设备上性能最好,在iphone6和红米4上测试,看不到 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了10分钟了解Android的事件分发相关的知识,希望对你有一定的参考价值。什么是事件分发?大家 ... [详细]
  • 动态多点××× 单云双HUB
    动态多点是一个高扩展的IPSEC解决方案传统的ipsecS2S有如下劣势1.中心站点配置量大,无论是采用经典ipsec***还是采用greoveripsec多一个分支 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
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社区 版权所有