0

0

积木式深度学习的正确玩法!新加坡国立大学发布全新迁移学习范式DeRy,把知识迁移玩成活字印刷

WBOY

WBOY

发布时间:2023-04-11 20:43:01

|

2104人浏览过

|

来源于51CTO.COM

转载

在距今980年前的北宋仁宗庆历年间,一场关于知识的革命在华夏大地正悄然发生。

这一切的导火索,并非那些身居庙堂的圣贤之言,而是一块块烧制规整的刻字泥坯。

这场革命,正是「活字印刷术」

活字印刷的精妙之处在于其中「积木拼装」的思想:工匠先制成单字的阳文反文字模,再按照稿件把单字挑选出来刷墨拓印,这些字模可按需求多次使用。

相比于雕版印刷术「一印一版」的繁琐工艺,模块化-按需组装-多次使用的工作模式几何倍数地提高印刷术的工作效率,也为千年来人类的文明发展传承奠定了基础。

回归到深度学习领域,在大预训练模型风行的今天,如何将一系列大模型的能力迁移到下游特定任务中已经成为一个关键问题。

以往的知识迁移或复用方法类似「雕版印刷」:我们往往需要按照任务需求训练新的完整模型。这些方法往往伴随着极大地训练成本,并难以扩展到大量的任务当中。

于是一个很自然的想法产生了:我们是否可以通过把神经网络,也看作一个个积木的拼装,并通过对已有网络进行重组装的方式,获得新的网络,并以此进行迁移学习呢?

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

在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的聚类算法。

对于每一次的网络划分,总是将每一个子网络分配到中心距离与其最大的一个功能集。 由于内外层循环都是迭代式切有收敛性保证的,就能通过求解以上问题得到按照功能级的最优子网络拆分。

基于整数优化的网络组装

网络拆分将每个网络分成个子网络,每个子网络属于一个等价集。可以由此作为搜索空间,找到在下游任务上最优的网络拼接。

图片

由于子模型的多样性,这种网络组装是一个搜索空间较大的组合优化问题,定义了一定的搜索条件:每次网络组合从同一个功能集拿出一个网络块,并按照其在原始网络中的位置进行放置;合成的网络需满足计算量的限制。这一过程被描述为一个0-1整数优化问题优化。

图片

为了进一步减小每一次计算组合模型性能的训练开销,作者借鉴了NAS训练中一种无需训练的替代函数,称为NASWOT。由此,可以只是用网络在指定数据集上的推理,来近似网络的真实性能。

通过上述的拆分-重组过程,就能将不同的预训练模型拼接融合起来,以得到全新且更强的模型。

实验结果

模型重组适用于迁移学习

作者将一个包涵30个不同预训练网络的模型库尽心拆解重组,并在ImageNet和其他9个下游分类任务上进行性能评估。

实验中采用了两种不同的训练方式:Full-Tuning,表示对拼接之后的模型所有参数都进行训练;Freeze-Tuning,表示只对拼接后的连接层进行训练。

此外,还选择了五种尺度的模型并进行比较,称为DeRy(, ,)。

图片

可以再上图看到,在ImageNet数据集上,DeRy得到的不同尺度的模型都可以优于或持平模型库中大小相当的模型。

可以发现,即便只训练链接部分的参数,模型仍然可以获得较强的性能增益。例如DeRy(4,90,20)的模型在只训练1.27M参数的条件下达到了78.6%的Top1准确率。

图片

同时在9个迁移学习的实验也验证了DeRy的有效性。可以看到在没有预训练的情况下,DeRy的模型在各个模型大小的比较中都能优于其他模型;通过对重新组装的模型进行持续预训练,模型性能还能够有较大幅度的提升,达到红色的曲线。

相比于其他的一些从模型库做迁移学习的方法例如LEEP或LogME,DeRy可以超越模型库本身的性能限制,甚至优于原本模型库中的最佳模型。

模型重组的性质探究

作者也很好奇本文提出的模型重组的性质,例如「模型会按照什么样的模式进行拆分?」和「模型会按照何种规则进行重组?」。对此作者提供了实验进行分析。

功能相似性,重组位置与重组性能

作者探究了将同一个网络块被其他拥有不同功能相似度的网络块进行替换后,Freeze-Tuning 20个epoch的的性能对比。​

图片

对在ImageNet上训练后的ResNet50, 将其第3和第4个stage的网络块, 与ResNet101, ResNeXt50和RegNetY8G的不同网络块进行替换。

可以观察到,替换的位置对性能有极大的影响。

图片

比如将第3个stage换成其他网络的第3个stage,重组网络的性能会特别强。同时,功能相似性也是和重组性能正向匹配的。

在同一深度的网络模型块有较大的相似度,导致了训练后有较强的模型能力。这指向了相似性-重组位置-重组性能三者的依存和正向关系。

拆分结果的观察 

下图中,作者画出了第一步拆分的结果。颜色代表网络块和美歌等价集中心网络块的相似性。

可以看到,本文提出的划分倾向于将子网络按照深度聚类在一起并加以拆分。同时CNN和Transformer的功能相似性数据较小,但CNN与不同架构CNN之间功能相似性通常较大。

图片

使用NASWOT作为性能指标 

由于本文第一次应用NASWOT来进行零训练迁移性预测,作者也对这一指标的可靠性进行了检验。

在下图中,作者计算不同模型爱不同数据集上NASWOT的分数数值,并与迁移学习的准确的准确率加一对比。

可以观察到,NASWOT分数得到了较准确的性能排序(Kendall's Tau相关性)。这表明本文使用的零训练指标能有效预测模型的在下游数据的性能。

图片

总结

本文提出了一种新的知识迁移任务,称为深度模型重组 (Deep Model Reassembly, 简称DeRy)。他通过打散已有异质预训练模型并重新组装的方式,来构造与下游任务适配的模型。

作者提出了一个简单的两阶段实现方式来完成这一任务。首先,DeRy求解一个覆盖集问题并对所有预训练网络按照功能级进行拆分;第二步中,DeRy将模型拼装形式化为一个0-1整数规划问题,保证组装后模型在特定任务上性能最佳。

该工作不但收获了较强的性能提升,同时也映射出了不同神经网络之间可能存在的连接性。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

89

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

276

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

59

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

99

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

105

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

230

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

619

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

173

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 2.1万人学习

swoole进程树解析
swoole进程树解析

共4课时 | 0.2万人学习

ThinkPHP6.x 微实战--十天技能课堂
ThinkPHP6.x 微实战--十天技能课堂

共26课时 | 1.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号