Transformer 数学原理

上一篇笔记建立了 Transformer 的直觉和代码实现,这篇深入每个组件背后的数学原理。每个主题都标注了出处论文或博客,方便查阅原文。 一、Scaled Dot-Product:为什么除以 √dk? 出处:Vaswani et al. (2017) “Attention Is All You Need”, Section 3.2.1 上一篇笔记里我们知道 Attention 的计算公式是: $$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V$$其中: $Q$:Query 矩阵 $K$:Key 矩阵 $V$:Value 矩阵 $d_k$:Key 向量的维度 $\text{softmax}$:归一化函数(将分数转为概率分布) 但为什么要除以 $\sqrt{d_k}$?Vaswani et al. 在论文中给出了一句关键解释:“We suspect that for large values of $d_k$, the dot products grow large in magnitude, pushing the softmax function into regions where it has extremely small gradients.” 下面把这句话拆成严格的数学推导。 1.1 方差推导 假设 $q$ 和 $k$ 的每个分量都是独立同分布的随机变量,均值为 0,方差为 1。点积 $q^T k = \sum_{i=1}^{d_k} q_i k_i$。 ...

April 13, 2026 · 13 min

Self-Attention & Transformer 学习笔记

一、为什么要学 Transformer? Transformer 是当前深度学习的基础架构。NLP 领域的 BERT、GPT 系列,计算机视觉的 ViT,多模态模型 CLIP、Stable Diffusion——底层全是 Transformer。不理解 Transformer,后续读任何相关论文都会卡在架构细节上。 学完本笔记后,应该能回答:Q/K/V 怎么算?Multi-Head 为什么有用?Positional Encoding 干什么的?Encoder 和 Decoder 有什么区别? 二、Self-Attention(自注意力机制) 2.1 核心问题:如何处理变长序列? 输入可能是一句话(5个词)、一段语音(200帧)、一张图(196个patch),长度不固定。传统 FC 层要求固定输入维度,无法处理这种情况。 生活类比:你在教室里坐着,老师点名提问。FC 层相当于老师只看你一个人;Self-Attention 相当于老师让全班每个人都互相看一眼,综合所有人的信息后再做判断。 2.2 Self-Attention 的计算流程 假设输入序列有 T 个 token,每个 token 是一个 d 维向量: 输入:X = [x₁, x₂, ..., xT],shape = [T, d] 第1步:生成 Q, K, V(三个"角色") Q = X @ Wq # Query: "我在找什么?" shape = [T, dk] K = X @ Wk # Key: "我能提供什么?" shape = [T, dk] V = X @ Wv # Value: "我的实际内容" shape = [T, dv] 第2步:算 Attention Score(谁和谁最相关?) Score = Q @ K^T # shape = [T, T],每对 token 之间的相关性 Score = Score / √dk # 缩放,防止数值过大导致 softmax 梯度消失 第3步:Softmax 归一化 Attention = softmax(Score, dim=-1) # 每行和为1,变成概率分布 第4步:加权求和 Output = Attention @ V # shape = [T, dv] 生活类比: ...

March 13, 2026 · 14 min

深度学习入门:PyTorch零基础到多任务联合微调

前言 该文章是基于我校 校科学技术协会 woc-python组题目个人解答过程的系统性回顾。 项目代码:NJUPT-SAST-Python-WoC-2025 本文主要记录学习和方法迭代的过程,详细代码实现请查阅代码库。 题目简介: 任务背景与目标 本项目旨在探索多任务学习 (Multi-Task Learning) 在计算机视觉中的应用。核心目标是通过联合网络的设计,实现底层视觉(图像重构)与高层视觉(语义理解)两个任务的相互促进 (Mutual Promotion)。 基础任务定义 (Single-Task Baselines) 网络需从零开始搭建与训练,完成以下两个独立任务: 1 2 3 4 5 6 7 Task 1:底层图像恢复 (Low-level Vision) 任务内容:任选一种退化图像修复场景(包括但不限于超分辨率、去噪、去雾、低光增强等)。 评估指标:PSNR 与 SSIM,需在验证集上具有合理表现。 Task 2:高层图像分类 (High-level Vision) 任务内容:基于 CIFAR 数据集的图像分类。 评估指标:Accuracy(最低要求界定为 60%)。 多任务联合优化约束 (Multi-Task Constraints) 在跑通单任务 Baseline 后,需构建多任务联合网络(例如 Task 1 辅助 Task 2,或反之),且必须满足以下硬性约束: 1 2 3 4 1.架构轻量化与一致性:多任务分支需与单任务网络结构保持高度一致,禁止大幅增加参数量。 2.鼓励采用参数共享 (Parameter Sharing) 或引入轻量的交互通信模块。 3.微调策略 (Fine-tuning):在单任务预训练的基础上,通过微调分支头或特征层来实现融合。 4.损失函数创新:鼓励设计具有创新性的互促损失函数 (Mutual-promoting Loss) 来平衡两个任务的梯度。 最终效果: ...

February 26, 2026 · 5 min