【太奶学IT】深度学习Transformer编码器+解码器大白话拆解 图像处理/自然语言通用详解

文章目录

一、Transformer整体架构与两大模块分工

1.1 Transformer诞生背景与基础作用

Transformer 出自论文《Attention Is All You Need》,彻底摆脱了循环神经网络串行计算的限制,依靠自注意力机制 实现并行运算,如今不仅主导自然语言处理领域,更是图像分类、目标检测、图像分割、多模态模型的基础骨架 1 ^{1} 1。整套模型被划分为编码器解码器两大独立模块,二者结构、输入、功能各不相同,组合方式也随任务场景变化。

纯编码器结构多用于特征提取类任务 ,例如图像分类、语义分割、图像特征检索;纯解码器结构多用于生成类任务 ,例如文本续写、图像生成;编码器+解码器串联结构,则多用于序列转换任务,例如机器翻译、图像描述生成。

1.2 输入数据预处理统一规则

无论是编码器还是解码器,原始数据都不能直接送入网络,需要完成两步基础处理。第一步是嵌入编码 ,将离散的文字符号、图像分块特征转换为固定维度的数值向量;第二步是位置编码 , P E ( p o s , 2 i ) = s i n ( p o s / 10000 2 i / d m o d e l ) PE(pos,2i)=sin(pos/10000^{2i/d_{model}}) PE(pos,2i)=sin(pos/100002i/dmodel)、 P E ( p o s , 2 i + 1 ) = c o s ( p o s / 10000 2 i / d m o d e l ) PE(pos,2i+1)=cos(pos/10000^{2i/d_{model}}) PE(pos,2i+1)=cos(pos/100002i/dmodel),由于注意力机制不具备时序、空间位置感知能力,位置编码会把元素的顺序、空间坐标信息融入向量,保证模型区分不同位置的内容 1 ^{1} 1

处理完成后的向量序列,才会分别进入编码器或者解码器执行计算。

二、Transformer编码器:特征提取与全局关联建模

2.1 单层编码器内部结构与执行流程

编码器由多层相同结构堆叠而成,每一层内部包含多头自注意力层前馈全连接网络 ,两层结构外部分别搭配残差连接层归一化 ,整体形成标准子模块 1 ^{1} 1。单层编码器的运算顺序固定不变,输入向量首先进入多头自注意力模块,计算完成后叠加原始输入做残差连接,再执行层归一化;随后数据送入前馈网络,再次经过残差连接与层归一化,得到当前层输出,并传递至下一层编码器。

残差连接 的表达式为 x o u t = x i n + S u b L a y e r ( x i n ) x_{out} = x_{in} + SubLayer(x_{in}) xout=xin+SubLayer(xin),它可以有效缓解深层网络训练时出现的梯度消失问题,让深层模型能够顺利收敛。层归一化则对单个样本的所有维度做均值、方差归一化,稳定每层的数值分布,加快训练速度。

2.2 多头自注意力:编码器核心计算逻辑

编码器使用的是双向自注意力 ,序列中每一个元素都可以和全局所有元素 计算关联权重。以图像任务为例,一张图像被切分为多个图像块向量,任意一个图像块都能感知整张图内其他所有图像块的内容,以此捕捉长距离依赖关系,这也是Transformer相较于CNN的核心优势 5 ^{5} 5

多头自注意力会将特征向量切分为多个头并行计算注意力,每个头学习不同类型的关联特征,最后拼接所有头的结果并做线性变换。计算过程依靠三个可学习权重矩阵,分别生成查询向量 Q Q Q、键向量 K K K、值向量 V V V,注意力分数计算公式为:

A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V)=softmax\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V

除以 d k \sqrt{d_k} dk 用于缩放数值,避免向量维度过大导致softmax输出过于极端 1 ^{1} 1

2.3 编码器典型应用场景

完整堆叠后的编码器擅长理解型任务 ,在图像处理领域应用极广。视觉Transformer(ViT)直接使用纯编码器完成图像分类,把整图划分为固定大小的补丁,转为向量序列后送入多层编码器,依靠全局注意力提取图像纹理、轮廓、语义特征 2 ^{2} 2;语义分割、图像检索、特征匹配等任务,也均以编码器作为主干网络 5 ^{5} 5。在这类场景中,编码器只负责对输入数据做特征强化、全局关联建模,不负责生成新内容。

三、Transformer解码器:序列生成与逐位输出

3.1 单层解码器内部结构与执行流程

解码器同样由多层堆叠构成,单层结构比编码器更复杂,一共包含三个子模块,依次为掩码多头自注意力层编码器-解码器注意力层前馈全连接网络 ,每一个子模块都配套残差连接与层归一化 1 ^{1} 1。数据按照固定顺序逐层计算,每一步运算都保留残差结构,保证梯度正常传递。

解码器的核心定位是逐元素生成新序列 ,输出内容是逐个生成的,生成第 n n n个元素时,只能依赖前面 1 ∼ n − 1 1 \sim n-1 1∼n−1个已生成内容,无法看到未来位置信息,这也是解码器增设掩码机制的原因。

3.2 掩码自注意力:限制未来信息可见范围

解码器第一层为掩码多头自注意力 ,和编码器的双向注意力形成明显区别。它会添加一个上三角掩码矩阵,矩阵中未来位置的权重被设置为负无穷,经过softmax计算后权重趋近于0 1 ^{1} 1。这就强制当前位置的计算,只能使用当前位置及之前的序列数据,杜绝模型提前获取还未生成的内容。

举个直观例子,生成一句话时,写到第三个字,掩码会屏蔽第四个、第五个以及后续所有位置,模型仅基于前三个字做推理,完全贴合逐一生成的逻辑。该机制是解码器实现序列生成的关键约束。

3.3 编码器-解码器注意力:跨模块信息交互

解码器中间层为编码器-解码器注意力层 ,也叫交叉注意力层。该模块的 Q Q Q来自解码器上一层的输出, K K K和 V V V则来自编码器最终的全部输出特征 1 ^{1} 1。这一设计让解码器在生成内容时,可以持续参考编码器提取的全局特征。

以图像描述任务举例,编码器提取整张图像的语义特征,解码器逐字生成文字,交叉注意力会让每一个生成的文字,都和图像全局特征做关联匹配,确保生成的文字内容和图像内容保持一致。纯解码器模型(如GPT)不存在这一层结构,仅依靠掩码自注意力完成生成 3 ^{3} 3

四、编码器与解码器组合形式及对应任务

4.1 编码器+解码器串联架构

这是原始Transformer论文中的标准组合形式,输入数据先完整经过编码器完成特征提取,编码器输出的全局特征再传入解码器,配合解码器自身的掩码注意力完成序列转换 1 ^{1} 1。该组合主打序列到序列转换任务,自然语言领域代表为机器翻译、文本摘要;图像处理领域代表为图像字幕、图文互译、视觉问答。

整套流程中,编码器负责"理解输入",解码器负责"基于理解生成新序列",两个模块各司其职,分工明确。

4.2 仅使用编码器的架构

舍弃解码器,只堆叠多层编码器,结构最简、计算效率高。由于双向注意力可以建模全局关联,该架构全部用于特征理解、分类、判别类任务 2 5 ^{25} 25。除了前文提到的ViT图像分类、图像分割,文本分类、情感分析等NLP任务也普遍采用该结构。这类任务不需要生成新序列,只需要对已有数据做特征分析与结果判别。

4.3 仅使用解码器的架构

舍弃编码器,只堆叠多层带掩码的解码器,依靠单向掩码自注意力完成全部计算。典型代表为GPT系列大模型 3 ^{3} 3,在图像处理领域,主流的图像生成模型、扩散模型中的文本引导分支、低分辨率图像补全任务,也会使用纯解码器结构。该架构核心能力是自回归生成,持续基于已有内容推导下一个元素。

五、编码器和解码器核心差异汇总与避坑要点

5.1 核心结构与能力差异

从注意力机制来看,编码器采用双向无掩码自注意力 ,全局信息互通,擅长特征挖掘;解码器包含掩码自注意力+交叉注意力 ,单向信息流,擅长内容生成 1 5 ^{15} 15。从输入输出来看,编码器接收完整输入序列,一次性输出全部特征;解码器逐位接收已生成内容,逐位输出新元素,属于自回归运算。

从计算并行度分析,编码器可以实现全序列并行计算 ,所有位置同时运算,速度快;标准解码器受掩码规则限制,只能串行逐一生成,推理速度相对较慢,这也是生成类模型推理耗时更长的根本原因 4 ^{4} 4

5.2 工程落地常见问题

在图像任务部署中,很多人会混淆两个模块的使用场景。做图像分类、检测时错误加入解码器,会额外增加计算量,还会降低模型精度;做图像生成、图文生成时省略掩码操作,模型会出现逻辑混乱、内容错乱的问题。另外,位置编码不能随意删除,图像分块、文本序列一旦去掉位置编码,模型会丢失空间、顺序信息,最终训练失效 4 ^{4} 4

堆叠网络层数也需要合理控制,编码器层数过多容易出现特征冗余,解码器层数过多则会放大串行误差,实际项目中需要根据数据集规模和任务难度做层数调优。

六、参考文献

1 Vaswani A, Shazeer N, Parmar N, et al. Attention Is All You NeedC//Advances in Neural Information Processing Systems. 2017: 5998-6008.

2 Dosovitskiy A, Beyer L, Kolesnikov A, et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at ScaleC//International Conference on Learning Representations. 2021.

3 Brown T B, Mann B, Ryder N, et al. Language Models are Few-Shot LearnersJ. arXiv preprint arXiv:2005.14165, 2020.

4 邱锡鹏. 神经网络与深度学习M. 北京: 机械工业出版社, 2020.

5 Han K, Wang Y, Chen H, et al. A Survey on Vision TransformerJ. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, 45(1): 87-110.


你在搭建图像Transformer模型时,是选用纯编码器还是编解码组合架构?遇到过注意力权重异常、生成内容错乱这类问题吗?可以一起交流调试思路。

相关推荐
金融小师妹14 小时前
基于AI通胀路径模型与利率预期框架的黄金市场分析:地缘风险持续扰动下金价跌至2个月低位逻辑解析
大数据·深度学习·逻辑回归·线性回归
_李小白14 小时前
【android opencv学习笔记】Day 25: GrabCut 前景提取
android·opencv·学习
承渊政道14 小时前
我的创作纪念日写在创作第256天:从第一篇C语言博客,到一路向前的自己!
c语言·开发语言·笔记·学习·学习方法
z小猫不吃鱼14 小时前
05 Transformer Decoder 详解:GPT 为什么使用 Decoder?
gpt·深度学习·transformer
脑子不好真君14 小时前
build-your-own-x学习笔记——Updating
笔记·学习
Cat_Rocky14 小时前
CICD-DevOps简单学习
运维·学习·devops
nashane14 小时前
HarmonyOS 6学习:解决非媒体文件下载后用户不可见的问题
学习·华为·harmonyos
戴西软件14 小时前
AICrash智能行人保护:CAxWorks.VPG 如何让汽车安全仿真快人一步
人工智能·深度学习·汽车
知识分享小能手14 小时前
Flask入门学习教程,从入门到精通,Flask智能租房——详情页完整知识点详解(8)
python·学习·flask