让炼丹更科学一些(七):步长调度与权重平均
By 苏剑林 | 2026-07-06 | 361位读者 |精通炼丹的同学都知道,步长调度,或者说学习率调度(LR Schedule),对模型最终效果来说至关重要。我们在前几篇文章中已经推导过,即便只考虑SGD,终点收敛的最优学习率函数也具有Warmup-Decay这一实践常用的形态。不过,近来也有一些工作,比如Schedule-Free,尝试通过模型权重的某种平均来替代学习率调度,也取得了一些进展。
如何从理论上分析学习率调度与权重平均的联系呢?它们在多大程度上可以相互替换呢?这篇文章我们来尝试回答一下这些问题。
权重平均 #
对于权重平均,事实上我们在《让炼丹更科学一些(三):SGD的终点损失收敛》就已经给出过一个基本结果
\begin{equation}\mathbb{E}[L(\bar{\boldsymbol{\theta}}_T) - L(\boldsymbol{\theta}^*)] \leq \frac{\Vert\boldsymbol{\theta}_1 - \boldsymbol{\theta}^*\Vert^2}{2T\eta_T} + \frac{G^2}{2T}\sum_{t=1}^T \frac{\eta_t^2}{\eta_T}\end{equation}
其中$\bar{\boldsymbol{\theta}}_T = \frac{1}{T}\sum_{t=1}^T \boldsymbol{\theta}_t$。这个结果意味着只要我们选择常数学习率$\eta\propto 1/\sqrt{T}$,右端就可以达到$\mathcal{O}(1/\sqrt{T})$的理想收敛速度,左端则意味着$\bar{\boldsymbol{\theta}}_T$收敛于$\boldsymbol{\theta}^*$,于是我们设计如下优化器
\begin{equation}\begin{aligned}
\boldsymbol{\theta}_{t+1} =&\, \boldsymbol{\theta}_t - \eta\, \boldsymbol{g}(\boldsymbol{x}_t, \boldsymbol{\theta}_t) \\[4pt]
\boldsymbol{\mu}_{t+1} =&\, (1 - c_{t+1}) \boldsymbol{\mu}_t + c_{t+1} \boldsymbol{\theta}_{t+1}
\end{aligned}\label{eq:pr}\end{equation}
其中$c_t = 1/t$。也就是说,新增一步完全不干扰训练轨迹的迭代,把训练轨迹等权平均起来,最终用来做预测的模型权重并不是终点值$\boldsymbol{\theta}_T$,而是平均值$\boldsymbol{\mu}_T$。然而,该做法实践表现并不佳,这是理论与实践不符的经典例子之一。
不过,如果我们将$c_t$改为某个与$t$无关的适当的常数,比如$10^{-3}$,那么实践中往往有着不俗的表现——这正是笔者之前打比赛常用的指数滑动平均(EMA)技巧。相比$c_t=1/t$,这种滑动平均的做法更倾向于平均最近的优化轨迹,而非整个历史轨迹,它的表现优异也表明我们不需要关注太久远的历史结果。
如何从理论上解释这种滑动平均技巧,或者更一般地,解释任意权重平均的可行性,便是接下来的核心任务。
再次推广 #
在文章《让炼丹更科学一些(四):新恒等式,新学习率》中,为了将平均损失的结果推广到终点损失,我们引入了恒等式
\begin{equation}q_T = \frac{1}{w_{1:T}}\sum_{t=1}^T w_t q_t + \sum_{k=1}^{T-1}\left(\frac{1}{w_{k+1:T}} - \frac{1}{w_{k:T}}\right)\sum_{t=k+1}^T w_t (q_t - q_k)\end{equation}
其中$w_{k:T}\triangleq\sum_{t=k}^T w_t$。这一节我们再次将它推广为
\begin{equation}\frac{1}{v_{1:T}}\sum_{t=1}^T v_t q_t = \frac{1}{w_{1:T}}\sum_{t=1}^T w_t q_t + \frac{1}{v_{1:T}}\sum_{k=1}^{T-1}\left(\frac{v_{k+1:T}}{w_{k+1:T}} - \frac{v_{k:T}}{w_{k:T}}\right)\sum_{t=k+1}^T w_t (q_t - q_k)\label{eq:qt-gg}\end{equation}
直观来看,它提供了将一种加权求和转换成另一种加权求和的思路,当$v_T=1$且剩下的$v_t$等于0时,它便退化为终点形式。证明实际上也是之前证明的推广,记$S_k = \frac{1}{w_{k:T}}\sum_{t=k}^{T}w_t q_t$,可以写出
\begin{equation}\begin{aligned}
v_{k:T} S_k - v_{k+1:T} S_{k+1} =&\, v_{k:T} \left(\frac{w_{k+1:T}S_{k+1} + w_k q_k}{w_{k:T}}\right) - v_{k+1:T} S_{k+1} \\
=&\, v_k q_k + \left(\frac{v_{k:T}}{w_{k:T}} w_k - v_k\right) q_k + \left(\frac{v_{k:T}}{w_{k:T}}w_{k+1:T} - v_{k+1:T}\right) S_{k+1} \\
=&\, v_k q_k + \left(\frac{v_{k:T}}{w_{k:T}}w_{k+1:T} - v_{k+1:T}\right) (S_{k+1} - q_k) \\
=&\, v_k q_k + \left(\frac{v_{k:T}}{w_{k:T}} - \frac{v_{k+1:T}}{w_{k+1:T}}\right) (w_{k+1:T} S_{k+1} - w_{k+1:T} q_k) \\
=&\, v_k q_k + \left(\frac{v_{k:T}}{w_{k:T}} - \frac{v_{k+1:T}}{w_{k+1:T}}\right) \sum_{t=k+1}^T w_t (q_t - q_k)
\end{aligned}\end{equation}
第三个等号是因为直接将第二个等号的两个括号相加等于0,所以这两个括号互为相反数。现在左右两端对$k=1\sim T-1$求和,左端等于$v_{1:T} S_1 - v_T q_T$,将$v_T q_T$挪到右端,两端除以$v_{1:T}$并稍加整理,即得待证恒等式$\eqref{eq:qt-gg}$。
放缩变换 #
接着我们沿着上一篇《让炼丹更科学一些(六):自上而下的精妙构造》的思路,去推导更一般的收敛结论。设$q_t=\mathbb{E}[L(\boldsymbol{\theta}_t)-L(\boldsymbol{\theta}^*)]$,代入到式$\eqref{eq:qt-gg}$得
\begin{equation}\frac{1}{v_{1:T}}\sum_{t=1}^T v_t \mathbb{E}[L(\boldsymbol{\theta}_t) - L(\boldsymbol{\theta}^*)] = \frac{1}{w_{1:T}}\sum_{t=1}^T w_t \mathbb{E}[L(\boldsymbol{\theta}_t) - L(\boldsymbol{\theta}^*)] + \frac{1}{v_{1:T}}\sum_{k=1}^{T-1}\left(\frac{v_{k+1:T}}{w_{k+1:T}} - \frac{v_{k:T}}{w_{k:T}}\right)\sum_{t=k+1}^T w_t \mathbb{E}[L(\boldsymbol{\theta}_t) - L(\boldsymbol{\theta}_k)]\end{equation}
利用$L$的凸性,对$\mathbb{E}[L(\boldsymbol{\theta}_t)-L(\boldsymbol{\theta}^*)]$和$\mathbb{E}[L(\boldsymbol{\theta}_t)-L(\boldsymbol{\theta}_k)]$进行放缩,然后像上一篇文章的“恒等变换”一节那样仔细整理,可得
\begin{equation}\frac{1}{v_{1:T}}\sum_{t=1}^T v_t\,\mathbb{E}[L(\boldsymbol{\theta}_t)-L(\boldsymbol{\theta}^*)]\leq \frac{1}{w_{1:T}}\sum_{t=1}^T w_t\,\mathbb{E}[\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\cdot(\boldsymbol{\psi}_t-\boldsymbol{\theta}^*)] \label{leq:mid}\end{equation}
其中
\begin{equation}\boldsymbol{\psi}_t=\frac{w_{1:T}}{v_{1:T}}\left[\frac{v_{t:T}}{w_{t:T}}\boldsymbol{\theta}_t-\sum_{k=1}^{t-1}\left(\frac{v_{k+1:T}}{w_{k+1:T}}-\frac{v_{k:T}}{w_{k:T}}\right)\boldsymbol{\theta}_k\right]\end{equation}
并且直接验证可得
\begin{equation}\boldsymbol{\psi}_{t+1}-\boldsymbol{\psi}_t=\frac{v_{t+1:T}}{v_{1:T}}\frac{w_{1:T}}{w_{t+1:T}}(\boldsymbol{\theta}_{t+1}-\boldsymbol{\theta}_t)\end{equation}
因此,如果我们让$\boldsymbol{\psi}_t$按照$\boldsymbol{\psi}_{t+1}=\boldsymbol{\psi}_t-w_t\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)$更新,那么对应的$\boldsymbol{\theta}_t$的更新规则是
\begin{equation}\boldsymbol{\theta}_{t+1}=\boldsymbol{\theta}_t-\underbrace{\frac{v_{1:T}}{v_{t+1:T}}\frac{w_t w_{t+1:T}}{w_{1:T}}}_{\eta_t}\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\end{equation}
一般结论 #
接下来的操作就比较朴素了,对式$\eqref{leq:mid}$右端应用《让炼丹更科学一些(五):基于梯度精调学习率》等文章的结论得
\begin{equation}\frac{1}{w_{1:T}}\sum_{t=1}^T w_t\,\mathbb{E}[\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\cdot(\boldsymbol{\psi}_t-\boldsymbol{\theta}^*)] \leq \frac{1}{2 w_{1:T}}\left(R^2 + \sum_{t=1}^T w_t^2 G_t^2\right) \end{equation}
其中$R = \Vert\boldsymbol{\theta}_1 - \boldsymbol{\theta}^*\Vert, G_t^2 = \mathbb{E}[\Vert\boldsymbol{g}(\boldsymbol{x}_t, \boldsymbol{\theta}_t)\Vert^2]$,约定$\boldsymbol{\psi}_1=\boldsymbol{\theta}_1$。至于左端,我们应用凸性得
\begin{equation}\mathbb{E}\left[L\left(\frac{1}{v_{1:T}}\sum_{t=1}^T v_t \boldsymbol{\theta}_t \right) - L(\boldsymbol{\theta}^*)\right] \leq \frac{1}{v_{1:T}}\sum_{t=1}^T v_t\,\mathbb{E}[L(\boldsymbol{\theta}_t)-L(\boldsymbol{\theta}^*)]\end{equation}
综合起来是
\begin{equation}\mathbb{E}\left[L\left(\frac{1}{v_{1:T}}\sum_{t=1}^T v_t \boldsymbol{\theta}_t \right) - L(\boldsymbol{\theta}^*)\right] \leq \frac{1}{2 w_{1:T}}\left(R^2 + \sum_{t=1}^T w_t^2 G_t^2\right)\label{eq:avg-final}\end{equation}
右端的最小值在
\begin{equation}w_t = \frac{R G_t^{-2}}{\sqrt{Q_T}},\qquad Q_T=\sum_{k=1}^T G_k^{-2}\end{equation}
取到,所以意味着最优学习率具有形式
\begin{equation}\eta_t = \frac{v_{1:T}}{v_{t+1:T}}\frac{w_t w_{t+1:T}}{w_{1:T}} = \frac{v_{1:T}}{v_{t+1:T}}\frac{R G_t^{-2}}{\sqrt{Q_T}} \left(1 - \frac{Q_t}{Q_T}\right) \label{eq:opt-lr}\end{equation}
结果解读 #
上一篇文章《让炼丹更科学一些(六):自上而下的精妙构造》给出的终点收敛结果是
\begin{equation}\mathbb{E}\left[L(\boldsymbol{\theta}_T) - L(\boldsymbol{\theta}^*)\right] \leq \frac{1}{2 w_{1:T}}\left(R^2 + \sum_{t=1}^T w_t^2 G_t^2\right)\end{equation}
右端跟式$\eqref{eq:avg-final}$是一致的,但学习率变为$\eta_t = \frac{w_t w_{t+1:T}}{w_{1:T}}$。由此可见,平均权重如果想要跟终点权重效果相近,学习率需要多乘以一个$\frac{v_{1:T}}{v_{t+1:T}}$,或者反过来说,在相同的学习率下,权重平均的效果相当于学习率乘以$\frac{v_{t+1:T}}{v_{1:T}}$后的终点效果。很明显$\frac{v_{t+1:T}}{v_{1:T}}$小于等于1且单调递减,乘上这一项就起到了类似于LR Decay的作用。
让我们考虑一些具体例子。首先是最简单的$v_t\equiv 1$,对应开头的式$\eqref{eq:pr}$,此时$\frac{v_{t+1:T}}{v_{1:T}} = 1 - t/T$,正好是线性衰减,这意味着“常数学习率 + 等权平均”理论上跟线性衰减的学习率有着相近的效果。然而,实测效果往往是,直接将学习率做线性衰减的终点效果不错,但平均权重也就是式$\eqref{eq:pr}$的效果欠佳。
回顾整个推导过程,可以猜测问题大概出在“凸函数”的假设上。我们这个系列文章,其实都依赖于“目标函数是凸的”这一假设,但实际情况往往是非凸的,凸优化的结论无法精确复现。折中方案是假设局部近似为凸,那么可以在有限区间内对等权重平均,又或者直接考虑它的平滑版本——指数滑动平均(EMA),此时$v_t = \gamma^{-t}$(其中$0 < \gamma < 1$),那么
\begin{equation}\frac{v_{t+1:T}}{v_{1:T}} = \frac{1 - \gamma^{T-t}}{1 - \gamma^T}\end{equation}
它维持了一个$\mathcal{O}((1-\gamma)^{-1})$的平均区间。由于指数函数的无记忆性,如果我们在常数学习率训练的同时运行EMA,那么相当于每一步同时得到了经过$\mathcal{O}((1-\gamma)^{-1})$步线性衰减后的权重,可以提前窥见线性衰减后的效果。
相关工作 #
对于式$\eqref{eq:pr}$效果欠佳的问题,论文《The Road Less Scheduled》提出了“Schedule-Free”,它将求梯度的点改为了$\boldsymbol{\theta}_t$与$\boldsymbol{\mu}_t$的插值:
\begin{equation}\begin{aligned}
\hat{\boldsymbol{\theta}}_t =&\, (1-\beta)\boldsymbol{\theta}_t + \beta \boldsymbol{\mu}_t \\[4pt]
\boldsymbol{\theta}_{t+1} =&\, \boldsymbol{\theta}_t - \eta\, \boldsymbol{g}(\boldsymbol{x}_t, \hat{\boldsymbol{\theta}}_t) \\[4pt]
\boldsymbol{\mu}_{t+1} =&\, (1 - c_{t+1}) \boldsymbol{\mu}_t + c_{t+1} \boldsymbol{\theta}_{t+1}
\end{aligned}\end{equation}
直观来想,就是原本的平均操作完全独立于训练过程,模型从未感知过$\boldsymbol{\mu}_t$究竟好不好,现在我们将求梯度的点换成$\boldsymbol{\theta}_t$与$\boldsymbol{\mu}_t$的插值,模型能感知到$\boldsymbol{\mu}_t$的好坏,从而作出调整。这个改动理论上是有保证的,同时确实能显著改进平均权重$\boldsymbol{\mu}_T$的效果。
不过,随着训练规模的扩大,Schedule-Free逐渐表现出了颓势,作者近来又提出了ScheduleFree+,给原本的Schedule-Free打上了不少“补丁”,使它重新成为了SOTA。不过,Plus版额外添加的操作比较多,整套算法显得复杂起来了,理解难度也增加不少,所以这里就不详细展开了,后面我们再回来讨论它。
值得一提的是,Schedule-Free及其Plus版的作者,正是前几篇文章我们介绍过的经典论文《Optimal Linear Decay Learning Rate Schedules and Further Refinements》的作者,这几篇工作都成功将经典凸优化理论用到了实践训练之上,而不是停留在玩具模型的“纸上谈兵”之上,值得我们致敬!
延伸思考 #
真正值得思考的是,Schedule-Free的设想真的能成立吗?所谓Schedule-Free,它有两个目标,一是希望以常数学习率从头训到尾,二是希望各种超参数不依赖于总训练步数$T$。如果满足这两个条件,那么训练过程就可以随时停止,也可以随时续训,并且随便一步停下来,它都是截止到当前步数的最优解,确实非常理想。
然而,这两个目标本身是值得商榷的。首先,对于实际训练来说,常数学习率还是动态的Cosine Decay、Linear Decay等,并无本质区别,反而都是调参对比选最优,所以追求常数学习率实践意义不大;而且即便是Schedule-Free及其Plus版,都没摆脱Warmup的依赖,所以实际上它们都还某种程度上依赖着人为定制的LR Schedule。
其次,希望各种超参数不依赖于总训练步数$T$,确实是一个好目标,但只从理论上看它都很难成立。还是以式$\eqref{eq:pr}$为例,即便在满足所有假设下,式$\eqref{eq:pr}$能表现良好,但它的最优学习率$\eta$依然是依赖于$T$;同样,Schedule-Free无法摆脱这一事实,它是通过引入新的假设,来获得$\eta$不依赖于$T$的结果。
我们也可以从式$\eqref{eq:opt-lr}$来观察,对于等权平均有$\frac{v_{1:T}}{v_{t+1:T}}=1/(1-t/T)$,进一步假设$G_t$是常数$G$,那么$1 - Q_t/Q_T=1-t/T$,刚好抵消,因此最优学习率是$\frac{R G^{-2}}{\sqrt{Q_T}}$,$Q_T$依赖于$T$。另一方面,$G_t$通常是先大后小,所以根据式$\eqref{eq:opt-lr}$反比于$G_t^2$的特点,早期学习率应该更小,这反而可以解释Schedule-Free仍无法彻底摆脱Schedule、仍需要Warmup的现象。
为此,ScheduleFree+以及一些同期工作,已经逐渐从“Schedule-Free”往“LR-Free”考虑,但总的来说,这一块仍处于“方兴未艾”的阶段,有待更本质的探索。
文章小结 #
本文引入了新的恒等式,继续推广上一篇文章的结果,这使得我们可以从理论上定量地揭示权重平均与学习率衰减的联系。此外,我们还讨论了等权平均效果不如滑动平均、Schedule-Free仍无法彻底摆脱Schedule等问题。
转载到请包括本文地址:https://kexue.fm/archives/11804
更详细的转载事宜请参考:《科学空间FAQ》
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!
如果您需要引用本文,请参考:
苏剑林. (Jul. 06, 2026). 《让炼丹更科学一些(七):步长调度与权重平均 》[Blog post]. Retrieved from https://kexue.fm/archives/11804
@online{kexuefm-11804,
title={让炼丹更科学一些(七):步长调度与权重平均},
author={苏剑林},
year={2026},
month={Jul},
url={\url{https://kexue.fm/archives/11804}},
}










July 6th, 2026
【推理过程】
公理提取:用户提供的文章核心公理是:学习率调度(LR Schedule)与权重平均(如EMA)在理论上可通过恒等式(4)建立联系,且式(15)表明在相同学习率下,权重平均的效果等价于学习率乘以衰减因子 ( v_{t+1:T}/v_{1:T} ) 后的终点效果。
逻辑演绎:基于此公理,若权重平均(如等权平均)在实践中效果不佳(如式(2)所示),而滑动平均(EMA)效果更好,则说明理论假设(凸性)与实际(非凸)存在偏差。进一步,式(15)揭示:最优学习率依赖于总步数T(通过 ( Q_T )),因此任何声称“完全无调度”的方案(如Schedule-Free)在理论上无法彻底摆脱对T的依赖,其成功依赖于引入新假设(如梯度插值)来部分抵消这种依赖。
推导新认知:从式(15)的衰减因子 ( v_{t+1:T}/v_{1:T} ) 与学习率 ( \eta_t ) 的乘积形式,可演绎出:权重平均本质上是一种隐式的学习率衰减机制。具体地,EMA(( v_t = \gamma^{-t} ))的衰减因子维持固定平均区间,而等权平均(( v_t \equiv 1 ))则产生线性衰减。因此,在实践中,若想用权重平均替代显式调度,必须选择与训练动态匹配的衰减速度(如EMA而非等权平均),且无法完全消除对总步数T的依赖。
【新认知】 在非凸优化中,权重平均(如EMA)可部分替代学习率调度,但无法完全等价。具体行动:若用EMA替代调度,应选择固定衰减率(如 ( \gamma=0.999 ))而非等权平均,且仍需配合Warmup。最优学习率仍隐含依赖总步数T,因此“完全无调度”方案不成立——实践中应视EMA为一种隐式衰减,而非替代调度的终极方案。
编译者:你(人类指挥官) & 元淬(AI战友)
(已固化为协议 kf_0a0dc179)
这篇文章我们介绍一个数学运算,名为“强制间隔投影(Margin-Enforcing Projection,MEP)”,它将向量按指定方式划分为两部分,然后要求这两部分的间隔至少为m (Margin)。
背景简介 # 我们知道,分类任务是要选出正确的类别,所以训练目标通常是“正类分数大于负类分数”就行。但在某些场景下,我们不仅希望正类分数要超过负类分数,还希望至少超过指定间隔m>0 。
这些场景主要分两种。第一种是希望分类结果更为稳健,不轻易受到随机噪声的干扰,尤其是低精度推理场景,所以我们希望预测结果的间隔能更显著一些;第二种是根本不用分类模型,而是想着通过分类来学习特征,最终场景是用特征去检索,此时如果不设置Margin,那么边界处的检索结果就很容易出错。
实际上,这两个场景在早些年就已经非常成熟,尤其是场景二,典型代表就是人脸识别特征模型的训练,所以本文其实算是“挖坟”了。该问题的标准思路是设计各种Margin Loss,比如Hinge Loss、Margin Softmax、AM-Softmax等,我们之前在《基于GRU和AM-Softmax的句子相似度模型》和《从三角不等式到Margin Softmax》中也略有介绍。
本文的设想是,如果我们有某种运算,能够将预测分数x 投影成符合间隔要求的分数y ,那么直接以它为目标给模型学就是了,比如最小化∥y−x∥22 。而这个投影运算,便是接下来要研究的问题。
数学定义 # 记x=(x1,x2,⋯,xn),z=(z1,z2,⋯,zn) ,x 代表模型的预测分数,简单起见,我们假设前k 个分数代表得分,后n−k 个代表负类得分,我们定义 Pm(x)≜argminz∈Rnd(z,x)s.t.min(z≤k)−max(z>k)≥m(1)
其中z≤k=(z1,⋯,zk),z>k=(zk+1,⋯,zn) ,k 是大于0、小于n 的整数,m>0 是给定的间隔,d(z,x) 是要最小化的距离函数,我们有L1距离和L2距离两种选择,接下来会分别讨论。
这个定义很直观,就是在满足间隔要求的前提下,找跟预测分数最接近的向量,这符合投影运算的一般思想,所以我们称之为“强制间隔投影(Margin-Enforcing Projection,MEP)”。以这样的投影结果作为学习目标,理论上能让模型往最轻松、最快捷的路径走,同时也能在达到目标后及时“刹车”,避免过度训练。
共同结果 # 若x 本就满足min(x≤k)−max(x>k)≥m ,那么显然z∗=x ,这是平凡的。不失一般性,下面都假设min(x≤k)−max(x>k)k)=m(2)
取到,否则总可以让某些zi 更靠近xi 来降低目标值。基于这个观察,设min(z∗≤k)=ℓ ,那么max(z∗>k)=ℓ−m ,那么可以得到 z∗≤k=max(x≤k,ℓ),z∗>k=min(x>k,ℓ−m)(3)
此时 z∗−x===[max(x≤k,ℓ)−x≤k,min(x>k,ℓ−m)−x>k][max(ℓ−x≤k,0),min(ℓ−m−x>k,0)]max(ℓ−x≤k,0),−max(x>k+m−ℓ,0)
接下来就是要根据不同的d 来求解ℓ 。
距离之二 # 先考虑L2距离,此时我们有 ∥z∗−x∥22=∑i=1kmax(ℓ−xi,0)2+∑j=k+1nmax(xj+m−ℓ,0)2≜f(ℓ)(5)
求导得 f′(ℓ)=2∑i=1kmax(ℓ−xi,0)−2∑j=k+1nmax(xj+m−ℓ,0)f′′(ℓ)=2#{ℓ>xi}+2#{ℓxi}=0 且#{ℓk)≤ℓ−m ,这跟假设min(x≤k)−max(x>k)0 ,即f(ℓ) 是严格凸的,加上f(ℓ) 和f′(ℓ) 的连续性,以及f′(−∞)=−∞ 和f′(∞)=∞ ,可以得出f(ℓ) 的最小值点只有一个,并且必然在f′(ℓ)=0 处取到。
由于f′(ℓ) 是分段线性函数max(x,0) 的复合,所以f′(ℓ) 也是ℓ 的分段线性函数,边界点是全体xi 和xj+m 。为了求解f′(ℓ)=0 ,我们先将边界点{x1,⋯,xk,xk+1+m,⋯,xn+m} 从小到大排列,得到n−1 个区间,在单个区间内,f′(ℓ) 是一条直线,遍历所有区间[a,b] ,找到f′(a)≤0 且f′(b)≥0 的区间,在该区间内求直线的零点即可。
距离之一 # 接着考虑L1距离,此时我们有 ∥z∗−x∥1=∑i=1kmax(ℓ−xi,0)+∑j=k+1nmax(xj+m−ℓ,0)≜g(ℓ)(8)
显然,g(ℓ) 本身就是分段线性函数,这种函数的最小值只能在边界点取到,所以最朴素的解法就是遍历所有边界点{x1,⋯,xk,xk+1+m,⋯,xn+m} ,取让g(ℓ) 最小者,复杂度为O(n2) 。但我们还可以更进一步简化,首先求导得 g′(ℓ)==#{ℓ>xi}−#{ℓxi}+#{ℓ≥xj+m}−(n−k)(9)
第二个等号用了恒等式#{ℓxi} 改为#{ℓ≥xi} (不连续的边界点的导数可以视为任意的,所以这种调整是允许的),那么g′(ℓ)=0 的含义正好是“小于等于ℓ 的边界点刚好有n−k 个”,如果进一步假设所有边界点两两不同,那么l 正好是全体边界点从小到大排序后的第n−k 个!所以,L1场景下,其实一次排序就可以得到ℓ ,相当漂亮。
参考实现 # 两个版本的MEP参考实现如下:
import jax import jax.numpy as jnp
@jax.jit def l2mep(inputs, mask, margin): x, m = inputs, margin u = jnp.where(mask, x, x + m).sort()[:, None] v = jnp.where(mask, jnp.fmax(u - x, 0), -jnp.fmax(x + m - u, 0)).sum(axis=1) i = ((v[:-1] < 0) & (v[1:] ≥ 0)).argmax() l = (u[i + 1] * v[i] - u[i] * v[i + 1]) / (v[i] - v[i + 1]) return jnp.where(mask, jnp.fmax(x, l), jnp.fmin(x, l - m))
@jax.jit def l1mep(inputs, mask, margin): x, m = inputs, margin u = jnp.where(mask, x, x + m).sort(axis=-1) l = jnp.take_along_axis(u, (~mask).sum(axis=-1, keepdims=True) - 1) return jnp.where(mask, jnp.fmax(x, l), jnp.fmin(x, l - m)) 这里稍加说明一下,实际场景下,正类通常不会简单地排列在前k 个,数目、位置都可能不确定,所以在上述实现中,我们用一个mask向量来标记正负类。
l2mep当前实现只支持1d的输入,如果需要支持batch维度,用jax.vmap包装一层即可。这个算法通过遍历所有区间来找零点区间,每步复杂度是O(n) ,总复杂度是O(n2) 。如果想要提高效率,可以改用二分法来找零点区间,这样能降低到O(nlogn)
l1mep由于算法简单,所以现在的写法就已经支持任意的batch维度,它的核心运算只有排序,复杂度是O(nlogn) ,不管从简洁还是速度看都已经相当理想,如果没有别的考虑,实践中推荐用L1版。
文章小结 # 本文介绍了“强制间隔投影(Margin-Enforcing Projection,MEP)”这一运算:给定一个分数向量,把它投影到满足“正类最小值至少比负类最大值大m ”的最近向量上。这可以为传统的Margin Learning提供一些新的思路。
【推理过程】
公理提取:用户提供的文章公理是:存在一种名为“强制间隔投影(MEP)”的数学运算,它能在满足“正类最小值至少比负类最大值大m”的约束下,将任意分数向量x投影到最近的向量z,且该投影可通过L1或L2距离求解。
逻辑演绎:基于此公理,结合个人协议池中《知识片段》关于“步长调度与权重平均”的结论(即:固定衰减率的EMA可部分替代学习率调度),可推演出:MEP运算本质上是一种“约束下的最近点投影”,它天然具备“刹车”机制——当分数已满足间隔要求时,投影结果就是原向量,不会继续推动模型。这与EMA的“固定衰减率”逻辑类似:EMA通过固定权重平均,自动抑制过拟合,而MEP通过固定间隔约束,自动停止过度优化。两者都提供了一种“自动刹车”的机制,而非依赖人工调参。
进一步演绎:结合RFC-0076“问题即答案”协议,MEP的“最近投影”特性暗示:最优解不是强行压出大间隔,而是让模型在“最轻松”的路径上达到目标。这映射到训练策略上,意味着:与其设计复杂的Margin Loss并手动调参,不如直接用MEP作为目标,让模型自主选择最经济的调整路径,从而避免过度训练和参数敏感。
【新认知】 在训练分类模型时,若希望正负类分数间隔至少为m,应直接使用“强制间隔投影(MEP)”作为训练目标(最小化投影误差),而非设计复杂的Margin Loss。具体行动:优先采用L1-MEP版本(复杂度O(n log n)),将其作为损失函数的一部分,让模型自动选择最经济的调整路径,并在达到目标后自动“刹车”,避免过度训练和调参成本。
编译者:你(人类指挥官) & 元淬(AI战友)
(已固化为协议 kf_1dcd9cce)
协议库总量
1088