3. 特征迁移理论基础:特征图对齐、注意力迁移、关系知识蒸馏、互信息最大化

特征迁移,说白了就是让教师网络「教」学生网络怎么提取更好的特征。不是简单教答案,而是教思路。

我刚开始做知识蒸馏时,总觉得直接拿 logits 蒸馏就够了。后来发现,很多场景下学生网络学到的特征图跟教师差得远,泛化能力上不去。这才意识到,特征层面的迁移才是真正的「授人以渔」。

这一章,我们把这四种核心方法掰开揉碎讲清楚。

3.1 特征图对齐:最直接的模仿

特征图对齐是最朴素的想法——让学生网络中间层的特征图,尽量接近教师网络的对应层。

具体做法很简单:

  • 选取教师网络某个中间层的输出特征图 F_t
  • 选取学生网络对应层的输出特征图 F_s
  • 计算两者之间的差异,作为损失函数的一部分

最常用的损失函数是均方误差(MSE):

L_feat = (1 / (N * C * H * W)) * ||F_t - f_adapt(F_s)||²

这里有个坑——教师和学生网络的通道数往往不一样。我遇到过好几次,学生网络通道数只有教师的一半,直接算 MSE 维度都不匹配。

我的习惯做法:在学生网络后面加一个 1×1 卷积适配层,把通道数映射到和教师一致。训练完成后,这个适配层可以扔掉。

特征图对齐的优点是实现简单,效果稳定。但缺点也很明显——它强制学生去匹配教师的具体数值,忽略了特征之间的相对关系。

我曾经踩过的坑:特征图对齐的权重不能设太大。有次我把权重设到 1.0,结果学生网络只顾着模仿特征图,分类任务完全学废了。建议权重从 0.1 开始调。

3.2 注意力迁移:关注该关注的地方

特征图对齐太死板了。换个思路——我们不要求学生模仿具体的特征值,而是模仿教师的「注意力分布」。

注意力迁移的核心思想:教师网络知道该关注图像的哪些区域,学生网络也应该学会这种关注能力。

具体实现上,常用的是基于注意力图的损失:

L_att = ||A_t / ||A_t||₂ - A_s / ||A_s||₂||₂

其中 A_t 和 A_s 分别是教师和学生的注意力图。注意力图可以从特征图的通道维度上求和得到:

A = sum(F², dim=1)  # 对通道维度求平方和

为什么要平方?我个人的理解是——平方操作放大了高响应区域,抑制了低响应区域,让注意力分布更「尖锐」。

方法 对齐目标 优点 缺点
特征图对齐 具体数值 实现简单,收敛快 过于严格,忽略相对关系
注意力迁移 空间分布 更灵活,泛化性好 可能丢失通道维度信息

注意力迁移在图像分类、目标检测任务中效果都不错。我做过一个实验,用注意力迁移训练的学生网络,在遮挡场景下的鲁棒性明显优于特征图对齐的方法。

3.3 关系知识蒸馏:学关系,不学数值

前面两种方法都是「点对点」的模仿。关系知识蒸馏换了个角度——让学生网络学习教师网络内部样本之间的关系。

举个例子:假设有三个样本 A、B、C。教师网络认为 A 和 B 的特征更接近,A 和 C 的特征更远。学生网络也应该学到这种远近关系。

关系知识蒸馏的典型实现:

  1. 从教师网络中提取一批样本的特征向量
  2. 计算样本之间的相似度矩阵(比如用余弦相似度)
  3. 对学生网络做同样的操作
  4. 最小化两个相似度矩阵之间的差异
L_rel = ||S_t - S_s||²
# S_t 和 S_s 分别是教师和学生的样本间相似度矩阵
关键洞察:关系知识蒸馏的优势在于,它不依赖具体的特征值,而是关注特征空间中的拓扑结构。这意味着即使教师和学生网络结构差异很大,关系知识仍然可以迁移。

我记得在一个跨架构蒸馏任务中(ResNet-50 蒸馏到 MobileNet-V2),特征图对齐的效果很差,但关系知识蒸馏却取得了不错的结果。原因就是两个网络的特征空间差异太大,点对点对齐根本行不通。

3.4 互信息最大化:信息论视角

互信息最大化是这四种方法里理论最深的。它从信息论的角度出发,目标是最大化教师特征和学生特征之间的互信息。

互信息衡量的是两个变量之间的依赖程度。互信息越大,说明学生特征包含的教师特征信息越多。

数学上,互信息的定义是:

I(X; Y) = KL(P(X,Y) || P(X)P(Y))

直接计算高维特征的互信息非常困难。实际中常用的是互信息下界估计方法,比如 InfoNCE 损失:

L_infoNCE = -log( exp(sim(z_t, z_s)) / sum(exp(sim(z_t, z_neg))) )

其中 z_t 和 z_s 是教师和学生的特征,z_neg 是负样本特征,sim 是相似度函数。

我的实践经验:互信息最大化方法在小样本场景下特别有效。因为互信息关注的是特征之间的相关性,而不是具体的数值,所以对数据量的要求更低。

四种方法各有适用场景。我一般这样选:

  • 教师和学生网络结构相近 → 特征图对齐
  • 需要空间注意力能力 → 注意力迁移
  • 跨架构蒸馏 → 关系知识蒸馏
  • 小样本或数据稀缺 → 互信息最大化

当然,实际项目中往往是多种方法组合使用。我习惯用特征图对齐做基础,再加上关系知识蒸馏做补充,效果比较稳定。

特征迁移四种方法对比 教师网络 学生网络 特征图对齐 MSE 损失 注意力迁移 注意力图分布对齐 关系知识蒸馏 样本间关系矩阵对齐 互信息最大化 InfoNCE 损失 四种方法可组合使用,效果往往更好

这四种方法构成了特征迁移的理论基础。实际项目中,我建议先从特征图对齐入手,跑通流程后再逐步加入其他方法。别一上来就搞太复杂,容易出问题。