【论文阅读笔记】Transformer——《Attention Is All You Need》

news/2024/11/8 19:59:51/文章来源:https://www.cnblogs.com/marti88414/p/18535710

论文地址:https://arxiv.org/pdf/1706.03762
代码地址:https://github.com/huggingface/transformers

目录
  • Introduction
  • Background
  • Model Architecture
    • Encoder
      • LN and BN
    • Decoder
    • Attention
    • Multi-head Attention
    • Feed-Forward
    • Postion Encoding

Introduction

  1. RNN,LSTM 处理时序信息的局限性:无法并行,部分历史信息会在后面丢弃
  2. 编码器与解码器结构
  3. proposed transformer:纯注意力机制

Background

  1. CNN 替换 RNN:无法对时序信息进行建模——自注意力可以解决;CNN 可以多个输出通道——多头注意力机制
  2. Memory-Network

Model Architecture

图 1:Transformer 架构

  • Encoder:$\text{input}(x_1,...,x_n) \rightarrow \text{output: } \boldsymbol{z}=(z_1,...,z_n) $,其中 \(z_t(1 \le t \le n)\)\(x_t\) 的向量表示
  • Decoder:$\text{input}(z_1,...,z_n) \rightarrow \text{output: } \boldsymbol{y}=(y_1,...,y_m) $:一个一个生成(auto-regression),上一时刻输出为下一时刻输入

Encoder

2 个子层:\(LayerNorm(x+Sublayer(x)) * 2\),每一层输出均为 512 维

LN and BN

  1. 如果 feature 长度不同:BN 更加不稳定!
  1. 预测过程
  • BN:要记录全局的 \(\mu\)\(\sigma\),如果有的 feature 很长训练没见过,\(\mu\)\(\sigma\) 就不合适了
  • LN:每个样本内部计算,不受全局影响,受长度影响很小

Decoder

3 个字层:\(LayerNorm(x+Sublayer(x)) * 3\),自回归

Attention

图 2:dot-product attention 结构

其中 \(Q,K\)\(d_k\) 维,\(V\)\(d_v\) 维,attention计算公式:

\[\text{Attention}(Q,K,V)=\text{softmax}(\frac{QK^T}{\sqrt{d_k}})V \]

为什么是 scaled dot-product attention?

  1. 因为点乘非常简单,两次矩阵乘法易于并行计算
  2. \(d_k\) 比较大,\(\text{softmax}(QK^T)\) 分布发散,梯度比较小收敛慢

Mask 操作
\(QK^T\) 后将 \(t\) 位置之后变为很小的负数(如\(-1e10\)),softmax 后为 0

Multi-head Attention

能够学习到不同的投影,不同特征。计算公式如下:

\[\text{MultiHead}(Q,K,V)=\text{Concat}(head_1,...,head_n)W^o \\ where \ \ \ head_i=\text{Attention}(QW_i^Q,KW_i^K,VW_i^V) \]

Feed-Forward

\[\text{FFN}(x)=max(0,xW_1+b_1)W_2+b_2 \]

Postion Encoding

加入时序信息:

\[\text{PE}(pos,2i)=\sin(pos/10000^{2i/d}) \]

\[\text{PE}(pos,2i+1)=\cos(pos/10000^{2i/d}) \]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/828991.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Trivy : 容器安全利器

在当今数字化时代,容器化技术已经成为软件开发和部署的重要组成部分。然而,随着容器数量的增加,安全问题也日益突出。为了确保容器环境的安全,我们需要一款强大的工具来检测容器中的漏洞。今天,我将为大家介绍一款优秀的容器漏洞扫描工具:Trivy Container Scanner。本文将…

Hive3.1.2搭建文档包含详细步骤及相关截图以及常见问题解决

hive-3.1.2分布式搭建文档 1、下载,上传,解压,配置环境变量# 1、解压(解压到上级目录) tar -zxvf apache-hive-3.1.2-bin.tar.gz -C..# 2、重名名 mv apache-hive-3.1.2-bin hive-3.1.2# 3、配置环境变量 vim /etc/profile# 4、在最后增加配置 export HIVE_HOME=/usr/loca…

dbeaver连接MySQL出现了 Public Key Retrieval is not allowed 错误

问题现象出现这个错误的原因 错误提示“Public Key Retrieval is not allowed”通常出现在尝试使用SSL(Secure Sockets Layer)连接到MySQL数据库时。这可能是由于以下原因之一导致的:MySQL服务器配置:MySQL服务器可能没有正确配置以允许公钥检索。 检查MySQL服务器的my.cnf…

进销存系统是什么?企业如何用好进销存系统?

很多老板都知道,面对激烈的竞争环境,进销存管理已经成为企业运营中不可或缺的一部分。无论是商品的采购、销售,还是库存管理,进销存系统的有效运作都直接影响着企业的资金流动、客户满意度以及市场竞争力。因此,如何高效地应用进销存管理系统,不仅关乎日常运营的顺畅,更…

【linux内核】 BCC Tools命令汇总

什么是BCC Tools 直接通过BPF指令编写BPF 程序是非常繁琐的事情,尤其对于运维人员来说,花70%的时间来编写一个BPF程序来实现一个检查点,不如花70%的时间来熟悉别人已经写好的BPF程序,并且把别人的BPF程序有效的串联起来形成自己分析问题的套路,等有了闲暇时间再去尝试突破…

20222311 2024-2025-1 《网络与系统攻防技术》实验四实验报告

1. 实验内容 1.1恶意代码文件类型标识、脱壳与字符串提取 对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下: (1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具; (2)使用…

进销存系统怎么实施?进销存的实施流程解析

很多老板都知道,企业的日常运营中,进销存管理是至关重要的核心环节之一。它涉及到企业的采购、库存、销售等多个方面,直接影响企业的资金流动、库存控制及客户满意度。因此,如何有效实施进销存管理系统,已成为许多企业提升运营效率、降低成本、优化资源配置的重要任务。 随…

解决centos7.9镜像问题

解决方案 https://wiki.bafangwy.com/doc/719/ 安装chrome(https://www.cnblogs.com/zxqblogrecord/p/13171516.html)时出现以下问题: failure: repodata/repomd.xml from centos7: [Errno 256] No more mirrors to try. http://mirror.centos.org/centos/7/os/x86_64/repodat…

【IDEA】IntelliJ IDEA远程开发:释放本地设备,打破资源与环境的限制

IDEA的远程开发 (Remote Development) 是指在不依赖于本地计算资源的情况下,通过连接远程服务器或虚拟机来进行代码编写、调试和构建的开发模式。这种方式主要通过 JetBrains Gateway 和 JetBrains Projector 提供支持,可以在本地 IDE 界面与远程环境紧密协作,帮助开发者解决…

有哪些免费的轻量级在线 CRM 系统?6款CRM系统盘点

对于许多中小型企业和初创公司而言,如何选择一款既能满足日常需求又具性价比的CRM系统很重要。通常来说,系统的成本是企业选型过程中不可忽视的因素,但在这么多的CRM系统中,各类CRM系统的功能与价格对比真的很容易让人眼花缭乱。 本文将盘6款值得关注的免费轻量级在线CRM系…