当前位置: 首页 > news >正文

Transformer网络结构

一、整体结构

Transformer由编码器(Encoder)和解码器(Decoder)堆叠组成,整体结构如图:

输入序列 → [编码器] × N → 中间表示 → [解码器] × N → 输出序列
  • ​编码器​​:将输入序列映射为高阶特征表示(Context Vector)。
  • ​解码器​​:基于编码器输出和已生成部分输出,自回归地预测下一个元素。
  • ​堆叠层数​​:通常 N=6(基础版),复杂任务可增至 12 或 24 层。

 二、核心组件详解

1. ​​自注意力机制(Self-Attention)​

目标​​:捕捉序列中任意两个元素间的依赖关系,无论距离远近。

数学公式​​:

 Q(Query):当前元素的查询向量

K(Key): 序列中所有元素的键向量

V(Value): 序列中所有元素的值向量

缩放因子:防止点积结果过大导致梯度消失

工作流程:

1. 输入向量通过线性变换生成Q、K、V

2. 计算Q与所有K的点积得分

3. 缩放得分并应用softmax归一化

4. 加权求和V得到输出

2. 多头注意力(Multi-Head Attention)

动机​​:单一注意力头只能捕捉一种模式,多头可并行学习多种关系。

实现:

将Q、K、V分割为h个头(通常h=8)

每个头独立进行自注意力计算

拼接所有头的输出并通过线性变换融合

公式:

3. 位置编码(Positional Encoding)

问题:自注意力机制本身无法感知序列顺序

解决方案:为输入嵌入添加位置编码向量

pos:元素在序列中的位置

i:维度索引

4. 前馈神经网络(Feed-Forward Network, FFN)

作用:对每个位置的表示进行非线性变换

结构:两个线性层+ReLU激活

公式:

5. 残差连接与层归一化

残差连接:将子层输入直接加到输出,缓解梯度消失

层归一化:对每个样本的所有特征维度归一化,稳定训练过程

三、编码器与解码器差异

解码器工作流程:

1. 掩码自注意力:生成输出时无法看到未来信息

2. 编码器-解码器注意力:对齐输入与输出序列

3. 前馈网络:进一步特征提取

四、关键设计思想

1. 并行计算

自注意力可同时处理所有位置,远块于RNN的序列化计算

2. 长距离依赖

任意位置直接交互,解决RNN的梯度消失问题

3. 可解释性

注意力权重可视化分析模型关注区域

http://www.dtcms.com/a/194870.html

相关文章:

  • 大数据技术的主要方向及其应用详解
  • 一台入网的电脑有6要素, 机器名,mac,ip,俺码,网关,dns,分别有什么作用
  • 【人工智能】大模型的成长日记:从训练到应用的全面蜕变
  • 经典案例 | 筑基与跃升:解码制造企业产供销协同难题
  • spring学习->sprintboot
  • A2A vs MCP vs AG-UI
  • 基于协同过滤的文学推荐系统设计【源码+文档+部署】
  • Android SwitchButton 使用详解:一个实际项目的完美实践
  • 【C++】类与对象
  • activeMq 限制用户接收topic范围
  • SkyWalking的工作原理和搭建过程
  • pcie phy-电气层-gen1/2(TX)
  • 无人机减震模块运行与技术要点分析!
  • 关于如何本地启动xxl-job,并且整合SpringBoot
  • 华三H3C交换机配置NTP时钟步骤 示例
  • Oc语言学习 —— 重点内容总结与拓展(上)
  • 【Linux】Shell脚本中向文件中写日志,以及日志文件大小、数量管理
  • Spring 框架中适配器模式的五大典型应用场景
  • 职业院校物联网安装调试员(工业数智技术)实训解决方案
  • LeetCode 746 使用最小花费爬楼梯
  • matlab求解问题
  • Java注解详解:从入门到实战应用篇
  • Redisson分布式锁-锁的可重入、可重试、WatchDog超时续约、multLock联锁(一文全讲透,超详细!!!)
  • Qt窗口中消除边框的解决方法
  • HarmonyOS 开发之 —— 合理使用动画与转场
  • 【第七节】ESP32-S3 霍尔传感器应用实战:磁场检测与蜂鸣器控制
  • 消息扩散--tarjan缩点
  • 反转链表链表数据结构oj题(206)
  • 【未完】【GNN笔记】EvolveGCN:Evolving Graph Convolutional Networks for Dynamics Graphs
  • 测试:TestCafe - 判断按钮是否活性化