注意力迁移 Attention Transfer
本文定位与前置知识
本文属于「主流方法体系」中的特征基蒸馏方向,聚焦其最具代表性的变体之一——注意力迁移(Attention Transfer, AT, Zagoruyko & Komodakis 2017, arXiv:1612.03928)。阅读本文前,建议先理解”用中间层特征作为知识”这一大类方法;其开创性工作是 FitNets(Romero et al. 2015, arXiv:1412.6550),通过引入 regressor 对齐师生中间隐层特征图。
AT 的独到之处在于:它不直接对齐原始特征图,而是先把特征图压缩成一张”注意力图”,再让学生去匹配这张图。这样做既降低了迁移难度,又突出了”网络在关注哪里”这一关键信息。
一、什么是注意力图
卷积网络某一层输出形如 $F \in \mathbb{R}^{C\times H\times W}$ 的特征图(C 通道,H×W 空间)。直观上,激活值大的空间位置就是网络”更关注”的区域。AT 定义注意力图为对各通道取绝对值的 $p$ 次幂后求和:
$$A^F = \sum_{c=1}^{C} |F_c|^p, \qquad p=2$$
即把多通道信息聚合成单张空间图 $A^F \in \mathbb{R}^{H\times W}$,其中每个像素值表示”该位置的整体激活强度”。论文中使用 $p=2$(平方求和),等价于对各通道激活做 L2 范数意义上的聚合。
注意力图的好处:它把”维度不一致”的师生特征图归约为同语义的空间图,便于跨结构对齐;同时天然强调显著区域,忽略无关背景噪声。
二、AT 损失:让学生复现教师的注意力
设教师第 $l$ 层注意力图为 $A_l^T$,学生对应层为 $A_l^S$。AT 以两者的差异(常做 L2 归一化后)作为知识迁移损失:
$$L_{\text{AT}} = \frac{1}{2}\sum_{l} \frac{1}{N_l}\left| \frac{\text{vec}(A_l^S)}{|\text{vec}(A_l^S)|_2} - \frac{\text{vec}(A_l^T)}{|\text{vec}(A_l^T)|_2} \right|_2^2$$
其中 $\text{vec}(\cdot)$ 将注意力图展平,$N_l$ 为该层元素数。除以 L2 范数使注意力图只比较”分布形状”而非绝对强度,避免学生为最小化损失而简单缩放激活值。
注:上述归一化与求和形式遵循 Zagoruyko & Komodakis 2017 原文;具体是否对每层归一化、选取哪些层,以原论文实验设定为准。
三、与特征蒸馏(FitNets)的关系
特征蒸馏(如 FitNets, Romero et al. 2015)直接匹配师生的中间特征图,当二者维度不一致时需额外训练一个 regressor 把学生特征映射到教师特征空间。AT 可视为特征蒸馏的一种特例与简化:
| 维度 | FitNets(hint/特征蒸馏) | Attention Transfer |
|---|---|---|
| 迁移对象 | 原始隐层特征图 | 聚合后的注意力图 |
| 维度对齐 | 需 regressor 投影 | 天然同形(空间图) |
| 关注信息 | 全部通道特征 | “网络关注哪里” |
| 计算开销 | 较高(含 regressor) | 较低(仅需聚合) |
二者并非互斥:实践中可同时施加注意力损失与原始特征匹配损失,形成更丰富的特征级监督。AT 的优势在于实现简单、对结构差异包容性强,是特征基蒸馏中工程友好的一类。
四、训练步骤与伪代码
# 选定若干匹配层 {l}
for (x, y) in dataloader:
with torch.no_grad():
A_T = [attention(teacher.layer_l(x)) for l in layers] # 教师注意力
A_S = [attention(student.layer_l(x)) for l in layers] # 学生注意力
L_at = Σ_l normalized_l2(A_S[l], A_T[l]) * 0.5
L_task = CrossEntropy(student(x), y)
loss = L_task + γ * L_at
loss.backward(); optimizer.step()
关键超参 $\gamma$ 控制 AT 损失权重;匹配层通常选网络的若干”阶段出口”(如每个下采样后的第一层)。
五、适用场景与注意点
- 空间任务首选:图像分类、检测、分割等任务中,注意力图明确对应”看哪里”,迁移语义清晰。
- 结构差异容忍:因注意力图已聚合通道,师生通道数不必一致。
- 待核实:AT 在纯序列/文本模型上的注意力图定义与收益,需结合具体架构(如 Transformer 的 self-attention 权重)另行验证,本文不给出定量结论。
- 与响应基互补:AT 属特征级知识,可与 Hinton 式软标签损失(输出级)叠加,形成”输出+中间”双重监督。
六、注意力图的可视化直觉与调参经验
理解 AT 的一个好方法是”看注意力图”。把教师某层的注意力图 $A^T$ 可视化为热力图,通常会发现高亮区域集中在物体主体(如分类任务中的目标轮廓);学生的 $A^S$ 一开始往往分散、模糊,随着 AT 损失下降,高亮区域逐渐向教师对齐。这种”可解释”的迁移信号是 AT 受工程欢迎的原因。
调参经验(机制性,非固定数值):
- 匹配层选择:优先选语义较丰富的”阶段出口”层;过早的层噪声大,过晚的层接近分类头、空间分辨率低。
- γ 的尺度:AT 损失幅值通常远大于任务损失,γ 需调小(或先归一化再加权),否则会压制分类学习。
- 与软标签协同:保留一定权重的 Hinton 式软标签损失,可弥补 AT 不约束”最终概率分布”的不足。
- 归一化的稳定性:对注意力图做 L2 归一化能避免学生通过放大激活值”作弊”降低损失。
值得注意的是,AT 原论文面向卷积网络;在 Transformer 类序列模型上,注意力图的定义(是用 self-attention 权重还是激活幅值)与收益需结合具体架构验证,本文不给出未经验证的定量结论(待核实)。在工程落地时,AT 的另一个便利是”无需修改网络结构”——只需在训练期插入注意力提取与损失计算,推理期可完全移除这些分支,不增加任何部署负担。这使得 AT 非常适合作为”即插即用”的辅助监督,接入已有训练流水线时改动极小。需要提醒的是,注意力图聚合会丢失通道间相对信息,若任务对”哪些通道组合”敏感,纯 AT 可能不够,应叠加原始特征匹配损失以获得更完整的特征级监督。
延伸阅读 / 参考文献
- Zagoruyko & Komodakis (2017), Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer, arXiv:1612.03928, ICLR 2017.(注意力图作为迁移知识的核心来源)
- Romero et al. (2015), FitNets: Hints for Thin Deep Nets, arXiv:1412.6550, ICLR 2015.(基于 hint/特征的中间层蒸馏,AT 的方法论先驱)