差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| 深度学习:注意力机制与transformer [2026/03/02 22:25] – [1.2 注意力机制的基本原理] 张叶安 | 深度学习:注意力机制与transformer [2026/03/02 22:33] (当前版本) – [4. 答案与解析] 张叶安 | ||
|---|---|---|---|
| 行 68: | 行 68: | ||
| 特点: | 特点: | ||
| - | - 使用可学习的参数$W_s, | + | |
| - | - 理论上可以学习更复杂的相似度函数 | + | - 理论上可以学习更复杂的相似度函数 |
| - | - 计算复杂度较高 | + | - 计算复杂度较高 |
| **1.3.2 乘性注意力(Multiplicative Attention / Dot-Product Attention)** | **1.3.2 乘性注意力(Multiplicative Attention / Dot-Product Attention)** | ||
| 行 79: | 行 79: | ||
| 特点: | 特点: | ||
| - | - 计算简单高效,无需额外参数 | + | |
| - | - 当查询和键维度相同时可直接使用 | + | - 当查询和键维度相同时可直接使用 |
| - | - 实践中常与缩放因子结合使用 | + | - 实践中常与缩放因子结合使用 |
| **1.3.3 缩放点积注意力(Scaled Dot-Product Attention)** | **1.3.3 缩放点积注意力(Scaled Dot-Product Attention)** | ||
| 行 90: | 行 90: | ||
| 缩放因子$\sqrt{d_k}$的作用: | 缩放因子$\sqrt{d_k}$的作用: | ||
| - | - 当$d_k$较大时,点积的数值可能很大 | + | |
| - | - 大值输入使softmax梯度极小,导致梯度消失 | + | - 大值输入使softmax梯度极小,导致梯度消失 |
| - | - 缩放使点积值保持在合理范围,保证梯度流动 | + | - 缩放使点积值保持在合理范围,保证梯度流动 |
| **1.3.4 自注意力(Self-Attention)** | **1.3.4 自注意力(Self-Attention)** | ||
| 行 114: | 行 114: | ||
| 编码器结构: | 编码器结构: | ||
| - | - 输入嵌入 + 位置编码 | + | |
| - | - N个相同的编码器层(原论文N=6) | + | - N个相同的编码器层(原论文N=6) |
| - | - 每层包含:多头自注意力 + 前馈网络 | + | - 每层包含:多头自注意力 + 前馈网络 |
| - | - 每个子层后接层归一化和残差连接 | + | - 每个子层后接层归一化和残差连接 |
| 解码器结构: | 解码器结构: | ||
| - | - 输出嵌入 + 位置编码 | + | |
| - | - N个相同的解码器层 | + | - N个相同的解码器层 |
| - | - 每层包含:掩码多头自注意力 + 编码器-解码器注意力 + 前馈网络 | + | - 每层包含:掩码多头自注意力 + 编码器-解码器注意力 + 前馈网络 |
| - | - 每个子层后接层归一化和残差连接 | + | - 每个子层后接层归一化和残差连接 |
| **1.4.2 多头注意力机制(Multi-Head Attention)** | **1.4.2 多头注意力机制(Multi-Head Attention)** | ||
| 行 137: | 行 137: | ||
| 参数说明: | 参数说明: | ||
| - | - $h$:注意力头数(原论文h=8) | + | |
| - | - $d_{model}$:模型维度(原论文512) | + | - $d_{model}$:模型维度(原论文512) |
| - | - $d_k = d_v = d_{model}/h = 64$ | + | - $d_k = d_v = d_{model}/h = 64$ |
| - | - $W_i^Q, W_i^K, W_i^V$:各头的投影矩阵 | + | - $W_i^Q, W_i^K, W_i^V$:各头的投影矩阵 |
| - | - $W^O$:输出投影矩阵 | + | - $W^O$:输出投影矩阵 |
| 多头注意力的优势: | 多头注意力的优势: | ||
| - | - 不同头可以学习不同的依赖模式 | + | |
| - | - 例如:一个头学习句法关系,另一个学习语义关系 | + | - 例如:一个头学习句法关系,另一个学习语义关系 |
| - | - 增强模型的表达能力 | + | - 增强模型的表达能力 |
| **1.4.3 位置编码(Positional Encoding)** | **1.4.3 位置编码(Positional Encoding)** | ||
| 行 157: | 行 157: | ||
| 其中: | 其中: | ||
| - | - $pos$:位置索引 | + | |
| - | - $i$:维度索引 | + | - $i$:维度索引 |
| - | - $d_{model}$:模型维度 | + | - $d_{model}$:模型维度 |
| 位置编码的特性: | 位置编码的特性: | ||
| - | - 唯一性:每个位置有唯一的编码 | + | |
| - | - 相对位置:$PE_{pos+k}$可以表示为$PE_{pos}$的线性函数 | + | - 相对位置:$PE_{pos+k}$可以表示为$PE_{pos}$的线性函数 |
| - | - 有界性:值域在[-1, | + | - 有界性:值域在[-1, |
| - | - 可学习位置编码也是可行的选择 | + | - 可学习位置编码也是可行的选择 |
| **1.4.4 前馈网络(Feed-Forward Network)** | **1.4.4 前馈网络(Feed-Forward Network)** | ||
| 行 174: | 行 174: | ||
| 这是一个两层的线性变换,中间使用ReLU激活。特点: | 这是一个两层的线性变换,中间使用ReLU激活。特点: | ||
| - | - 对每个位置独立应用(位置间不交互) | + | |
| - | - 隐藏层维度通常为$4 \times d_{model}$(原论文2048) | + | - 隐藏层维度通常为$4 \times d_{model}$(原论文2048) |
| - | - 引入非线性,增强模型表达能力 | + | - 引入非线性,增强模型表达能力 |
| **1.4.5 层归一化与残差连接** | **1.4.5 层归一化与残差连接** | ||
| 行 185: | 行 185: | ||
| 作用: | 作用: | ||
| - | - 缓解梯度消失,使深层网络可训练 | + | |
| - | - 保留原始信息,帮助优化 | + | - 保留原始信息,帮助优化 |
| **层归一化(Layer Normalization)**: | **层归一化(Layer Normalization)**: | ||
| 行 199: | 行 199: | ||
| BERT(Bidirectional Encoder Representations from Transformers): | BERT(Bidirectional Encoder Representations from Transformers): | ||
| - | - 仅使用Transformer编码器 | + | |
| - | - 双向上下文建模 | + | - 双向上下文建模 |
| - | - 预训练任务:掩码语言模型 + 下一句预测 | + | - 预训练任务:掩码语言模型 + 下一句预测 |
| - | - 适用于:文本分类、命名实体识别、问答等理解任务 | + | - 适用于:文本分类、命名实体识别、问答等理解任务 |
| **1.5.2 解码器-only模型** | **1.5.2 解码器-only模型** | ||
| GPT(Generative Pre-trained Transformer)系列: | GPT(Generative Pre-trained Transformer)系列: | ||
| - | - 仅使用Transformer解码器 | + | |
| - | - 自回归生成,从左到右 | + | - 自回归生成,从左到右 |
| - | - 预训练任务:语言建模(预测下一个词) | + | - 预训练任务:语言建模(预测下一个词) |
| - | - 适用于:文本生成、对话、代码生成 | + | - 适用于:文本生成、对话、代码生成 |
| **1.5.3 编码器-解码器模型** | **1.5.3 编码器-解码器模型** | ||
| T5(Text-to-Text Transfer Transformer): | T5(Text-to-Text Transfer Transformer): | ||
| - | - 完整的编码器-解码器结构 | + | |
| - | - 所有任务统一为文本到文本的转换 | + | - 所有任务统一为文本到文本的转换 |
| - | - 适用于:机器翻译、摘要、问答等 | + | - 适用于:机器翻译、摘要、问答等 |
| **1.5.4 高效Transformer变体** | **1.5.4 高效Transformer变体** | ||
| 行 224: | 行 224: | ||
| **稀疏注意力**: | **稀疏注意力**: | ||
| - | - Longformer:结合局部窗口注意力和全局注意力 | + | |
| - | - BigBird:随机注意力 + 窗口注意力 + 全局注意力 | + | - BigBird:随机注意力 + 窗口注意力 + 全局注意力 |
| - | - 理论证明:稀疏注意力可以近似全注意力 | + | - 理论证明:稀疏注意力可以近似全注意力 |
| **线性注意力**: | **线性注意力**: | ||
| - | - 通过核技巧或矩阵分解,将复杂度降至$O(n)$ | + | |
| - | - Performer、Linear Transformer等 | + | - Performer、Linear Transformer等 |
| **分层注意力**: | **分层注意力**: | ||
| - | - 先对token进行聚类或压缩 | + | |
| - | - 在粗粒度表示上进行注意力计算 | + | - 在粗粒度表示上进行注意力计算 |
| ==== 1.6 注意力机制的可解释性 ==== | ==== 1.6 注意力机制的可解释性 ==== | ||
| 行 242: | 行 242: | ||
| 注意力权重天然具有可解释性。通过可视化注意力矩阵,可以观察模型关注输入的哪些部分: | 注意力权重天然具有可解释性。通过可视化注意力矩阵,可以观察模型关注输入的哪些部分: | ||
| - | - **编码器自注意力**:显示输入序列内部的关系 | + | |
| - | - **解码器自注意力**:显示生成过程中的依赖 | + | - **解码器自注意力**:显示生成过程中的依赖 |
| - | - **交叉注意力**:显示输出与输入的对齐关系 | + | - **交叉注意力**:显示输出与输入的对齐关系 |
| **注意力作为解释工具** | **注意力作为解释工具** | ||
| 注意力权重可以回答" | 注意力权重可以回答" | ||
| - | - 机器翻译中,可以看到源语言词与目标语言词的对应 | + | |
| - | - 情感分析中,可以看到影响分类的关键词 | + | - 情感分析中,可以看到影响分类的关键词 |
| **注意力的局限性** | **注意力的局限性** | ||
| - | - 注意力权重不等于特征重要性 | + | |
| - | - 多头注意力的可解释性较复杂 | + | - 多头注意力的可解释性较复杂 |
| - | - 注意力分布可能集中在特定token(如[CLS]) | + | - 注意力分布可能集中在特定token(如[CLS]) |
| ==== 1.7 注意力机制的应用领域 ==== | ==== 1.7 注意力机制的应用领域 ==== | ||
| **自然语言处理**: | **自然语言处理**: | ||
| - | - 机器翻译、文本摘要、问答系统 | + | |
| - | - 预训练语言模型(BERT、GPT、T5) | + | - 预训练语言模型(BERT、GPT、T5) |
| - | - 信息抽取、情感分析 | + | - 信息抽取、情感分析 |
| **计算机视觉**: | **计算机视觉**: | ||
| - | - 视觉Transformer(ViT):将图像分割为patch,应用Transformer | + | |
| - | - 目标检测(DETR):端到端目标检测 | + | - 目标检测(DETR):端到端目标检测 |
| - | - 图像生成(DALL-E、Stable Diffusion) | + | - 图像生成(DALL-E、Stable Diffusion) |
| **多模态学习**: | **多模态学习**: | ||
| - | - 图像-文本对齐(CLIP) | + | |
| - | - 视觉问答 | + | - 视觉问答 |
| - | - 文生图、图生文 | + | - 文生图、图生文 |
| **其他领域**: | **其他领域**: | ||
| - | - 语音识别 | + | |
| - | - 蛋白质结构预测(AlphaFold) | + | - 蛋白质结构预测(AlphaFold) |
| - | - 推荐系统 | + | - 推荐系统 |
| - | - 时间序列预测 | + | - 时间序列预测 |
| ===== 2. 例题分析 ===== | ===== 2. 例题分析 ===== | ||
| 行 306: | 行 306: | ||
| 计算指数: | 计算指数: | ||
| - | - $\exp(1.155) \approx 3.174$ | + | |
| - | - $\exp(0.577) \approx 1.781$ | + | - $\exp(0.577) \approx 1.781$ |
| - | - $\exp(0.577) \approx 1.781$ | + | - $\exp(0.577) \approx 1.781$ |
| 求和:$3.174 + 1.781 + 1.781 = 6.736$ | 求和:$3.174 + 1.781 + 1.781 = 6.736$ | ||
| 注意力权重: | 注意力权重: | ||
| - | - $\alpha_1 = 3.174 / 6.736 \approx 0.471$ | + | |
| - | - $\alpha_2 = 1.781 / 6.736 \approx 0.264$ | + | - $\alpha_2 = 1.781 / 6.736 \approx 0.264$ |
| - | - $\alpha_3 = 1.781 / 6.736 \approx 0.264$ | + | - $\alpha_3 = 1.781 / 6.736 \approx 0.264$ |
| **步骤4:加权求和** | **步骤4:加权求和** | ||
| 行 463: | 行 463: | ||
| ==== 二、填空题 ==== | ==== 二、填空题 ==== | ||
| - | 6. 注意力机制的三个核心组件是________、________和________。 | + | 6. 注意力机制的三个核心组件$\_\_\_\_$、$\_\_\_\_$和$\_\_\_\_$。 |
| - | 7. Transformer编码器包含________个相同的层,每层有________个子层。 | + | 7. Transformer编码器包含$\_\_\_\_$个相同的层,每层有$\_\_\_\_$个子层。 |
| - | 8. 层归一化与批归一化的主要区别是层归一化对________进行归一化,不依赖________统计量。 | + | 8. 层归一化与批归一化的主要区别是层归一化对$\_\_\_\_$进行归一化,不依赖$\_\_\_\_$统计量。 |
| 9. 残差连接的公式是$\text{LayerNorm}(x + \text{________}(x))$。 | 9. 残差连接的公式是$\text{LayerNorm}(x + \text{________}(x))$。 | ||
| 行 486: | 行 486: | ||
| 1. **答案:B** | 1. **答案:B** | ||
| - | 解析:缩放因子防止点积值过大,避免softmax进入梯度极小的饱和区域。 | + | |
| + | 解析:缩放因子防止点积值过大,避免softmax进入梯度极小的饱和区域。 | ||
| 2. **答案:B** | 2. **答案:B** | ||
| - | 解析:自注意力中,Q、K、V来自同一序列,通过不同的投影矩阵$W_Q, | + | |
| + | 解析:自注意力中,Q、K、V来自同一序列,通过不同的投影矩阵$W_Q, | ||
| 3. **答案:B** | 3. **答案:B** | ||
| - | 解析:多头注意力允许模型在不同表示子空间中学习不同类型的依赖关系。 | + | |
| + | 解析:多头注意力允许模型在不同表示子空间中学习不同类型的依赖关系。 | ||
| 4. **答案:C** | 4. **答案:C** | ||
| - | 解析:Transformer使用正弦/ | + | |
| + | 解析:Transformer使用正弦/ | ||
| 5. **答案:B** | 5. **答案:B** | ||
| - | 解析:GPT仅使用Transformer解码器,BERT仅使用编码器,T5使用完整的编码器-解码器。 | + | |
| + | 解析:GPT仅使用Transformer解码器,BERT仅使用编码器,T5使用完整的编码器-解码器。 | ||
| **二、填空题答案:** | **二、填空题答案:** | ||
| 6. **答案:**查询(Query);键(Key);值(Value) | 6. **答案:**查询(Query);键(Key);值(Value) | ||
| - | 解析:注意力机制的核心三元组,查询与键计算相似度,值提供实际内容。 | + | |
| + | 解析:注意力机制的核心三元组,查询与键计算相似度,值提供实际内容。 | ||
| 7. **答案:**6(或N);2 | 7. **答案:**6(或N);2 | ||
| - | 解析:原论文使用6层编码器,每层包含多头自注意力和前馈网络两个子层。 | + | |
| + | 解析:原论文使用6层编码器,每层包含多头自注意力和前馈网络两个子层。 | ||
| 8. **答案:**每个样本的所有特征;批次 | 8. **答案:**每个样本的所有特征;批次 | ||
| - | 解析:层归一化沿特征维度归一化,批归一化沿批次维度归一化。 | + | |
| + | 解析:层归一化沿特征维度归一化,批归一化沿批次维度归一化。 | ||
| 9. **答案:**Sublayer | 9. **答案:**Sublayer | ||
| - | 解析:残差连接将子层输出与输入相加,再经过层归一化。 | + | |
| + | 解析:残差连接将子层输出与输入相加,再经过层归一化。 | ||
| 10. **答案:**2 | 10. **答案:**2 | ||
| - | | + | |
| + | 解析:自注意力需要计算$n \times n$的注意力矩阵,复杂度为$O(n^2)$。 | ||
| **三、计算题答案:** | **三、计算题答案:** | ||
| 行 521: | 行 531: | ||
| 11. **解答:** | 11. **解答:** | ||
| | | ||
| - | | + | $QK^T = [2, 1] \begin{bmatrix} 1 & 2 \\ 2 & 1 \end{bmatrix} = [2\times1 + 1\times2,\; 2\times2 + 1\times1] = [4, 5]$ |
| | | ||
| - | | + | 缩放:$[4, |
| | | ||
| - | | + | Softmax: |
| - | - $\exp(2.828) \approx 16.92$ | + | - $\exp(2.828) \approx 16.92$ |
| - | - $\exp(3.536) \approx 34.31$ | + | - $\exp(3.536) \approx 34.31$ |
| - | - 和 $\approx 51.23$ | + | - 和 $\approx 51.23$ |
| - | - $\alpha_1 = 16.92 / 51.23 \approx 0.330$ | + | - $\alpha_1 = 16.92 / 51.23 \approx 0.330$ |
| - | - $\alpha_2 = 34.31 / 51.23 \approx 0.670$ | + | - $\alpha_2 = 34.31 / 51.23 \approx 0.670$ |
| | | ||
| - | | + | 输出:$0.330 \times [3, 1] + 0.670 \times [2, 4] = [0.990, 0.330] + [1.340, 2.680] = [2.330, 3.010]$ |
| 12. **解答:** | 12. **解答:** | ||
| | | ||
| - | | + | 对于$i = 0$:$10000^{0/ |
| | | ||
| - | | + | $PE_{(1,0)} = \sin(1/1) = \sin(1) \approx 0.841$ |
| | | ||
| - | | + | $PE_{(1,1)} = \cos(1/1) = \cos(1) \approx 0.540$ |
| 13. **解答:** | 13. **解答:** | ||
| | | ||
| - | | + | $\text{Output} = 0.5 \times [1, 2] + 0.3 \times [3, 4] + 0.2 \times [5, 6]$ |
| | | ||
| - | | + | $= [0.5, 1.0] + [0.9, 1.2] + [1.0, 1.2]$ |
| | | ||
| - | | + | $= [2.4, 3.4]$ |