如何融合两个神经网络?模型合并与灾难性遗忘详解

两个最小容量专精神经网络的无损等体积合并,在信息论层面几乎不可行。
本文围绕一个极具挑战性的神经网络合并问题展开:如何在不增加模型体积的前提下,将一个识猫网络和一个识狗网络合二为一,同时避免灾难性遗忘。文章指出,神经网络知识以分布式方式存储于全部权重中,当两个网络各自以"最小容量"拟合任务时,同等大小的合并网络从信息论角度根本无法承载两倍知识。直接平均权重因忽视神经元排列差异而通常失败。文章系统梳理了四种可行方案:共享主干的联合训练、知识蒸馏、神经元对齐后的权重融合(Git Re-Basin),以及基于任务向量的参数叠加,并指出各方案的适用前提与代价,最终建议重新审视"体积完全不变"这一核心约束。
问题背景:当两个专精模型想合二为一
一位 Reddit 用户提出了一个看似简单却触及深度学习核心难题的问题:手上有两个结构完全相同的神经网络——网络 A 专门识别猫,输出图像是猫的置信度;网络 B 专门识别狗,输出图像是狗的置信度。两者的输入输出维度一致,层数都压缩到了完成任务所需的最小规模。现在的诉求是:在不增加任何模型体积的前提下,把这两个网络合并成一个,并且避免灾难性干扰(catastrophic interference)与灾难性遗忘(catastrophic forgetting)。

这个约束条件极为苛刻。要理解为什么它难以满足,需要先弄清楚神经网络到底在哪里存储知识,以及"合并"在数学上意味着什么。
为什么"原地融合"几乎不可能
神经网络的知识分布式存储在所有权重参数中。网络 A 的某个权重可能同时参与了多个特征的提取,它并不像数据库字段那样可以被单独抽取和拼接。当两个网络各自用全部容量去拟合自己的任务时,它们已经把参数空间"用满"了。
容量不足是根本矛盾
提问者强调两个网络都是"完成特定任务所需的绝对最小层数"。这恰恰是问题的死结所在。如果网络 A 的容量刚好够识别猫,网络 B 的容量刚好够识别狗,那么一个与它们同样大小的网络,其总容量理论上无法同时承载两项任务。
灾难性遗忘正是容量竞争的产物:当你试图在已训练好的网络上学习新任务时,梯度更新会覆盖掉旧任务所依赖的权重,导致旧知识被"冲掉"。在最小容量假设下,这种覆盖几乎不可避免。
直接平均权重为什么会失败
一种天真的做法是把两个网络对应位置的权重求平均(weight averaging)。这种方法在特定条件下(如两个模型从同一初始化微调而来)有时有效,但对于独立随机初始化、各自从头训练的网络,平均权重通常会得到一个性能糟糕的"四不像"。原因是两个网络的神经元排列、特征表示方式完全不同,直接平均等于把两套互不兼容的坐标系强行叠加。
可行的技术路线
虽然"体积不变"的硬约束难以完美满足,但业界有若干成熟方法可以在接受适度代价的前提下实现模型合并。
方案一:扩容后联合训练(最稳妥)
最直接的做法是放弃"大小完全不变"的限制,构建一个稍大的网络,共享底层特征提取层,在顶部分出两个输出头(multi-head)。底层卷积/特征提取对猫和狗往往是通用的(边缘、纹理、形状),真正区分任务的是高层。然后用猫和狗的数据一起做联合训练。这种方式几乎不会有灾难性遗忘,因为两项任务是同时优化的。
方案二:知识蒸馏(Knowledge Distillation)
把网络 A 和网络 B 当作两个"教师",训练一个新的"学生"网络去同时模仿两者的输出。学生网络在猫图像上对齐 A 的输出,在狗图像上对齐 B 的输出。蒸馏的优势在于可以把两个模型的知识压缩进一个模型,且学生网络的大小可以自行设定。如果坚持最小容量,蒸馏后的性能可能有所下降,但这是容量限制下的合理权衡。
方案三:模型融合中的神经元对齐
针对直接平均权重失败的问题,研究者提出了**排列对齐(permutation alignment)**类方法,如 Git Re-Basin。核心思想是:在平均权重之前,先找到一个神经元置换,使两个网络的内部表示尽可能对齐,再做插值或平均。这类方法在同构网络合并上取得了比朴素平均好得多的效果,是近年来模型融合(model merging)领域的重要进展。
Git Re-Basin(2022年由Ainsworth等人提出)是排列对齐方法的代表性工作。其核心洞察在于:神经网络存在"排列对称性"——对某一层的神经元重新排序,只要同步调整相邻层的权重,网络的功能完全不变。因此两个结构相同但独立训练的网络,实际上各自处于高维权重空间中功能等价的不同"对称副本"里。Git Re-Basin通过匈牙利算法或随机梯度下降,寻找使网络B的激活分布最接近网络A的神经元置换矩阵,将B"旋转"到与A对齐的坐标系后再做插值。实验表明,对齐后两个网络之间的损失地景(loss landscape)往往呈现线性模式,插值模型可以保持相当的性能,而朴素平均通常会落入高损失的"障碍区"。不过该方法在数据分布差异较大的异构任务(如猫vs狗这种不同类别场景)上效果不及同任务微调场景,实际使用时需要验证对齐质量。
方案四:参数高效的任务向量
在大模型时代流行的 Task Arithmetic / Task Vector 思路也值得借鉴:将微调带来的权重变化量视为"任务向量",通过向量加减实现多任务能力的组合。不过这类方法通常假设模型共享同一预训练起点,对于两个独立训练的小网络适用性有限。
Task Arithmetic(Ilharco等人,2023)将微调后的模型权重减去预训练权重,得到一个编码了特定任务知识的"任务向量"(task vector)。多个任务向量可以直接相加后叠加回预训练权重,从而让同一个模型同时具备多项能力,且几乎不需要额外训练。该方法的有效性建立在一个关键前提之上:多个微调模型共享同一预训练起点,因此它们的权重差异都在同一个语义坐标系中表达,向量加法有意义。对于文章场景中两个从随机初始化独立训练的小网络,不存在共同的"原点",任务向量方法无法直接套用。但如果将来的场景换成:先用大规模通用数据预训练一个主干,再分别微调出猫识别和狗识别版本,Task Arithmetic则是一种极为轻量的合并手段,无需重新训练即可一步合并。
给提问者的现实建议
如果必须严守"体积完全不变"这一条,诚实的答案是:在最小容量假设下,无损合并在数学上基本不可行,因为你要求一个固定容量的系统承载两倍的信息。
更实际的路径是重新审视约束:
- 如果可以接受轻微扩容,共享主干 + 多输出头的联合训练是工程上最成熟、效果最好的方案;
- 如果必须保持小体积且无法重新获取训练数据,可尝试神经元对齐后的权重融合,但要对性能下降有心理预期;
- 如果有充足数据,知识蒸馏能在可控体积内最大限度保留两项能力。
灾难性遗忘并非无解,它是深度学习持续学习(continual learning)领域长期研究的核心课题,相关方法如弹性权重巩固(EWC)、经验回放等都可作为进阶探索方向。但任何方法都无法绕过信息论层面的容量约束——这是提问中那个"最小体积"假设注定要面对的物理极限。
背景补充
弹性权重巩固(Elastic Weight Consolidation,EWC)是缓解灾难性遗忘的经典方法之一,由Kirkpatrick等人于2017年在DeepMind提出。其思路借鉴贝叶斯推断:用费雪信息矩阵(Fisher Information Matrix)估计每个权重对旧任务的重要性,再在学习新任务时对重要权重施加弹性惩罚,阻止它们偏离旧值过远。直觉上类似于"对重要的螺丝拧紧弹簧"。EWC的局限在于,随着任务数量增加,约束项会不断叠加,计算和存储开销增大;更重要的是,当容量本身不足以容纳两个任务时,EWC只能减缓遗忘速度而无法从根本上解决容量瓶颈——这正是提问场景中"最小体积"假设下无法回避的限制。
相关推荐

GPT-6 Astra读权重绝技:仅限小网络,实用靠写代码
GPT-6 Astra能直接读网络权重,但无工具设置仅限约17万权重的小网络。修复QUEN 3.5 0.8b推理循环靠写Python和50批练习,实测识别游戏耗时近一小时。本文梳理能力边界与两个安全提醒。

GPT-6 Astra 改写 Qwen 权重:7.9% 到 48.1%,是学会了数学还是学会了停?
MIT研究者用GPT-6 Astra直接编辑Qwen权重,数学得分从7.9%升至48.1%,全程无训练。但独立复现显示,提升主要来自修复循环、让模型学会终止作答,而非新增数学能力。

Qwen 3.8 27B 真能读懂神经网络权重?16GB 实测揭秘
MIT 研究声称大模型能直接读取神经网络权重并识别训练游戏。我们在 16GB 显卡上实测 Qwen 3.8 27B,发现信号真实存在,但“原生读取”说法不成立,25 行 Python 脚本即可秒级还原答案。