新智元报道
编辑:LRS 好困
【新智元导读】NeurIPS 2022上的一篇论文提出一种新的迁移学习范式,称为「深度模型重组」。它可以将不同种类的深度学习模型类似积木一样,按照下游任务拼装起来,并获得极大的性能增益。
在距今980年前的北宋仁宗庆历年间,一场关于知识的革命在华夏大地正悄然发生。这一切的导火索,并非那些身居庙堂的圣贤之言,而是一块块烧制规整的刻字泥坯。这场革命,正是「活字印刷术」。活字印刷的精妙之处在于其中「积木拼装」的思想:工匠先制成单字的阳文反文字模,再按照稿件把单字挑选出来刷墨拓印,这些字模可按需求多次使用。相比于雕版印刷术「一印一版」的繁琐工艺,模块化-按需组装-多次使用的工作模式几何倍数地提高印刷术的工作效率,也为千年来人类的文明发展传承奠定了基础。
回归到深度学习领域,在大预训练模型风行的今天,如何将一系列大模型的能力迁移到下游特定任务中已经成为一个关键问题。
以往的知识迁移或复用方法类似「雕版印刷」:我们往往需要按照任务需求训练新的完整模型。这些方法往往伴随着极大地训练成本,并难以扩展到大量的任务当中。
于是一个很自然的想法产生了:我们是否可以通过把神经网络,也看作一个个积木的拼装,并通过对已有网络进行重组装的方式,获得新的网络,并以此进行迁移学习呢?
在NeurIPS 2022上,来自新加坡国立大学LVlab的团队就提出了一种全新的迁移学习范式,称为《Deep Model Reassembly》深度模型重组。论文链接:https://arxiv.org/abs/2210.17409代码链接:https://github.com/Adamdad/DeRy项目主页:https://adamdad.github.io/dery/OpenReview:https://openreview.net/forum?id=gtCPWaY5bNh作者首先将已有的预训练模型按照功能相似度拆解成一个个子网络,再通过把子网络重新组装的方式,构建在特定任务上高效且易用的模型。该论文以886的评分被NeurIPS接收,并被推荐为Paper Award Nomination。本文中,作者探索了一种新的知识迁移任务,称为深度模型重组(Deep Model Reassembly, 简称DeRy),用于通用模型重用。给定一组在不同数据和异构架构上训练得到的预训练模型,深度模型重组首先将每个模型拆分为独立的模型块,然后有选择地以在硬件和性能约束下对子模型块重新组装。该方法类似于将深度神经网络模型当作成积木:将已有大积木拆解成为一个个小积木块,然后将零件按照需求组装起来。组装起来的新模型不但应具备更强的性能;且组装过程应尽可能不改变原模块的结构和参数,保证其的高效性。把深度模型打散并重组
本文的方法可分为两部分。DeRy首先求解一个覆盖集问题(Set Cover Problem)并对所有预训练网络按照功能级进行拆分;第二步中,DeRy将模型拼装形式化为一个0-1整数规划问题,保证组装后模型在特定任务上性能最佳。
深度模型重组(Deep Model Reassembly)首先作者对深度模型重组装的问题进行定义:给定个训练好的深度模型,称作一个模型库。每一个模型由层链接组合而成, 表示为。不同的网络可以拥有完全不同的结构和操作,只要保证模型是一层一层连接而成。给定一个任务,希望找到在上效果最佳的层混合模型,且模型的计算量满足一定的限制:
指代模型在任务上的性能; 表示第个模型的第层操作; 是模型的约束项。该问题需要搜索对所有模型层的所有排列,以期最大化收益。从本质而言,这一任务牵涉一个极其复杂的组合优化。为了简化搜索成本,本文首先将模型库模型从深度方向拆分开,形成一些更浅更小的子网络;然后进行子网络层次上的拼接搜索。按照功能级对网络进行拆分DeRy的第一步在于把深度学习模型像积木一样拆解开。作者采用了在深度上的网络拆分方式,将深层模型拆分为一些较浅的小模型。文中希望拆开的子模型尽可能拥有不同的功能性。这一过程可以类比于把积木拆解,并分门别类放入玩具箱的过程:相似的积木被放在一起,不同的积木被拆开。
例如,将模型拆分为底层和高层,并期待底层主要负责识别曲线或形状等局部模式,而高层能判断样本的整体语义。
使用一般的特征相似度衡量指标,可以对任意模型的功能四相似度进行量化的度量。其中的关键思想在于,对于相似的输入,相同功能的神经网络能产生相似的输出。于是,对于两个网络和和起对应的输入张量X和X',他们的功能相似性被定义为:于是就可以通过功能相似性将模型库划分成为个功能等价集。在每一个等价集中的子网络拥有较高的功能相似度,同时每个模型的划分保证模型库的可分性。这样进行拆解的一个核心好处在于,由于具有功能相似性,每一个等价集中的子网络可以看做近似可交换的,即一个网络块可以被同一等价集的另一子网络所替换,而不影响网络预测。上述拆分问题可以形式化为一个三层的有约束的优化问题:该问题的内层优化和一般的覆盖集问题或的图分割问题有较大的相似性。于是,作者使用一种启发式的Kernighan-Lin (KL)算法对内层进行优化。其大意在于,对两个随机初始化的子模型,每次交换一层操作,如果该交换能增加评估函数的值,则保留这一交换;否则放弃这一交换。这里的外层循环采取了一种K-Means的聚类算法。对于每一次的网络划分,总是将每一个子网络分配到中心距离与其最大的一个功能集。 由于内外层循环都是迭代式切有收敛性保证的,就能通过求解以上问题得到按照功能级的最优子网络拆分。基于整数优化的网络组装网络拆分将每个网络分成个子网络,每个子网络属于一个等价集。可以由此作为搜索空间,找到在下游任务上最优的网络拼接。