人工智能:数据与模型安全
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3.1 分类损失

交叉熵(cross-entropy,CE)损失无疑是使用最广泛的分类损失函数。在信息论中,交叉熵用来衡量两个概率分布之间的差异性。给定两个概率分布qp,我们常用Hqp)表示分布p相对于分布q在给定集合上的交叉熵,具体定义为-Eq[log p]。在机器学习领域,标签和模型输出往往是多维向量(如独热编码),所以我们用粗体q表示真实标签分布,粗体p表示模型预测分布,交叉熵则衡量了预测分布和真实分布之间的差异。

在单标签分类问题中,每个样本x只属于一个正确类别y。假设类别总数为C,对于输入样本x及其标签y,模型f的预测概率输出为fx)=p CC维的概率向量,每个维度对应一个类别,,交叉熵损失定义如下:

其中,y为类别y的独热编码,py为模型输出的概率向量中类别y所对应的概率。当类别数量为2(即C=2)时,多分类任务退化为二分类问题。对于二分类问题,如果模型的输出维度为2,则仍可以用式(2.25)来计算交叉熵损失。但很多时候人们会将模型的输出维度调整为1,并选择sigmoid函数转换获得最终的概率,以保证fx)=p ∈ [0,1]。此时定义的交叉熵损失也被称为二元交叉熵损失(binary cross-entropy,BCE),定义如下:

分类任务除单标签场景外还存在多标签场景,即每一个样本可能对应一个或多个标签。单标签可用独热编码y来表示类别标签y,即yk=y=1且yky=0。而在多标签场景下,独特编码就变成了多热编码(multi-hot encoding),每个标签对应的位置都是1。多标签分类问题可以被转换为多二分类问题,此时交叉熵损失可以定义如下:

在实际应用场景中,数据的标注质量往往无法保证,由于标注任务的复杂性,导致即便高质量的数据集(如ImageNet)也难免会存在噪声(错误)标签。带错误标签的样本会误导模型往错误方向优化,降低模型的最终性能。近年来,研究者提出了一些鲁棒分类损失函数,可以在一定程度上提高训练过程对噪声标签的鲁棒性。下面将介绍几个此类的鲁棒损失函数。

广义交叉熵(generalized cross-entropy,GCE)损失是对平均绝对误差(mean absolute error,MAE)和交叉熵损失的泛化,综合了交叉熵的隐式加权特性和MAE对噪声标签的鲁棒性。考虑单标签分类场景,广义交叉熵损失定义如下:

其中,γ为超参数。当γ趋于0时,根据洛必达法则(L'Hôpital's rule),式(2.28)上下求导,GCE将退化为CE损失函数;而当γ=1时,GCE则退化为MAE,因此可以认为GCE是交叉熵损失和MAE更广义的定义。

对称交叉熵(symmetric cross-entropy,SCE)是另一个常用的鲁棒损失函数,它在交叉熵损失的基础上增加了一个逆交叉熵(reverse cross entropy,RCE)损失,一起形成了一种对称结构(故称“对称交叉熵”)。设q为真实标签分布,p为模型预测概率分布,交叉熵损失定义为Hqp)=-q log p,逆交叉熵损失则定义为Hpq)=-p log q(注意pq的顺序相对交叉熵损失发生了调换)。SCE损失是交叉熵和逆交叉熵的加权组合,定义如下:

其中,αβ为两个超参数,以平衡两个损失项;y为真实标签的独热编码,需要将其零值替换为一个很小的数值(如1e-4),以避免无效对数运算。

除噪声标签问题外,类别不均衡(class imbalance)也是分类任务经常要面对的问题。例如,目标检测任务中可能存在大量“背景物体”,存在正样本标注框远少于负样本标注框的现象,同时不同类别样本之间的分类难度也存在一定差异,这些都会给模型训练带来一定困难。这就需要损失函数可以自动有差别地对待不同类别的预测结果,可以根据预测置信度(因为损失函数的输入只有这一种信息)自动调整高置信度或者低置信度类别样本的权重。

焦点损失(focal loss)就是一种可自动均衡不同类别权重的损失函数,其定义如下:

其中,γ是调制因子。当γ= 0时,焦点损失退化为交叉熵损失;当γ>0时,系数项(1-pyγ会对样本进行动态权重调整:py越接近1,此时模型预测越准确,认为样本是容易样本,权重系数变小;py越接近0,此时模型预测越不准确,认为样本是困难样本,权重系数变大。焦点损失最初在目标检测任务中提出,后被广泛应用于其他计算机视觉和自然语言处理任务中,并在解决长尾分布问题方面有显著的效果。