资讯

替代损失函数是什么?用好优化的函数代替难优化的真实目标

2026-11-053 分钟阅读百科
TL;DR替代损失函数(Surrogate Loss Function)是在真实的评价目标(如 0-1 分类错误率)不连续、不可导、难以直接优化时,用来代替它进行训练的连续、通常是凸的可优化函数,常见的有铰链损失、对数损失(交叉熵)和指数损失。

替代损失函数(Surrogate Loss Function)是指在机器学习中,当我们真正关心的目标函数难以直接优化时,用来代替它进行训练的另一个更容易优化的函数。它的作用是给优化算法一个“替身”:优化这个替身,也能间接地达到优化真实目标的效果。

为什么需要替代损失

以最常见的分类问题为例,我们最终关心的往往是分类错误率:判断对了就是 0,判断错了就是 1,这叫 0-1 损失。它最直接地反映了我们的目标,但它在数学上很难优化:它是不连续的,只有 0 和 1 两个值,在大部分地方的导数都是零,无法告诉优化算法应该往哪个方向调整参数;在 0 和 1 之间又是一个突然的跳变,在这一点上导数不存在。而大多数机器学习模型都依靠梯度下降来训练,需要损失函数是连续的、可以求导的。直接最小化 0-1 损失在计算上是一个非常困难的问题。

于是,人们使用替代损失函数:设计一个连续、可导、最好还是凸的函数来代替 0-1 损失。凸函数的好处是只有一个最低点,用梯度下降一定能找到全局的最优解,不会陷在局部的“坑”里。替代损失通常是 0-1 损失的一个上界:模型在替代损失上表现得好,在真实的错误率上也会表现得好。

常见的替代损失函数

铰链损失(Hinge Loss):支持向量机使用的损失函数。它不仅要求样本被分到正确的一侧,还要求离分界线有一定的“安全距离”,也就是间隔;如果样本分类正确并且间隔足够大,损失就为零,否则损失随着距离线性地增加。对数损失(Log Loss),也就是交叉熵损失:逻辑回归和神经网络分类最常用的损失函数。它衡量模型预测的概率与真实标签之间的差距,模型对正确答案越有把握,损失越小。它的一个优点是能直接给出有概率意义的输出。指数损失:AdaBoost 算法所对应的损失函数,它对分类错误的惩罚随着错误的程度呈指数增长。

理论保证:一致性

一个自然的问题是:优化替代损失,真的能让真实的错误率变小吗?研究者对此进行了深入的理论分析,提出了“分类校准”或“一致性”的概念:如果一个替代损失函数满足一定的条件,那么在数据足够多的情况下,最小化这个替代损失所得到的模型,其真实的错误率也会趋近于可能达到的最小值。上面提到的铰链损失、对数损失和指数损失都满足这样的条件。

更广泛的含义

替代损失的思想在机器学习中无处不在:很多我们真正关心的评价指标,比如排序质量、F1 分数、BLEU 翻译分数,乃至“回答是否对人有帮助”,都很难直接作为训练的目标,于是只能设计可以优化的替代目标。比如大语言模型在预训练时优化的是“预测下一个词”的交叉熵损失,它本身就是对“理解和生成语言”这一真实目标的替代。但也要警惕:替代目标与真实目标之间总有差距,过度地优化替代目标,可能会偏离真正想要的结果,这与古德哈特定律所说的现象相通。