神经网络Transformer架构中的输出层与投影
字数 2128 2025-12-03 02:07:51
神经网络Transformer架构中的输出层与投影
让我们从基础开始,一步步深入到细节。
第一步:理解输出层在模型中的位置和作用
在一个典型的、用于序列到序列任务(如机器翻译)的Transformer模型中,整体结构是编码器-解码器。解码器的最终任务是生成目标语言的词序列。解码器由多个层堆叠而成,每一层都会输出一个隐藏状态向量序列。输出层特指模型最后一层之后,负责将最终隐藏状态转换为具体单词概率的组成部分。它的核心作用是进行从模型内部表示到目标词汇表的映射,完成生成任务的“最后一公里”。
第二步:剖析输出层的具体构成与工作流程
输出层通常不是一个单一的层,而是一个包含两个关键步骤的流程:
- 线性投影(Linear Projection):解码器最后一个层输出的隐藏状态(假设维度为
d_model,例如768),其形状为[序列长度, d_model]。这个状态蕴含了丰富的语义信息,但维度与词汇表大小不符。线性投影就是一个没有激活函数的全连接层(一个权重矩阵W),其作用是将每个位置的d_model维向量,映射到一个vocab_size维的向量(例如50000)。这个vocab_size维的向量通常被称为对数几率(logits)。- 数学表示:
logits = hidden_states * W^T + b,其中W的形状为[d_model, vocab_size],b是偏置项。
- 数学表示:
- Softmax归一化:得到的logits是未归一化的分数,可能数值很大且正负不定。Softmax函数的作用是将一个位置的所有
vocab_size个logits转换为一个概率分布。它对每个logits取指数,然后除以所有logits指数之和,确保所有输出概率之和为1,且每个值在0到1之间。- 最终,对于序列中的每一个位置,我们都得到了一个长度为
vocab_size的概率向量,其中第i个值表示下一个词是词汇表中第i个词的概率。
- 最终,对于序列中的每一个位置,我们都得到了一个长度为
第三步:探讨输出层权重与输入嵌入层的“权重绑定”技巧
这是一个重要且常见的优化技巧。在Transformer中,编码器的输入和解码器的输入(以及输出层的投影)都涉及将词索引转换为向量(嵌入)或反之。研究发现,将输出投影层的权重矩阵 W 与输入词嵌入层的权重矩阵 E 共享,可以带来多重好处:
- 显著减少参数量:模型无需学习两个独立的大矩阵(
[vocab_size, d_model]),参数减半,降低了过拟合风险。 - 提升训练效率与效果:这相当于在输入(词->向量)和输出(向量->词)之间施加了一种对称约束,可以视为一种正则化。它迫使模型学习到更一致的表示空间,通常能带来更稳定的训练和轻微的性能提升。
- 实现:在实现上,这意味着
W = E。在计算损失(如交叉熵损失)时,使用共享的权重矩阵将最终隐藏状态投影为logits。
第四步:分析输出层在推理生成过程中的动态角色
在模型训练时,输出层对每个目标序列位置并行计算所有词的概率。但在推理(生成)阶段,它的工作方式是自回归、逐词进行的:
- 给定已生成的序列(或起始符),模型运行一次前向传播,输出层只计算最后一个位置的词汇概率分布。
- 从这个分布中,通过某种策略(如贪心搜索选择概率最高的词,或束搜索保留多个候选)选取下一个词。
- 将选中的词作为输入,追加到序列中,重复步骤1-2,直到生成结束符或达到最大长度。
在这个过程中,输出层是生成每一个新词的直接决策者。
第五步:考察输出层相关的进阶主题与优化技术
- 偏置项的影响:输出层的线性投影通常包含一个可学习的偏置项
b。这个偏置可以隐式地学习词汇的先验频率。在训练数据中出现频率更高的词,其对应的偏置值可能会被学习得更大,使得模型在“无上下文信息”时更倾向于输出常见词。 - 输出层与损失函数的交互:最常用的损失函数是交叉熵损失,它直接比较输出层Softmax产生的概率分布与真实标签(一个one-hot向量)。输出层Logits的数值稳定性很重要,过大的logits可能导致Softmax计算溢出,因此训练中常会结合标签平滑等技术来优化。
- 大词汇表下的效率问题:当词汇表极大(例如数十万)时,输出层的矩阵乘法和Softmax计算开销巨大。为此发展出了一些优化技术,如基于采样的软最大或分层Softmax,通过近似计算来加速训练。不过,在标准的Transformer实现中,更常见的还是使用完整的Softmax配合工程优化(如GPU高效核函数)。
- 特定任务适配:在一些非生成性任务中(如文本分类),输出层可能更简单:将整个序列的表示(如[CLS]标记的隐藏状态)直接投影到一个较小维度的空间(如情感类别数),然后接Softmax进行分类。这里的“投影”原理相同,但目标空间是任务标签而非词汇表。
总结:输出层与投影是Transformer生成能力的最终执行者,它将模型内部的抽象表示解码为人类可理解的语言符号,其设计与优化直接关系到模型的生成效率、准确性和资源消耗。