微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 不是所有目标都生来平等:当"主要任务"和"附加约束"在深度学习里打起来,该听谁的?

不是所有目标都生来平等:当"主要任务"和"附加约束"在深度学习里打起来,该听谁的?

2026-10-21 20:03
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-10-21 20:03 • 科技行者

2014年前后,深度学习圈子里有个不太起眼但普遍存在的麻烦事。

你训练一个神经网络,目标从来不是单一的。要准确,还要小。要能用,还要能在手机上跑。要学得好,还不能把之前学过的东西忘光。于是大家很自然地想到一个办法:把所有目标加权求和,变成一个总的损失函数,然后一起优化。这个办法用了很多年,简单、直接、能跑通。

但这篇论文的作者发现了一件让人不太舒服的事:这套"加权求和"以及后来演化出的各种"多目标优化"方法,都默认一个假设,就是所有目标地位平等,谁也不比谁重要。

问题是,现实里根本不是这样。

核心问题:为什么"平等对待"反而是个坑

想想剪枝这件事。你在训练一个图像分类网络,主要目标是分类准确率,这是你真正在乎、要拿去交付的东西。但你同时加了一个稀疏性惩罚项,希望网络里大部分参数变成零,这样部署的时候能把这些参数直接砍掉,模型变小、跑得快。

这两个目标真的一样重要吗?

显然不是。稀疏性惩罚项存在的意义,是为了服务准确率这个最终目标而设的约束条件,不是和它平起平坐的另一个任务。可现有的多目标优化方法,比如梯度手术(PCGrad)、多梯度下降算法(MGDA)、冲突规避梯度下降(CAGrad),全都把这两个目标当作对等的选手来处理。它们追求的终点叫做帕累托稳定点:

帕累托稳定:指在这个点上,任何一个目标想要变得更好,都必然要让至少一个其他目标变差,此时没有哪个方向能同时改善所有目标。

听起来很合理,对吧?没有哪个方向能让所有目标同时变好,那不就是最优了吗?

论文作者发现问题恰恰出在这里。帕累托稳定点是通过多个目标的梯度互相抵消达到的,哪怕单个目标的梯度根本没有归零,只要几个方向凑巧抵消了,系统就会停下来。作者管这种情况叫冲突均衡:

冲突均衡:主任务的梯度被约束项的反作用力顶住,导致主任务本该继续下降却被迫停滞,这是一种失败状态,而不是可以接受的解。

论文里给了一个特别直白的例子。一维空间里,主任务损失函数在某点的梯度是 0.5,约束项损失函数在同一点的梯度是负的 0.5。两者加起来正好抵消为零,于是所有对称方法都判定"到达稳定点,训练结束"。但主任务的梯度明明还是 0.5,根本没有停下来的理由,它是被约束硬生生按住了。

这就好比你开车去一个目的地,副驾驶不停地提醒你"注意油耗、注意省油",结果两个人拉着方向盘较劲,最后车停在路中间,谁也说服不了谁,而你其实离目的地还有一大段距离。如果副驾驶的意见只是建议而不是拥有同等否决权,车早就该继续往前开了。

论文用一个二维的玩具实验直观展示了这个现象(对应论文里的第一张示意图)。设想一个损失函数曲面上有两个山谷,一个是局部最优,另一个才是真正的全局最优,中间隔着一道鞍点形成的屏障。加权求和、MGDA、PCGrad、CAGrad、FAMO这几种主流方法,无论从哪个起点出发,都被卡在鞍点附近的帕累托稳定点上,第二个约束目标的值始终没能降到零。只有这篇论文提出的方法,从三个不同的起点出发,全都成功翻过了那道屏障,走到了两个目标同时最优的终点。

优先约束下降:论文提出的核心方法,英文缩写PCD,核心思路是始终沿着主任务的梯度方向走,只在约束目标确实需要额外推力时才做最小限度的偏转。

PCD到底怎么设计的:把约束变成一个凸优化问题

PCD的核心想法说起来不复杂:主任务的梯度方向是"锚点",尽量贴着这个方向走,只有当这个方向不足以让约束目标继续进步时,才施加最小的偏转,让约束目标也能往前挪一点。

具体的数学形式是这样一个二次规划问题:在所有满足约束条件(每个次要目标至少获得τ比例的一阶进展)的方向里,找到离主任务梯度距离最近的那一个。这里的τ是一个介于0和1之间的标量:

容忍度τ:这是PCD里唯一需要手动设置的超参数,取值范围0到1,控制次要目标能对主任务方向施加多大程度的偏转。τ越大,约束项的话语权越大,网络被压缩得越狠;τ越小,网络越贴近原始表现。

这个设计带来了几个直接的好处。当主任务梯度本身已经足够让约束目标也在进步时,PCD根本不会去动它,直接退化成普通的梯度下降。换句话说,PCD不是无脑地往约束方向拉一把,而是先看看主任务这一步走下去,约束项是不是"顺便"就满足了,满足了就什么都不做。

这就像一个项目经理审核团队的周报。如果团队本周的工作汇报里已经自然而然地覆盖了合规检查要求的所有条款,项目经理不会强行要求大家重写报告去凑格式,直接通过就行。只有当汇报里缺了某个必须覆盖的点,项目经理才会要求补充,而且只补充缺的那一部分,不会让团队推倒重来。如果不这样设计,每一次汇报都要按统一模板从头走一遍合规流程,团队效率会被拖得很低,明明没必要改的地方也要动一遍。

论文对这个二次规划问题给出了完整的几何刻画。当K等于2,也就是一个主任务加一个约束目标的情况下,这个优化问题有解析解,直接可以用一个公式算出来,不需要迭代求解器。当K等于3时,同样有闭式解,用克莱姆法则就能推出来。当目标数量更多时,则用KKT条件枚举工作集来求解,最多需要枚举2的K减1次方个子集。

这套机制还有个很重要的性质,叫渐近尺度不变性:

渐近尺度不变性:无论主任务和约束目标的损失值原始量级差多少(哪怕相差好几个数量级),只要用了论文里的指数滑动平均归一化方案,τ这个参数的实际含义都保持一致,不需要因为换了任务就重新调参。

这一点其实是个很现实的痛点。加权求和方法里的权重w,本质上依赖两个损失函数原始数值的相对大小。如果分类损失是个位数,而正则项损失是几万,同样的权重w在不同任务里代表的强度完全不一样,调参师往往要反复试错才能找到合适的权重。论文的合成实验里专门验证了这一点:把约束目标的损失放大或缩小十个数量级,加权求和方法的操作点被硬生生拖着在整条帕累托前沿上移动,而PCD的操作点几乎纹丝不动,十个数量级下的漂移量只有0.0075。

这就好比你用体重秤称东西,一个用公斤做单位,一个用克做单位,如果秤本身没有自动换算单位的功能,你设定的"减重目标50"在两种单位下代表的实际意义天差地别。PCD相当于内置了单位换算,不管原始损失用什么量纲表示,容忍度τ传达的意思始终一致。

理论上的关键区别:复合多重稳定点

这是整篇论文里我觉得最有意思的一个理论结果。

论文定义了一个比帕累托稳定更严格的概念,叫复合多重稳定:

复合多重稳定:要求每一个目标都单独达到稳定状态,也就是主任务梯度为零,并且每个约束目标的零点都落在它的次梯度集合里,而不是像帕累托稳定那样只要求梯度们的凸组合等于零。

论文证明了一个核心定理:只要容忍度τ大于零,并且约束多面体非空,PCD计算出的归一化方向只有在所有目标的梯度都归零时才会变成零向量。换句话说,PCD的方向不会在半路上因为几个梯度互相抵消就停下来,它只认"每个目标都真的稳定了"这一个终点。

这个性质跟MGDA形成了鲜明对比。论文特意指出了MGDA的一个失效模式:如果主任务梯度恰好为零,MGDA计算的方向会直接塌缩成零,完全不管剩下的约束目标是不是还没稳定。这就好比一个团队负责人只要看到项目经理这一项工作报告是空白(可能只是碰巧这周没什么新进展),就直接宣布整个团队本周任务全部完成,哪怕财务、法务那边还有一堆事没处理完。PCD不会犯这个错误,只要还有约束目标没稳定,它就会继续推动。

论文用一组随K值变化的合成实验验证了这个理论结果的实际表现。构造了一个非空间,包含K减1个方向上的双井结构,加上K减1个约束目标,每个约束把某个方向拉向正一。所有方法都从"错误的山谷"出发,这个山谷离真正的联合最优点隔着一道屏障。结果显示,MGDA和CAGrad这类基于凸组合的方法,被卡住时的梯度残留严格遵循1.536乘以根号下K减1这样一个可以精确推导的公式,也就是说目标越多,它们被卡得越死。而PCD在所有测试的K值下,都成功穿越屏障,梯度残留降到了机器精度的量级,也就是十的负十五次方左右,损失值降到十的负二十九次方,几乎可以认为是彻底收敛了。

结构化剪枝实验:数字说话

理论说得再好,最终还是要看实际效果。论文在结构化网络剪枝任务上做了大量实验,把主任务设成标准的交叉熵分类损失,约束目标设成分组套索正则项:

分组套索:一种正则化手段,把网络参数按输出通道分组,惩罚整组参数的范数之和,效果是让某些整组参数一起趋近于零,这样删除这些通道之后,剩下的网络依然是标准的稠密网络,不需要特殊的稀疏计算硬件支持。

为什么非要用分组套索而不是普通的逐个权重稀疏化?因为逐权重稀疏化删掉的是零散的单个数字,剩下的矩阵仍然是不规则的稀疏矩阵,普通CPU或GPU没法从中获得实际的加速效果,除非专门为稀疏矩阵设计硬件核心。而分组套索删掉的是整个输出通道,剩下的网络结构依然是规整的稠密矩阵,可以直接在普通硬件上跑得更快。这就是为什么论文能测出实实在在的推理延迟和文件体积下降,而不只是理论上的参数数量减少。

实验覆盖了DenseNet-121、ResNet-34、一个类Inception结构和MobileNetV2四种架构,分别在CIFAR-10和CIFAR-100两个数据集上训练,一共八种组合,全部从零开始训练三百个epoch,每种配置跑五个随机种子。对比的基线方法包括PCGrad、MGDA、FAMO、CAGrad、加权求和,以及一个叫AuxiNash的方法,后者专门用来学习任务之间的议价权重,是目前对"目标不平等"这件事处理得相对认真的一个基线。

在ResNet-34加CIFAR-100这个相对困难的组合上,PCD在80%到85%的参数削减比例下,依然保持73.0%的测试准确率,几乎贴着未剪枝网络73.3%的水平。而对照组里,MGDA的准确率掉到1.2%,FAMO掉到2.7%,只比瞎猜好一点点,PCGrad和CAGrad也只有7%左右。表现最好的基线AuxiNash达到44.4%,依然比PCD低了28.6个百分点。

原因追查下来其实很直接:基线方法在训练结束时,网络的原生分组稀疏度已经达到99.3%到100%,也就是说它们在训练过程中就已经把网络"压垮"了,剪枝这一步只是把已经损坏的网络展示出来而已。而PCD由于每一步只保证τ比例的进展,天然限制了训练过程中稀疏度的失控增长。

在DenseNet-121加CIFAR-10这个组合上,容忍度设为0.01时,PCD实现了5.3倍的浮点运算量削减、1.8倍的推理延迟降低、9.4倍的文件体积压缩,而准确率几乎没有损失,94.0%对比未剪枝的94.5%。把容忍度调到0.05,压缩效果进一步提升到45.4倍浮点运算削减、83倍文件体积压缩,准确率降到89.2%。

论文还专门比较了PCD和一批"专门为剪枝任务调过的"基线方法,包括精调过的分组套索标量化方法、近端分组套索方法、约束优化框架Cooper,以及动态屏障梯度下降算法DBGD(论文指出DBGD在K等于2的情况下,就是PCD使用原始未归一化梯度的一个特例)。在压缩比达到85%以上的区间里,一共47组匹配比较中,PCD在28组里表现更好,只在1组里更差,18组打平。而且Cooper这个约束优化框架有个明显的局限:无论怎么调它的敏感度参数,它的原生稀疏度始终卡在65%到84%之间,根本进不了真正的高压缩区间。

有一个对比特别能说明归一化的价值。同样的名义超参数值τ等于β等于0.01,代码完全相同,随机种子完全相同,PCD在四个配置上的准确率保留率差异只有1.09个百分点,而没有归一化的DBGD差异达到13.23个百分点。这意味着同一个超参数数值,在DBGD那边买到的压缩效果,随着任务不同会剧烈波动,而PCD始终能提供稳定的价格。

三目标场景:稀疏性和低秩性同时要

结构化剪枝是两个目标的情况。论文还做了一组更复杂的实验,同时施加三个目标:交叉熵分类损失,逐权重稀疏化的L1范数惩罚,以及推动每层权重矩阵趋向低秩的核范数惩罚:

核范数:一个矩阵所有奇异值的绝对值之和,惩罚这个量会让矩阵的奇异值谱趋向稀疏,也就是矩阵的有效维度降低,这在深度学习里对应着让某一层的权重矩阵可以用更低维的子空间来近似表示。

这两个约束目标其实互相不太对付。L1惩罚是逐元素起作用的,哪个权重数值小就往零上按,完全不管这个权重在矩阵里的位置。核范数惩罚是作用在整个奇异值谱上的,倾向于让矩阵的行列之间产生线性相关性。在大多数有意义的工作区间里,这两股力量拉扯的方向并不完全一致。

在ResNet-34加CIFAR-100的配置下,PCD保持了71.0%的准确率,同时实现了92.6%的参数稀疏度和24.5的有效秩,这个有效秩数字远低于所有基线方法,说明网络确实学到了低维结构,而不是靠奇异值谱普遍衰减出来的虚假低秩。相比之下,表现最好的基线AuxiNash只有48.7%的准确率。

论文还引入了一个综合指标叫支配超体积,把三个目标各自映射到归一化的"好坏分数"坐标系里,计算每个方法的操作点集合所覆盖的空间体积。在ResNet-34加CIFAR-100这个配置上,PCD的支配超体积是39.03,第二名AuxiNash只有14.1,差不多是它的2.78倍。这个差距在四个测试配置里全部保持稳定,而且论文额外做了三种鲁棒性检验,包括把PCD的操作点数量限制到跟基线一致的10个点,结果PCD的最差子集依然超过所有基线的最好表现。

写在后面

看完这篇论文,我一直在琢磨一件事:为什么"加权求和"这种简单粗暴的方法,能在深度学习圈子里流行这么多年,直到现在才有人认真质疑它对所有目标一视同仁这个假设?

我猜答案可能和数学上的方便有关。加权求和把多目标问题变成了单目标问题,可以直接套用现成的梯度下降理论和工具链,谁都能上手。而承认目标之间存在层级关系,意味着你得重新设计整个优化流程,还得面对一个新的复杂问题:约束条件之间万一互相矛盾了怎么办。论文花了大量篇幅在讨论这个可行性问题,用法卡斯引理去刻画什么情况下这个约束多面体会变成空集,这说明作者非常清楚,一旦你承认"有些目标更重要",你就得同时接受"约束之间可能打架"这个新麻烦。这不是一个能靠简单拍脑袋绕过去的问题。

另一个让我有点意外的细节是论文对自己局限性的坦白程度。作者明确说了,实际部署时对方向做的幅度缩放,会导致算法在主任务梯度恰好为零但约束目标还没稳定的时候停下来,这个停下来的点其实不是理论上说的复合多重稳定点。他们没有把这个瑕疵藏起来,反而专门写了一整段来讨论两种修补方案各自的代价。这种把自己的补丁和补丁的副作用都摊开讲的态度,在方法论论文里其实不算常见。

还有一个细节值得单独提一下。论文里那个二维鞍点实验,PCD穿越屏障之后,主任务的梯度非常接近但从未真正归零,它一直在继续探索,直到两个目标同时被压到最小。这跟直觉里"优化就是要让梯度尽快归零"的想法有点不一样,PCD展示的其实是一种更有耐心的搜索策略,宁可暂时不完美地贴合主任务,也要给约束目标留出翻越障碍的空间。

Q&A

Q1:优先约束下降(PCD)是什么?

A:PCD是一种梯度优化框架,专门用来处理深度学习里主任务和附加约束不平等的情况。它始终尽量贴着主任务梯度方向走,只在约束目标需要额外进展时才施加最小限度的偏转,偏转强度由一个叫τ的参数控制。

Q2:为什么加权求和和MGDA这类传统多目标优化方法会有问题?

A:这些方法把所有目标当作平等的对手来处理,追求的是帕累托稳定点,也就是没有方向能让所有目标同时变好的状态。但这种稳定可能是靠几个目标的梯度互相抵消达到的,主任务本该继续进步却被约束项顶住,论文管这叫冲突均衡,是一种失败状态而不是可接受的解。

Q3:PCD在实际压缩神经网络时效果怎么样?

A:在ResNet-34加CIFAR-100的剪枝实验里,PCD在80%到85%参数削减下依然保持73.0%准确率,接近未剪枝的73.3%,而MGDA只有1.2%,PCGrad只有7.4%。在三目标的稀疏加低秩场景下,PCD同样明显优于所有对比方法。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-