摘要:AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:liyazhou@jiqiz
AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com
如今,像各种智能物联网(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%。
来源:机器之心Pro