MergeNet:突破异构知识迁移的壁垒

MergeNet 是一种新的知识迁移方法,可跨越不同的模型架构、任务和模态,在边缘计算设备上实现高效的深度学习。

原文标题:模型参数作知识通用载体,MergeNet离真正的异构知识迁移更进一步

原文作者:机器之心

冷月清谈:

边缘计算设备的有限资源限制了深度神经网络的部署。传统的知识迁移方法,如知识蒸馏和迁移学习,依赖于模型结构或任务特征的共享,限制了其应用范围。浙江大学和上海交通大学的研究团队提出了 MergeNet,一种通用的知识迁移方法,旨在跨越模型架构、任务类型和数据模态的差异,实现真正的异构知识迁移。

MergeNet 使用模型参数作为知识的通用载体,并通过低秩矩阵表示来消除模型架构差异。为了解决异构模型之间知识不兼容的问题,MergeNet 引入了一个参数适配器,学习弥合异构模型参数空间的差距,促进知识的直接交互和融合。该适配器利用注意力机制,允许目标模型根据自身需求从源模型中提取最有价值的知识片段。

MergeNet 的训练过程分为自学习和互学习两个阶段。自学习阶段,模型通过梯度下降优化自身参数;互学习阶段,模型进行知识迁移。研究团队认为,将自学习穿插在知识迁移过程中,可以使模型在吸收外来知识的同时,巩固和优化自身的知识结构。

实验结果表明,MergeNet 在跨结构、跨模态和跨任务知识迁移场景中均取得了显著的性能提升。例如,在 CIFAR-100 数据集上,MobileNetV2 的 Top-1 准确率提升了 1.02%;在 VQA v2.0 和 MSCOCO 任务上,准确率也得到了显著提高。

怜星夜思:

1、MergeNet 使用模型参数作为知识载体,相比传统的 logits 或 feature map,这种方法的优势和局限性在哪里?
2、MergeNet 中的参数适配器是如何工作的?它如何解决异构模型之间知识不兼容的问题?
3、MergeNet 提出的自学习和互学习策略,对知识迁移的效果有什么影响?

原文内容

图片
AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:[email protected][email protected]

今,像各种智能物联网(IoT)设备这样的边缘计算设备无处不在。然而,这些设备通常受限于有限的计算资源和存储容量,导致在这些设备上部署深度神经网络(DNNs)时,往往需要使用较小的神经网络架构。虽然这些小型网络在计算上更为经济,但往往会牺牲一定的性能。

为了缓解这一限制,知识转移是解决方案之一。现有的知识转移方法主要有两种:知识蒸馏和迁移学习。

知识蒸馏通过训练一个紧凑的学生模型来模仿教师模型的 Logits 或 Feature Map,提高学生模型的准确性。迁移学习则通常通过预训练和微调,将预训练阶段在大规模数据集上学到的知识通过骨干网络共享应用于下游任务。

这两种传统的知识迁移方法,往往依赖于模型结构或特定任务特征 / 标签的共享元素。这种方法虽然在某些情况下效果不错,但它们一定程度上限制了知识迁移的应用范围,尤其是在更一般的情况下,模型架构,任务类型可能都不同,这些方法就显得力不从心了。

想象一下,在物联网(IoT)的应用场景中,不同的设备可能面临着截然不同的计算资源和任务需求,所执行的任务和部署的模型也是千差万别,这就给进行知识迁移带来了额外的挑战。

基于以上问题,来自来自浙江大学和上海交通大学的研究团队提出了一种更加灵活、更加通用的知识迁移方法,来应对多变的需求和挑战。这需要做到能跨越模型架构的差异,跨越任务类型的界限,甚至跨越不同数据模态之间的鸿沟,实现真正意义上的异构知识迁移。


  • 论文标题:MergeNet: Knowledge Migration across Heterogeneous Models, Tasks, and Modalities
  • 论文链接:https://arxiv.org/abs/2404.13322
  • 项目地址:https://github.com/Fantasylii/mergenet
 
图 1. 知识蒸馏、骨干共享和 MergeNet 的比较

研究挑战

该团队的目标是建立一个跨异构模型架构、任务与模态的通用知识迁移框架。与传统知识迁移方法相比,存在两方面挑战:

如何实现异构模型知识的统一表示?

知识蒸馏通常利用 Logits 和 Feature Map 表示知识,但依赖于教师模型与学生模型执行任务类型。

迁移学习通常通过共享参数实现知识迁移,这要求源模型与目标模型具有相同架构,无法直接应用于模型架构可能不同的异构知识迁移场景。

如何实现异构模型知识的适配?

异构模块之间知识通常不兼容,当异构模块具有显着不同的功能时,例如在线性层和注意力机制模块之间,直接知识迁移可能会破坏原始模块的知识。

在端云环境中,云端通常采用复杂的深度学习模型,这些模型包含大量参数和复杂层次结构。相比之下,端侧设备由于计算能力和存储资源的限制,通常使用轻量化的模型。

较大的模型比较小的模型包含更高级的知识(例如细粒度的特征组合),而后者可能无法直接理解这些知识,使得传统的知识迁移方法面临适配性和兼容性的问题。

MergeNet 框架
 
图 2.MergeNet 框架

异构模型知识表示

如上文所述,无法直接使用 Logits 和 Feature Map 作为知识表示。相比之下,权重共享更能符合研究目标,不管什么架构的模型,执行什么任务,通过反向传播迭代,最终的知识都会保存在模型参数中,这启发了该团队将模型参数作为知识的通用载体。

在探索的过程中,该团队还尝试了在异构模型之间直接进行参数共享。这种方法能应用于权重矩阵大小相同的情况,但是在其他情况下便不再有效。

他们也尝试过让大小不同的参数强行共享,例如,让一个大小为 [2, 2] 的矩阵作为大小为 [5, 5] 矩阵的子矩阵,但这种强行的操作并不有效,异构的知识需要进行适配。

另外一点,由于权重矩阵通常较大,直接在两个权重矩阵上进行操作所需要的计算资源过大,需要在适配之前进行一定的处理。为此,研究团队对模型参数进行重新编码,以低秩矩阵作为对异构知识的统一表示,消除了模型架构上的差异。

异构知识适配

简单的参数共享会导致异构模型之间的知识不兼容,该团队的思路是在模型之间引入一个参数适配器。它的任务是学习弥合异构模型参数空间的差距,促进这些参数空间内知识的直接交互,提取并融合异构模型间的知识:


其中,表示知识迁移后两个模型的参数。为了综合利用两模型的知识,在此引入低秩参数知识适配器(LPKA)。该机制用于从低秩矩阵中提取知识,并合并来自不同模型的知识以生成新的参数。

将低秩分解获得的   按行 / 列展平,利用注意力机制将源模型的知识整合到目标模型中:


这个过程可以类比为模型根据自身的需求,从另一个模型中提取当前最有价值的知识片段,而不是全盘接收。这允许动态调整参数映射,在整个训练过程中都能有效地适应不断变化的知识需求。

就像在小学阶段,我们学习的是加减乘除,而在大学,则会学习微积分;如果反之,在小学便一起学习微积分,不仅难以理解,而且也没有必要。

训练过程 (自学习和互学习)

回顾知识蒸馏的过程,学生模型除了根据教师的输出标签或中间层的表示计算损失,还会根据自身输出与数据标签计算损失。这好像是说,在学习的过程中,不能仅仅的去模仿老师,还要根据已经从老师那里学到的知识来产生自己的思考。

在这里,研究团队将学生从老师那里得到知识的过程称为互学习(在 MergeNet 中学习是可以相互的,学生可以变成老师,老师也可以变成学生),而学生根据知识自己学习的过程称为自学习。

基于此,他们将 MergeNet 的训练过程分为自学习和互学习两个阶段。自学习阶段,模型通过梯度下降算法优化自身参数;而互学习阶段,则涉及到模型间的知识迁移。

该团队认为,仅依赖知识迁移无法达到最佳效果,因此提出了在知识迁移过程中穿插自学习,类似于在教师指导下的自我巩固阶段。这种设计使得模型在吸收外来知识的同时,也能够巩固和优化自身的知识结构。

实验结果

研究团队在跨结构、跨模式和跨任务知识迁移这几个具有挑战性的场景中,对 MergeNet 进行了广泛的实验。

跨结构知识转移实验

使用 CIFAR-100 数据集,在 ResNet50 和 MobileNetV2 之间进行知识迁移。从一个模型的模块向结构不同的另一个模型的模块转移知识,具体是从线性分类器向卷积层转移知识。

如表 1 所示,相比于知识蒸馏,MergeNet 在 MobileNetV2 上实现了 1.02% 的 Top-1 准确率提升。


跨模态知识转移实验

在 VQA v2.0 视觉问答任务和 MSCOCO 图像 - 文本检索任务上进行实验,实验模型为 X-VLM。利用一种模态的知识指导另一种模态的学习,具体是视觉编码器参数与文本编码器参数之间的知识转移。

如表 2 所示,MergeNet 在不同设置下均显著提升了准确率。表明在模态信息进入模态交互器之前进行模态编码器之间的知识转移,有助于交互器更轻松地整合来自不同模态的信息。
 

跨任务知识转移实验

研究分类任务(IMDb 情感分类)和问答任务(SQuAD v2.0)上的跨任务知识转移效果。分别使用 BERT 和 DistilBERT 执行这两个任务。

如表 3 所示,MergeNet 在两个任务上均实现了性能提升。例如,从分类任务向问答任务转移知识,使 Exact Match(EM)得分提高了 1.72%,F1 得分提高了 2.37%;从问答任务向分类任务转移知识,使错误率降低了 0.52%。


消融实验

  • 训练过程中自学习的比例的影响
该团队研究了控制训练过程中自学习比例的知识转移周期的影响。下图展示了在不同 Tcycle 系数下,MobileNetV2 和 ResNet50 在 CIFAR-100 数据集上的知识转移结果。观察到在训练过程中加入自学习可以提升性能。

例如,当 Tcycle 设置为 4 时,MobileNetV2 的性能达到了 66.51%,比没有自学习时的 60.09% 提高了 6.42%。

图 3. 训练过程中自学习的比例的消融实验

  • 各组件的有效性

如下表所示,通过消融研究验证了 MergeNet 中每个组件的有效性。可以使用 MLP 作为参数适配器,但这种情况下目标模型会直接采用源模型的知识,而忽略自身积累的知识,可能导致训练不稳定。与 MLP-based 参数适配器相比,MergeNet 的性能分别提高了 1.82% 和 1.31%。


更多研究细节,请参阅论文原文。

© THE END 
转载请联系本公众号获得授权
投稿或寻求报道:[email protected]

参数适配器通过学习一个映射关系,将源模型的低秩参数转换成目标模型的参数空间,从而实现知识的迁移。它利用注意力机制,让目标模型可以选择性地吸收源模型的知识,避免知识冲突。

我觉得自学习还有个作用是防止灾难性遗忘。不断地进行自学习,可以巩固目标模型在自身任务上的表现,避免被迁移的知识覆盖或干扰。

我觉得使用模型参数作为知识载体最大的优势就是通用性强,可以适配不同的模型结构和任务类型。传统的 logits 或 feature map 比较依赖特定的任务和模型结构,迁移性比较差。但是,参数量巨大,处理起来计算成本比较高,这也是一个局限性。

从实际应用角度来说,参数作为知识载体,更容易与现有的模型训练框架结合,方便部署和应用。但参数的解释性确实是个问题,如何理解参数中蕴含的知识,还有待进一步研究。

只进行互学习,容易出现过拟合源模型,导致目标模型丧失自身的特点。而加入自学习,可以让目标模型在学习新知识的同时,保留自身的优势,最终达到“取长补短”的效果。

更学术一点说,参数适配器学习的是一个低秩空间到另一个低秩空间的变换矩阵。这个变换矩阵可以将源模型的知识投影到目标模型的参数空间,同时保持知识的完整性和一致性。

自学习和互学习交替进行,就像学生既要听老师讲课,也要自己思考和练习。互学习阶段吸收外部知识,自学习阶段巩固和内化这些知识,两者结合才能达到最佳的学习效果。

补充一点,参数作为知识载体,可以更完整地表达模型学习到的信息,而logits和feature map只是模型知识的表面部分体现。局限性除了计算成本高,还有就是解释性可能不如logits和feature map直观。

可以理解为一个翻译器,把源模型的“语言”翻译成目标模型能理解的“语言”。这个翻译过程不是简单的复制粘贴,而是根据目标模型的需求进行调整,有点像“按需索取”。