980年前的北宋仁宗统治时期,一场知识革命正在中国悄然发生。这一切的导火索,并不是住在庙里的先贤们的话语,而是一块一块烧制的雕刻整齐的泥块。这场革命就是“活字印刷”。活字印刷的巧妙之处在于“搭积木”的思路:工匠们先制作出单字的正楷模,然后根据稿件选择单字,用墨印制。这些模具可以根据需要多次使用。与雕印“一印一版”的繁琐流程相比,模块化按需组装-多用途工作模式几何级地提高了印刷的工作效率,也为印刷的发展和传承奠定了基础。人类文明几千年。根据。回到深度学习领域,在大型预训练模型大行其道的今天,如何将一系列大模型的能力迁移到下游的具体任务中成为关键问题。以往的知识迁移或复用方式类似于“雕刻和印刷”:我们经常需要根据任务要求训练新的完整模型。这些方法通常伴随着大量的训练成本,并且难以扩展到大量任务。于是一个很自然的想法就冒出来了:我们能不能把神经网络看成是积木的组装,再把已有的网络重新组装起来,得到一个新的网络,用于迁移学习呢??在NeurIPS2022上,来自新加坡国立大学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接收,并被推荐为PaperAwardNomination。在本文中,作者探索了一种新的知识转移任务,称为深度模型重组(简称DeRy),用于通用模型重用。给定一组在不同数据和异构架构上训练的预训练模型,深度模型重组首先将每个模型拆分为独立的模型块,然后在硬件和性能约束下选择性地优化子模型块。重新组装。这种方法类似于将深度神经网络模型当成积木:将已有的大积木拆成小积木,然后将各个部分按要求拼装起来。组装后的新车型不仅要有更强的性能;组装过程尽量不改变原模块的结构和参数,保证其高效率。本文对深度模型进行打散重组的方法可以分为两部分。DeRy首先解决一个集合覆盖问题(SetCoverProblem),将所有预训练网络按照功能层级进行拆分;第二步,DeRy将模型组装形式化为一个0-1整数规划问题,确保组装后的模型在特定任务上处于最佳性能。深度模型重组(DeepModelReassembly)首先,作者定义了深度模型重组的问题:给定一个训练好的深度模型,称为模型库。每个模型由层链接组成,表示为。不同的网络可以有完全不同的结构和操作,只要模型是逐层连接的。给定一个任务,希望找到对网络效果最好的层混合模型,模型的计算量满足一定的约束:在任务上的表现;第一层的操作代表第一个模型;这个问题需要搜索所有模型层的所有排列,以最大化回报。从本质上讲,这项任务涉及极其复杂的组合优化。为了简化搜索代价,本文首先将模型库模型从深度方向进行拆分,形成一些更浅更小的子网络;然后在子网级别进行拼接搜索。按照功能层级拆分DeRy的网络,第一步就是像搭积木一样拆解深度学习模型。作者采用网络深度分裂的方法,将深层模型分裂成一些较浅的小模型。在本文中,希望分解后的子模型具有尽可能不同的功能。这个过程可以类比为将积木拆开,按类别放入玩具盒的过程:相似的积木放在一起,不同的积木拆开。比如将模型拆分为low-level和high-level,期望low-level主要负责识别局部模式如曲线或形状,而high-level可以判断样本的整体语义。使用一般的特征相似性度量,可以量化任何模型的特征四相似性的度量。这里的关键思想是对于相似的输入,具有相同功能的神经网络可以产生相似的输出。因此,对于两个网络以及对应的输入张量X和X',它们的函数相似度定义为:则模型库可以通过函数相似度划分为函数等价集。每个等价集中的子网络具有很高的功能相似性,每个模型的划分保证了模型库的可分离性。这种拆解的一个核心好处是,由于功能相似,每个等价集中的子网络可以看作是近似可交换的,即一个网络块可以被同一等价集的另一个子网络替换,而不影响网络预测。上述分裂问题可以形式化为一个三层约束优化问题:该问题的内层优化类似于一般的覆盖集问题或图分割问题。因此,作者使用启发式Kernighan-Lin(KL)算法来优化内层。总体思路是,对于两个随机初始化的子模型,每次交换一层操作,如果交换能够增加评估函数的值,则保留交换;否则,交换被丢弃。这里的外层循环采用了K-Means聚类算法。对于每个网络划分,每个子网络总是分配给一个中心距离最大的功能集。由于内环和外环是迭代的并且有收敛保证,所以通过解决上述问题可以得到按功能层级划分的最优子网。整数优化网络组装和网络分裂将每个网络划分为子网络,每个子网络属于一个等价集。这可以用作搜索空间,以找到下游任务的最佳网络拼接。由于子模型的多样性,这类网络组装是一个搜索空间很大的组合优化问题,定义了一定的搜索条件:每个网络组合从同一个函数集中取出一个网络块,在位置中的原始网络位置;合成网络需要满足计算量的限制。这个过程被描述为一个0-1整数优化问题的优化。为了进一步减少每次计算组合模型性能的训练开销,作者借鉴了NAS训练中不需要训练的替代函数,称为NASWOT。因此,可以通过简单地使用网络对指定数据集的推理来近似网络的真实性能。通过上面的split-recombination过程,可以对不同的预训练模型进行拼接和融合,得到一个新的更强的模型。实验结果模型重组适用于迁移学习。作者仔细拆解重组了包含30个不同预训练网络的模型库,并对ImageNet和其他9个下游分类任务进行了性能评估。实验中使用了两种不同的训练方式:Full-Tuning,即对拼接模型的所有参数进行训练;Freeze-Tuning,意思是只训练拼接的连接层。此外,选择并比较了五个尺度的模型,称为DeRy(,,)。从上图可以看出,在ImageNet数据集上,DeRy得到的不同尺度的模型都可以优于或等于模型库中可比尺度的模型。可以发现,即使只训练链接部分的参数,模型仍然可以获得很强的性能增益。例如DeRy(4,90,20)模型在仅训练1.27M参数的情况下就达到了78.6%的Top1准确率。同时,DeRy的有效性也在9个迁移学习实验中得到了验证。可以看出,在不进行预训练的情况下,DeRy的模型在各种模型尺寸的对比中都能胜过其他模型;通过对重组后的模型进行持续的预训练,可以大幅提升模型的性能。到红色曲线。与其他一些从模型库迁移学习的方法,如LEEP或LogME相比,DeRy可以超越模型库本身的性能极限,甚至优于原始模型库中的最佳模型。探索模型重组的本质作者也很好奇本文提出的模型重组的本质,比如“模型会按照什么模式拆分?”和“模型将根据什么规则进行重组?”。作者提供了一个实验进行分析。Functionalsimilarity,reorganizationpositionandreorganizationperformance作者探索了Freeze-Tuning在用其他具有不同功能相似性的网络块替换相同网络块后20个epoch的性能比较。对于在ImageNet上训练的ResNet50,将第三阶段和第四阶段的网络块替换为ResNet101、ResNeXt50和RegNetY8G的不同网络块。可以看出,替换位置对性能有很大影响。例如,如果将第三级换成另一个网络的第三级,重组后的网络性能会特别强。同时,功能相似性也与重组性能正相关。相同深度的网络模型块具有更大的相似性,导致训练后的模型能力更强。这表明相似性-重组位置-重组性能之间存在依赖性和正相关性。分裂结果观察下图中,作者画出了第一步分裂的结果。颜色表示网络块与Megol等价集中心的网络块的相似性。可以看出,本文提出的划分倾向于将子网络聚类在一起,并根据深度进行拆分。同时,CNN和Transformer的功能相似度数据很小,但CNN和不同架构的CNN之间的功能相似度通常很大。使用NASWOT作为性能指标由于本文首次将NASWOT应用于零训练可迁移性预测,作者还检查了该指标的可靠性。下图中,作者计算了NASWOT在不同模型、不同数据集上的得分,并与迁移学习的准确率进行了比较。可以观察到,NASWOT分数导致更准确的性能排名(Kendall的Tau相关性)。这表明本文使用的零训练指标可以有效地预测模型在下游数据上的性能。总结本文提出了一种新的知识迁移任务,称为DeepModelReassembly(简称DeRy)。他通过打散现有的异构预训练模型并重新组装来构建适合下游任务的模型。作者提出了一个简单的两阶段实现来完成这项任务。首先,DeRy解决了一个覆盖集问题,将所有预训练网络按照功能层级进行拆分;第二步,DeRy将模型组装形式化为一个0-1整数规划问题,以保证组装模型在特定任务上的性能最优。这项工作不仅实现了强大的性能提升,而且还映射了不同神经网络之间可能的连接。
