- SignalDesk1小时前
白露未晞me, 有的人喜欢瞻仰皇陵,而有的人喜欢凭吊荒冢。 查看知乎原文 emmmmm,要不我来提名一下知识蒸馏 (knowledge distillation)? 知识蒸馏早期的一个主要目标其实就是模型压缩。其中一个集大成的工作是 Hinton 他们的 Distilling the Knowledge in a Neural Network ,核心思想无非是大型神经网络或者多个模型组成的 ensemble 效果很好,但真正部署起来又慢又贵,于是可以让一个更小的 Student 去模仿 Teacher,把 Teacher 输出中包含的信息"蒸馏"到小模型里。 即大而强的 Teacher >>>> 小而便宜且方便部署的 Student。 但是后来事情就莫名其妙地变得诡异了起来 Orz。 研究者开始更关注蒸馏对训练本身的影响了。 2017 年 CVPR 的 A Gift From Knowledge Distillation 就报告了几个有意思的结果:通过网络中间层传递信息,接受知识迁移的 Student 不仅优化速度更快,而且可以超过一个与自己大小相同、直接从头训练的网络。甚至 Teacher 是在另一个任务上训练出来的,知识迁移有时照样能带来收益。这些结果不得不让人更想单独研究一下:蒸馏究竟怎样影响了模型的训练? A Gift From Knowledge Distillation 于是大家就开始"玩花活"了(注:此处为褒义),其中以 2018 年 ICML 的 Born Again Neural Networks 最为出圈,现在都快 2000citations 了。 作者暂时放下了模型压缩这个目标,直接研究 Student 和 Teacher 一样大的情况。在这组实验里,两者使用完全相同的网络结构和参数规模。Teacher 训练完以后,用它的预测去教一个重新随机初始化、结构与自己相同的 Student。结果,在多组实验中,Student 居然超过了 Teacher (作者在计算机视觉和语言建模任务上都观察到了这种现象)。 Born Again Neural Networks 到这里,知识蒸馏的用途就出现了一个很有意思的变化。最初的出发点是"Teacher 太大,所以需要一个更小的 Student";现在却发现,Teacher 和 Student 可以一模一样大,而且 Student 还可能比 Teacher 强。更有意思的是,这还没完。既然新训练出来的 Student 可以表现得更好,那干脆让它毕业以后继续当下一代 Teacher: 于是,同一个网络架构可以一代一代地"教自己的下一代"。当然,效果不会保证逐代提高:原论文就观察到,收益经过几代后会趋于饱和,有的代次还会回落。而这种让同架构模型教下一代的做法,还有一个更家喻户晓的名字,那就是 self-distillation (因为这其实也算是自蒸馏的一种形式)。 2019 年 ICCV 的 Be Your Own Teacher: Improve the Performance of Convolutional Neural Networks via Self Distillation 又展示了另一种做法。作者连一个独立、预先训练好的 Teacher 都不要了,直接在同一个网络的不同深度接上辅助分类器,让最深分支的预测和特征去指导较浅分支,整个网络一起训练,相当于网络内部自己给自己做知识蒸馏。在 CIFAR-100 上,将各分支的预测集成后,相对普通训练基线的准确率平均提升了 2.65 个百分点,不同架构上的提升从 0.61 到 4.07 个百分点不等。 Be Your Own Teacher: Improve the Performance of Convolutional Neural Networks via Self Distillation 于是,知识蒸馏的用途就从"大模型教小模型",扩展到了"一样大的模型也可以教,学生甚至可以超过老师",再到"同一个网络内部也能自己教自己"。 再后来,花样就更多了,而且是一系列更加如雷贯耳的工作,譬如 BYOL → DINO → iBOT → data2vec → DINOv2 → SigLIP 2。这些想必能刷到这个回答的人都看过,我就不多说。 不过也许我们这里可以简单偏个题,Teacher 到底提供了什么样的信息? Hinton 最初讨论知识蒸馏时,一个很重要的想法是 soft targets,也就是软标签中包含的 dark knowledge。比如一张猫的图片,标准标签只会告诉网络"它是猫";Teacher 可能输出猫 0.9、狗 0.07、狐狸 0.02、汽车 0.01。这里除了正确答案,其余类别的相对概率也包含信息:在 Teacher 看来,这张图片更容易与狗混淆,与汽车混淆的可能性则小得多。 Born Again Neural Networks 专门拿这件事做了实验。他们设计了 Dark Knowledge with Permuted Predictions,简称 DKPP:保留 Teacher 预测概率最高的类别及其概率,把其余类别的概率随机调换位置。这样一来,"哪个非首选类别对应哪个概率"的关系就被打乱了,但 Teacher 的最高置信度和整组概率值仍然保留着。 结果,使用这些被打乱的输出训练,Student 仍然可以超过 Teacher,不过提升通常小于完整的蒸馏方法。这说明,具体的类别关系并不足以解释全部收益,打乱后保留下来的信息也能帮助训练。 到了 2020 年,Mobahi、Farajtabar 和 Bartlett 在 NeurIPS 的 Self-Distillation Amplifies Regularization in Hilbert Space 里直接研究了前面那个问题:自蒸馏没有收到关于任务的新信息,为什么模型在未参与训练的数据上仍然可能表现得更好? 他们在一个带有正则化、可以严格分析的 Hilbert 空间函数拟合模型里发现,反复自蒸馏会强化正则化效果,逐渐限制构成拟合函数的成分。这样一来,前几轮自蒸馏可能抑制过拟合,提高泛化能力;继续蒸馏下去,约束越来越强,又可能开始欠拟合,性能反而下降。虽然这个理论有明确的模型假设,不能直接当成所有深度神经网络的统一解释,但它给出了一个具体机制:即使没有新增的任务信息,训练方式的变化也足以带来泛化收益。 Anyway,感觉这一系列的工作的发展还是挺有意思的。(ง •̀_•́)ง 查看知乎讨论
- 情报分类:技术学习与提效
- 分类依据:内容涉及技术、AI、软件工具或工程实践
- 信息来源:资讯 / 知乎日报
- 发布时间:2026/9/26 07:04:13
- 暂无回复