回归任务通常使用均方误差或平均绝对误差等损失函数 (loss function),分类问题则需要不同的度量方式,以量化 (quantization)预测的类别概率(或得分)与实际离散类别标签之间的差异。对于梯度提升机(GBM)而言,损失函数的选择非常重要,因为其负梯度决定了后续基学习器将要预测的“伪残差”。
下面我们来考察GBM框架内用于分类的最常用损失函数。
二元分类:对数损失(二项偏差)
对于二元分类问题,其中目标变量 y 的取值为 {0,1},标准且最广泛使用的损失函数 (loss function)是对数损失,也称作二项对数似然或二项偏差。
它直接源于最大似然估计的原则。如果 F(x) 是模型对输入 x 预测的原始输出(logit 或对数几率),那么正类别(y=1)的概率通常通过逻辑(sigmoid)函数得到:
p(x)=P(y=1∣x)=1+e−F(x)1
单个观测 (x,y) 的对数损失定义为给定预测概率下真实标签似然的负对数:
L(y,p(x))=−[ylog(p(x))+(1−y)log(1−p(x))]
此损失函数会严厉惩罚那些置信度高但错误的预测。例如,如果真实标签是 y=1 但预测概率 p(x) 接近 0,则项 −ylog(p(x))=−log(p(x)) 将趋向于无穷大。反之,如果预测正确且置信度高(当 y=1 时 p(x) 接近 1),损失将趋近于 0。
当真实标签为1时的二元对数损失。随着预测概率接近0(预测错误),损失会明显增加。
梯度与伪残差:
在GBM算法中,我们需要损失函数相对于模型在当前第 m−1 次迭代的原始输出 F(x) 的负梯度,记为 Fm−1(x)。这个梯度指导着下一个树 hm(x) 的拟合。
−∂F(x)∂L(y,F(x))=−∂p∂L∂F(x)∂p
使用链式法则,并已知 ∂F(x)∂p=p(x)(1−p(x))(sigmoid 函数的导数)且 ∂p∂L=−py+1−p1−y=p(1−p)p−y,我们得到:
−∂F(x)∂L(y,F(x))=−(p(x)(1−p(x))p(x)−y)(p(x)(1−p(x)))=y−p(x)
这个结果非常简洁。负梯度,它是第 m 次迭代中观测 i 的伪残差 rim,简单来说,就是真实标签(0 或 1)与当前预测概率 pi,m−1=P(yi=1∣xi;Fm−1) 之间的差异。
rim=yi−pi,m−1
因此,在用对数损失进行二元分类训练的GBM中,每个新树 hm(x) 都是为了预测当前概率估计的残差。
多元分类:对数损失(多项偏差)
这个思想自然地扩展到多元分类问题,在其中目标变量 y 可以属于 K 个类别中的一个,即 {1,...,K}。通常我们对真实标签使用独热编码,因此 yi 是一个向量 (vector),如果观测 i 属于类别 k,则 yik=1,否则 yik=0。
模型需要输出 K 个分数或 logits,即 F1(x),...,FK(x)。这些通过softmax 函数转换为概率 pk(x)=P(y=k∣x):
pk(x)=∑j=1KeFj(x)eFk(x)
所使用的损失函数 (loss function)是多项对数损失,也称作多项偏差或交叉熵损失:
L({yk},{pk(x)})=−k=1∑Kyklog(pk(x))
对于给定的观测,只有一个 yk 为 1,其他为 0,这可以简化为 −log(pc(x)),其中 c 是真实类别索引。
梯度与伪残差:
类似于二元情况,我们计算损失函数相对于每个原始输出 Fk(x) 的负梯度。由于softmax函数,计算稍微复杂一些,但结果依然简洁。对于特定的类别 k 和观测 i,在第 m−1 次迭代的负梯度为:
rimk=−∂Fk,m−1(xi)∂L(yi,Fm−1(xi))=yik−pik,m−1
其中 pik,m−1 是基于模型 Fm−1 对观测 i 类别 k 的预测概率。
同样地,每个类别的伪残差是真实标签(独热编码中的 0 或 1)与该类别当前预测概率之间的差异。
在实际中,大多数GBM实现通过在每次提升迭代 m 时构建 K 个独立的回归树来处理多元分类问题。第 k 个树使用伪残差 rimk=yik−pik,m−1 作为其目标变量进行训练。这些 K 个树的输出随后被结合,以更新每个类别的总体模型分数 Fk(x)。
为何选择对数损失?
对数损失(或多项偏差)之所以优于指数损失(原始AdaBoost算法中使用)等替代方案,主要是因为它对异常值或标记 (token)错误的数据点不那么敏感。指数损失以指数方式惩罚错误,这意味着一个非常错误的预测可能主导梯度计算,并可能扭曲模型。对数损失为分类任务提供了更稳定的性能衡量,它直接关联信息论(交叉熵)和概率解释(对数似然)。其平滑的梯度也有助于GBM框架内的优化过程。
通过理解这些分类损失函数 (loss function)如何运作以及它们的梯度如何产生伪残差,我们能够更好地了解梯度提升机在分类问题中学习过程的核心机制。这种选择直接影响后续树尝试纠正的错误类型,从而塑造最终的预测模型。