5分钟速览深度学习经典论文 —— attention is all you need
《Attention is All You Need》是一篇极其重要的论文,它提出的 Transformer 模型和自注意力机制不仅推动了 NLP 领域的发展,还对整个深度学习领域产生了深远影响。这篇论文的重要性体现在其开创性、技术突破和广泛应用上,是每一位深度学习研究者和从业者必读的经典之作
1. 论文背景与动机
研究背景
• 在 2017 年之前,序列建模任务(如机器翻译)主要依赖于递归神经网络(RNN)和卷积神经网络(CNN)。
• RNN 和 CNN 存在一些问题:
• RNN 难以并行化,训练速度慢。
• CNN 难以捕捉长距离依赖关系。
研究动机
• 提出一种完全基于注意力机制(Attention Mechanism)的模型,摒弃递归和卷积结构,解决上述问题。
• 目标是通过并行化和长距离依赖捕捉,提高模型效率和性能。
2. 核心贡献
论文的主要贡献包括:
- 提出 Transformer 模型:完全基于自注意力机制(Self-Attention)的架构。
- 引入多头注意力机制(Multi-Head Attention):通过多个注意力头捕捉不同的特征表示。
- 位置编码(Positional Encoding):通过添加位置信息,弥补自注意力机制无法感知序列顺序的缺陷。
- 在机器翻译任务上取得显著性能提升:在 WMT 2014 英德和英法翻译数据集上取得了当时的最优结果。
3. 模型架构
Transformer 模型由编码器(Encoder)和解码器(Decoder)组成,每个部分由多个相同的层堆叠而成。
编码器(Encoder)
• 每层包含两个子层:
- 多头自注意力机制(Multi-Head Self-Attention):捕捉输入序列中元素之间的关系。
- 前馈神经网络(Feed-Forward Network):对每个位置的表示进行非线性变换。
• 每个子层后使用残差连接(Residual Connection)和层归一化(Layer Normalization)。
解码器(Decoder)
• 每层包含三个子层:
- 掩码多头自注意力机制(Masked Multi-Head Self-Attention):防止解码器关注未来信息。
- 多头注意力机制(Multi-Head Attention):关注编码器的输出。
- 前馈神经网络(Feed-Forward Network)。
• 同样使用残差连接和层归一化。
位置编码(Positional Encoding)
• 由于 Transformer 没有递归或卷积结构,它需要额外的位置信息来感知序列顺序。
• 使用正弦和余弦函数生成位置编码,并将其添加到输入嵌入中。
4. 关键技术
自注意力机制(Self-Attention)
• 通过 Query、Key、Value 计算输入序列中元素之间的关联性。
• 公式:
Attention ( Q , K , V ) = Softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{Softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=Softmax(dkQKT)V
其中 d k d_k dk 是 Key 的维度。
多头注意力机制(Multi-Head Attention)
• 使用多个注意力头捕捉不同的特征表示。
• 公式:
MultiHead ( Q , K , V ) = Concat ( head 1 , … , head h ) W O \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h)W^O MultiHead(Q,K,V)=Concat(head1,…,headh)WO
其中每个头独立计算注意力。

训练与优化
• 使用 Adam 优化器,动态调整学习率。
• 使用标签平滑(Label Smoothing)防止过拟合。
5. 实验与结果
数据集
• WMT 2014 英德和英法翻译数据集。
性能
• 在英德翻译任务上,BLEU 得分为 28.4,比当时的最优模型提高了 2 BLEU。
• 在英法翻译任务上,BLEU 得分为 41.8,训练成本仅为其他模型的 1/4。
消融实验
• 验证了多头注意力机制、位置编码和模型深度对性能的影响。
6. 讨论与未来工作
• Transformer 模型的并行化能力使其在大规模数据集上表现优异。
• 自注意力机制的计算复杂度随序列长度平方增长,限制了其在长序列任务中的应用。
• 未来可以探索更高效的自注意力机制和更大规模的预训练模型。
7. 总结
“Attention is All You Need” 提出了 Transformer 模型,彻底改变了序列建模领域。其核心创新——自注意力机制和多头注意力机制——为后续研究(如 BERT、GPT 等)奠定了基础。这篇论文不仅在理论上具有重要价值,还在实际应用中取得了显著成果,成为现代深度学习的里程碑之一。
相关文章:
5分钟速览深度学习经典论文 —— attention is all you need
《Attention is All You Need》是一篇极其重要的论文,它提出的 Transformer 模型和自注意力机制不仅推动了 NLP 领域的发展,还对整个深度学习领域产生了深远影响。这篇论文的重要性体现在其开创性、技术突破和广泛应用上,是每一位深度学习研究…...
Cursor + IDEA 双开极速交互
相信很多开发者朋友应该和我一样吧,都是Cursor和IDEA双开的开发模式:在Cursor中快速编写和生成代码,然后在IDEA中进行调试和优化 在这个双开模式的开发过程中,我就遇到一个说大不大说小不小的问题: 得在两个编辑器之间来回切换查…...
HDFS的设计架构
HDFS 是 Hadoop 生态系统中的分布式文件系统,设计用于存储和处理超大规模数据集。它具有高可靠性、高扩展性和高吞吐量的特点,适合运行在廉价硬件上。 1. HDFS 的设计思想 HDFS 的设计目标是解决大规模数据存储和处理的问题,其核心设计思想…...
为wordpress自定义一个留言表单并可以在后台进行管理的实现方法
要为WordPress添加留言表单功能并实现后台管理,你可以按照以下步骤操作: 1. 创建留言表单 首先,你需要创建一个留言表单。可以使用插件(如Contact Form 7)或手动编写代码。 使用Contact Form 7插件 安装并激活Contact Form 7插件。 创建…...
tauri-plugin-shell插件将_blank的a标签用浏览器打开了,,,解决办法
不要使用这个插件,这个插件默认会将网页中a标签为_blank的使用默认浏览器打开,但是这种做法在我的程序里不是很友好,我需要自定义这种行为,当我点击我自己的链接的时候,使用默认浏览器打开,当点击别的链接的…...
【大模型基础_毛玉仁】1.1 基于统计方法的语言模型
【大模型基础_毛玉仁】1.1 基于统计方法的语言模型 1.语言模型基础1.1 基于统计方法的语言模型1.1.1 n-grams 语言模型1.1.2 n-grams 的统计学原理 1.语言模型基础 语言是概率的。语言模型(LanguageModels, LMs)旨在准确预测语言符号的概率。 将按照语…...
使用 Docker 部署 RabbitMQ 并实现数据持久化
非常好!以下是一份完整的 Docker 部署 RabbitMQ 的博客文档,包含从安装到问题排查的详细步骤。你可以直接将其发布到博客中。 使用 Docker 部署 RabbitMQ 并实现数据持久化 RabbitMQ 是一个开源的消息队列系统,广泛应用于分布式系统中。使用…...
Pandas的数据转换函数
Pandas的数据转换函数:map, apply, applymap 参数描述map只用于Series,实现每个值->值的映射apply用于Series实现每个值的处理,用于DataFrame实现某个轴的Series的处理applymap只能用于DataFrame, 用于处理该DataFrame的每个元素 1. map用于Series值…...
影刀 RPA 实战开发阶段总结
目录 1. 影刀 RPA 官方教程的重要性 1.1系统全面的知识体系 1.2 权威准确的技术指导 1.3 贴合实际的案例教学 1.4高效的学习方法引导 2. 官方视频教程与实战 2.1 官方视频教程:奠定坚实基础 2.2 实战:拓展应用视野 3. 往期实战博文导航 3.1 初级…...
Linux系统上安装kafka
目录 1. 安装Java环境 2. 下载和解压Kafka 3. 配置Kafka 4. 启动ZooKeeper和Kafka 5. 测试Kafka 6. 停止服务 7.常见问题 1. 安装Java环境 Kafka依赖Java运行环境(JDK 8或更高版本): # 安装OpenJDK(推荐) yum…...
DeepSeek如何快速开发PDF转Word软件
一、引言 如今,在线工具的普及让PDF转Word成为了一个常见需求,常见的PDF转Word工具有收费的WPS,免费的有PDFGear,以及在线工具SmallPDF、iLovePDF、24PDF等。然而,大多数免费在线转换工具存在严重隐私风险——文件需上…...
虚拟机 | Ubuntu图形化系统: open-vm-tools安装失败以及实现文件拖放
系列文章目录 虚拟机 | Ubuntu 安装流程以及界面太小问题解决 文章目录 系列文章目录虚拟机 | Ubuntu 安装流程以及界面太小问题解决 前言一、VMware Tools 和 open-vm-tools 是什么1、VMware Tools2、open-vm-tools 二、推荐使用open-vm-tools(简单)1、…...
Mysql-经典故障案例(1)-主从同步由于主键问题引发的故障
故障报错 Could not execute Write_rows event on table test.users; Duplicate entry 3 for key PRIMARY, Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the events master log mysql-bin.000031, end_log_pos 3297这是由于从库存在与主库相同主键值,…...
Linux下学【MySQL】中如何实现:多表查询(配sql+实操图+案例巩固 通俗易懂版~)
每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论: 本章是MySQL篇中,非常实用性的篇章,相信在实际工作中对于表的查询,很多时候会涉及多表的查询,在多表查询…...
ubuntu局域网部署stable-diffusion-webui记录
需要局域网访问,如下设置: 过程记录查看源码: 查看源码,原来修改参数:--server-name 故启动: ./webui.sh --server-name0.0.0.0 安装下载记录: 快速下载可设置: export HF_ENDPOI…...
最基于底层的运算符——位运算符
位运算符是直接对二进制位(bit)进行操作的运算符,它们在底层开发、算法优化和特定场景(如位掩码、数据压缩)中非常高效。以下是常见位运算符的详解、使用技巧及注意事项: 一、六大核心位运算符 1. 按位与&…...
代码随想录算法训练营第三十二天 | 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
509. 斐波那契数 力扣题目链接(opens new window) 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n -…...
3-9 WPS JS宏单元格复制、重定位应用(拆分单表到多表)
************************************************************************************************************** 点击进入 -我要自学网-国内领先的专业视频教程学习网站 *******************************************************************************************…...
C++ 中前置 `++` 与后置 `++` 运算符重载
C 中前置 与后置 运算符重载的设计原理与使用规范 1. 为什么后置 返回对象而不是引用? 原因: 后置 需要返回自增前的旧值,但旧值在运算后已被修改。为了保存旧值,必须在函数内部创建一个临时对象(拷贝原对象的状态…...
Scala:case class(通俗易懂版)
1. case class 是什么? 想象你要做一个表格,比如学生信息表,每一行需要填:姓名、年龄、成绩。 在代码里,这种“表格的一行”就是一个数据对象,case class 就是帮你快速创建这种“表格行”的工具。 普通方…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

