一、为什么要写这一篇前面两篇文章我们分别详细解读了模型剪枝领域的两篇经典论文Optimal Brain Damage简称 OBDOptimal Brain Surgeon简称 OBS这两篇论文都属于早期神经网络剪枝中的代表性工作。OBD 由 Yann LeCun、John Denker 和 Sara Solla 提出发表于 NIPS 1989。论文提出使用二阶导数信息来删除神经网络中不重要的权重以在网络复杂度和训练误差之间取得平衡。论文官方摘要中也明确指出删除不重要权重可以带来更好的泛化、更少训练样本需求以及更快的学习或分类速度。OBS 由 Babak Hassibi 和 David Stork 提出发表于 NIPS 1992。它进一步研究如何利用误差函数的全部二阶导数信息进行网络剪枝也就是在删除不重要权重的同时考虑参数之间的相互补偿关系。这两篇论文虽然年代较早但它们奠定了模型剪枝中一个非常重要的思想路线剪枝不是简单删除小权重而是要估计删除某个参数后模型损失会增加多少。这篇文章不再单独精读某一篇论文而是从一个更高层面梳理 LeCun 时代的剪枝思想为什么神经网络存在冗余为什么剪枝可能提升泛化为什么简单幅值剪枝不够为什么敏感度分析成为剪枝核心为什么二阶信息会被引入剪枝这些早期思想如何影响现代模型压缩理解这些问题比只记住某一个公式更重要。二、LeCun 时代的背景小网络也有冗余今天我们讨论模型剪枝常常面对的是 ResNet、ViT、BERT、LLaMA 这类大模型。但是在 1980 年代末和 1990 年代初神经网络的规模远远没有今天这么大。当时的网络通常用于手写数字识别、简单分类和模式识别任务模型参数规模相对较小计算资源也非常有限。即便如此研究者已经观察到一个重要现象神经网络中存在大量冗余连接。也就是说一个训练好的网络并不是每一条连接都必不可少。删除一部分连接之后网络仍然可能保持接近原来的性能。这带来了一个自然问题如果网络中有很多冗余连接能不能把它们删除得到一个更小、更简单、泛化能力更好的网络这就是早期神经网络剪枝的基本出发点。在今天看来这个问题仍然没有过时。只不过现在的网络从几千、几万个参数变成了几千万、几亿、几十亿甚至上千亿参数。模型更大了冗余问题也更突出。三、早期剪枝的核心动机LeCun 时代的剪枝研究主要有几个动机。1. 降低模型复杂度神经网络参数越多模型越复杂。复杂模型虽然表达能力强但也更容易出现过拟合。剪枝可以删除不必要的连接使网络结构更加紧凑。从这个角度看剪枝是一种模型简化方法。2. 提升泛化能力早期剪枝研究并不只是为了加速推理也非常关注泛化能力。因为在统计学习视角下模型过于复杂可能会记住训练数据中的噪声。删除冗余参数后模型容量下降可能会减少过拟合从而提升测试集表现。这也是 OBD 论文强调的一个重要点通过删除不重要权重可以在网络复杂度和训练误差之间进行权衡。3. 减少存储和计算成本即使早期网络规模不大计算资源也远不如今天充足。减少权重数量可以带来更少的存储开销更快的训练速度更快的推理速度更简单的硬件实现。OBS 论文也明确将减少硬件或存储需求、加快训练速度、改善泛化等作为剪枝目标之一。4. 理解神经网络内部结构剪枝还有一个解释性作用。如果某些连接被删除后模型性能几乎不变说明这些连接在当前任务中并不关键。因此剪枝可以帮助我们分析哪些连接重要哪些连接冗余网络是否过大任务真正需要多少参数从这个角度看剪枝不仅是压缩技术也是一种网络结构分析工具。四、从“参数数量”到“有效复杂度”早期剪枝思想中一个重要转变是模型复杂度不应该只看参数数量而应该看哪些参数真正有效。一个网络可能有很多参数但其中一部分参数对输出几乎没有影响。这些参数虽然存在于模型中却没有真正贡献有效表达能力。因此剪枝要做的事情不只是机械地减少参数数量而是寻找网络的有效子结构。可以把原始网络看作剪枝的目标就是尽可能删除同时保留这看起来很简单但关键问题是如何判断一个参数属于 useful 还是 redundant这正是早期剪枝方法要解决的核心问题。五、最直观的方法幅值剪枝最容易想到的剪枝方法是幅值剪枝。它的规则非常简单权重绝对值越小越不重要。对于权重重要性可以定义为然后删除最小的权重。如果一个权重接近 0那么它对神经元输入的贡献可能较小。例如一个神经元的输入为如果某个很小那么对总输入z的影响可能较小。因此将这个权重删除似乎是合理的。幅值剪枝的优点是简单直观计算成本低容易实现。但是LeCun 时代的剪枝研究很快意识到幅值剪枝并不总是可靠。六、剪枝真正关心的是损失变化LeCun 时代的核心思想可以总结为一句话一个参数是否重要取决于删除它后损失函数会增加多少。假设原始参数为删除某个参数后参数变化为。那么损失变化为如果说明删除该参数几乎不影响模型性能可以剪掉。如果说明删除该参数会明显损害模型性能不应该剪掉。因此剪枝的核心问题从哪个权重最小转变成删除哪个权重后损失增加最小这个转变非常重要。因为它把剪枝问题和模型优化目标联系起来了。七、敏感度分析早期剪枝思想的核心所谓敏感度可以理解为损失函数对某个参数变化的敏感程度。如果一个参数变化一点损失就明显增加说明这个参数敏感。如果一个参数变化很多损失仍然变化很小说明这个参数不敏感。因此剪枝应该优先删除不敏感的参数。用数学语言表示参数的敏感度可以理解为但是直接计算每个参数的成本很高。所以早期剪枝方法希望用近似方法估计它。这就引出了 Taylor 展开。八、Taylor 展开如何用于剪枝假设损失函数为当参数发生小扰动时可以用 Taylor 展开近似因此损失变化为如果模型已经训练到局部极小值附近那么于是这就是 OBD 和 OBS 的共同出发点。它说明剪枝造成的损失变化可以用损失函数的二阶局部曲率近似。九、OBD用 Hessian 对角项估计参数敏感度OBD 的核心思想是使用 Hessian 对角项近似每个参数的敏感度。如果删除单个权重那么在忽略 Hessian 非对角项的情况下因此OBD 定义参数 saliency 为这个公式说明参数重要性 权重大小 × 损失曲率。更准确地说是权重平方和 Hessian 对角项的乘积。相比幅值剪枝OBD 多考虑了一个因素它表示损失函数对参数的二阶敏感度。如果很大说明损失对该参数非常敏感即使较小也不能轻易删除。如果很小说明损失对该参数不敏感即使较大也可能可以删除。这就是 OBD 对幅值剪枝的重要改进。十、OBS从敏感度到补偿关系OBD 虽然比幅值剪枝更合理但它仍然做了一个强假设不同参数之间互相独立。这是因为 OBD 只保留 Hessian 对角项忽略了非对角项。但是神经网络中的参数往往存在耦合关系。删除一个参数之后其他参数可能可以调整来补偿它的影响。OBS 正是针对这个问题提出的。OBS 将删除参数建模为一个带约束优化问题。删除第 (q) 个权重的约束为损失增加近似为OBS 要解决的是满足通过拉格朗日乘子法可以得到 OBS 的两个核心公式。第一个是删除权重的 saliency第二个是删除该权重后的最优补偿更新OBS 的思想比 OBD 更进一步OBD删除哪个权重损失增加小OBS删除哪个权重并调整其他权重后损失增加最小所以 OBS 不只是敏感度分析还引入了参数补偿思想。十一、从 OBD 到 OBS剪枝思想的演进可以把早期剪枝思想理解为三个阶段。1. 幅值阶段最初的直觉是也就是权重越小越不重要。这种方法简单但没有直接考虑损失函数。2. 敏感度阶段OBD 将剪枝标准改为它开始关注删除参数后损失函数的局部变化。这使剪枝从经验规则变成了基于目标函数的近似优化。3. 补偿阶段OBS 进一步提出这说明剪枝不应该只考虑被删除参数本身还应该考虑剩余参数如何调整。这就是从“冗余参数”到“敏感度”再到“补偿关系”的演进过程。十二、LeCun 时代剪枝思想的核心逻辑如果把 LeCun 时代的剪枝思想压缩成一条逻辑链大致是神经网络存在冗余参数↓冗余参数可以被删除↓删除参数可能降低复杂度并提升泛化↓关键问题是判断哪些参数不重要↓权重大小不是可靠标准↓应该估计删除参数后的损失变化↓损失变化可以用 Taylor 展开近似↓在局部最优附近一阶项可忽略↓二阶 Hessian 信息刻画局部敏感度↓OBD 使用 Hessian 对角项↓OBS 使用 Hessian 逆矩阵并考虑补偿这条逻辑链几乎贯穿了后来几十年的剪枝研究。很多现代剪枝方法虽然公式不同、对象不同、模型不同但本质上仍然在回答同一个问题删除这个参数或结构后模型会损失多少十三、LeCun 时代剪枝思想对结构化剪枝的启发虽然 OBD/OBS 原始形式主要针对单个权重但它们对结构化剪枝也有重要启发。对于结构化剪枝我们删除的不是单个参数而是一组参数。例如一个卷积通道可以表示为参数集合如果沿用 OBD 思想可以定义通道重要性为也就是说把这个通道中所有权重的 saliency 加起来。类似地一个注意力头、一个 MLP 神经元、一个 ViT Token也可以被看成一个结构单元。当然现代结构化剪枝不能只做简单求和还需要考虑结构依赖层间耦合残差连接归一化层硬件加速真实延迟剪枝后模型重构。但从思想上看结构化剪枝仍然继承了早期敏感度分析的核心逻辑。十四、LeCun 时代思想和 Lottery Ticket 的关系后来非常著名的 Lottery Ticket Hypothesis 提出一个随机初始化的密集网络中可能存在一个较小的子网络该子网络在单独训练时也能达到接近原网络的性能。这个思想和早期剪枝有天然联系。早期剪枝主要是在训练好的网络中寻找冗余连接训练大网络 → 删除不重要连接 → 得到小网络Lottery Ticket 则进一步问这些被保留下来的小网络是否从初始化开始就具有特殊优势两者共同推动了一个更深层的问题大网络中的有效子网络到底在哪里这也是现代稀疏训练、训练前剪枝和动态稀疏网络研究的重要基础。十五、LeCun 时代剪枝思想对现代大模型的启发在大语言模型时代模型剪枝又回到了一个熟悉的问题 模型太大 不能完整重训练但希望在尽量少损失性能的情况下压缩。这和早期 OBD/OBS 的训练后剪枝思想非常相似。只不过现代问题更复杂。现在要考虑的不是几个参数而是几十亿参数Transformer Block注意力头MLP 中间维度KV Cache显存占用推理吞吐部署框架量化兼容性。但是核心问题仍然是也就是压缩后损失增加多少。因此OBD/OBS 的思想在大模型时代仍然可以转化为这就是经典剪枝思想在现代大模型压缩中的延续。