1. 引言
在机器学习领域,尤其是二元分类任务中,损失函数的设计对于模型的性能至关重要。传统的损失函数,如交叉熵损失,虽然在许多场景下表现良好,但它们并不总是能够直接反映或优化模型在特定评估指标上的表现。例如,交叉熵损失并不能定向地优化Accuracy或F1得分等指标,而这些指标在实际应用中往往非常重要。因此,研究者们一直在探索如何设计损失函数,使其能够在训练过程中直接反映并优化这些关键的性能指标。
在这样的背景下,两篇具有创新性的研究文章引起了我的注意,F. Marchett (2022) [1]提出了一种基于期望混淆矩阵的损失函数,即得分导向损失(Score-Oriented Loss, SOL)函数。该函数允许在训练阶段先验地最大化技能得分,从而在训练过程中直接反映评估指标的性能。N. Tso (2022) [2]则从另一个角度出发,提出了一种基于软集混淆矩阵的统一训练和评估框架。该方法使用Heaviside阶跃函数的可微近似以及引入软集隶属度概念计算得到混淆矩阵值,从而使所需的评估指标可微,使得在训练过程中能够直接优化特定的性能指标。
在本文中,我将分析这两篇文章的方法,之后融合两种方法构建一种新的损失函数,并比较它们在艾滋病临床试验组研究数据集上的应用效果。我相信,通过深入理解这些方法,可以为机器学习领域的研究者和实践者提供有价值的参考和启示。
本文主要贡献如下:1) 通过融合期望混淆矩阵和软集混淆矩阵的方法,提出了一种新的损失函数;2) 对本文方法进行理论分析;3) 通过实验与几种基线方法相比,展现出本文方法的优越性。
2. 相关工作
2.1. 预备知识
在传统的二元分类问题中,混淆矩阵是一个关键工具,用于评估分类器的性能。它通过阈值将连续的预测概率转换为离散的类别标签,但这个阈值的选择往往对最终的性能评估有显著影响。
设
为模型输出的概率集合,
为对应的真实标签,
为阈值,
为Heaviside函数:
(1)
传统的混淆矩阵元素可以表示为:
(2)
其中
和
分别代表真阳性(True Positives)和假阴性(False Negatives)的值。
和
分别代表假阳性(False Positives)和真阴性(True Negatives)的值。
通过混淆矩阵可以得到分类器的性能得分:
(3)
2.2. 基于期望混淆矩阵的方法
基于期望混淆矩阵的方法提出了一种创新的视角,将阈值视为一个随机变量,而不是固定的值。这种方法采用了期望混淆矩阵的概念,并通过选择合适的概率分布函数来影响阈值的选择。其核心在于构建一个可微分的损失函数,允许模型在训练过程中直接针对特定的性能指标进行优化。
阈值
被视为随机变量,其概率密度函数为
,概率分布函数为
,那么:
(4)
因此,期望混淆矩阵的元素可以表示为:
(5)
从而,可以定义基于期望混淆矩阵损失函数如下:
(6)
2.3. 基于软集混淆矩阵的方法
为了解决训练和评估神经网络二分类器之间的差距,基于软集混淆矩阵的方法提出,使用Heaviside阶跃函数的可微近似以及使用软集隶属度概念计算的混淆矩阵值。然后,通过软集混淆矩阵计算评估指标,而不是使用传统的混淆矩阵,这样可以使所需的评估指标可微,从而构造损失函数。
近似Heaviside阶跃函数
为
(7)
其参数为给定的阈值
和斜率参数
,它将三个斜率为
,
和
的线段连接起来。
软集混淆矩阵的元素可以表示为:
(8)
从而,可以定义基于软集混淆矩阵的损失函数如下:
(9)
3. 方法论
本文提出了一种融合期望混淆矩阵和软集混淆矩阵的方法,更好地统一神经网络二元分类器的训练和评估步骤。本文的方法主要有两个步骤,首先,用公式(7)中的梯度友好的分段函数
进行近似Heaviside阶跃函数。然后,将阈值视为一个随机变量,对近似阶跃函数求期望。这样就可以将近似阶跃函数的期望代入计算基于混淆矩阵的指标。这种方法使指标具有端到端的可微性且考虑到阈值的分布,因此它们可以用作构造损失函数。
阈值
被视为随机变量,其概率密度函数为
,概率分布函数为
,那么:
(10)
因此,基于近似阶跃函数的期望混淆矩阵的元素可以表示为:
(11)
当
服从均匀分布:
(12)
当
服从升余弦分布:
(13)
从而,可以定义
损失(Score-Oriented Loss with approximate Heaviside funcation, SOLH)如下:
(14)
4. 理论基础
4.1. Lipschitz连续性
定义4.1.对于在实数集的子集的函数
。若存在常数
,使得对
有:
(15)
则称
是Lipschitz连续的,其中
称为
的Lipschitz常数。
定理4.1. (N. Tso (2022)) [2]线性Heaviside函数近似
是Lipschitz连续的,其Lipschitz常数为
,因此对
有:
(16)
由定理4.1.可推导出,存在常数
,使得对
有:
(17)
所以
是Lipschitz连续的。
混淆矩阵元素
是
的线性组合,Lipschitz函数的线性组合保持Lipschitz连续性:
(18)
类似地,其他元素
也满足Lipschitz条件。
根据Krzysztof Dembczynski (2017) [3]的观点,基于混淆矩阵的指标如准确率、Fβ-Score等都是Lipschitz连续的。又因为Lipschitz连续函数的复合函数仍然是Lipschitz连续的,所以由满足Lipschitz条件的混淆矩阵值
组成的损失函数
也是Lipschitz连续的。
4.2. 梯度分析
设
为样本
的特征表示,
为模型的权重,则模型输出的概率为
,其中
是sigmoid函数。
通过链式法则,损失函数的梯度为:
(19)
混淆矩阵中各元素的梯度:
(20)
其中
(21)
表示如下:
(22)
以准确率为目标的损失函数的梯度:
(23)
以F1 Score为目标的损失函数的梯度:
(24)
其中:
(25)
5. 实验结果
本次实验所用到的数据来源于艾滋病临床试验组研究数据集[4]。数据集包含有关被诊断患有AIDS的患者的医疗保健统计数据和分类信息。该数据集最初于1996年发布。预测任务是预测每个患者是否在某个时间窗口内死亡。该数据集涵盖了2139个样本,其中正类的占比为24.36%。
本文使用了一个前馈神经网络,包括了三个全连接层(线性层),每层之后跟随ReLU激活函数,引入非线性,并且加入Dropout层用于正则化。本文采用了Adam优化算法[5],该算法有以下优点:易于实现、计算效率高、内存需求少、参数更新大小不随梯度的对角缩放而变化、适合非平稳目标和包含噪声或稀疏梯度的问题、超参数有直观解释通常无需调整等。
本文在500个epoch上进行训练,当7个epoch内验证损失没有得到改善(评估损失差值小于等于0.0001)时,实验施加了一个早期停止条件。至于目标性能得分,本文考虑了准确率(Accuracy)和F1得分(F1-Score)它们被定义为:
(26)
考虑均匀和上升的余弦分布
(在
= 0.5和
= 0.1,0.3,0.5的情况下),本文比较了常用的二元交叉熵损失(Binary Cross-Entropy Loss)、基于软集混淆矩阵的损失
、基于期望混淆矩阵的损失
以及融合两种方法的损失
。本文通过评估默认阈值0.5和后验分数最大化选择的最佳阈值τ*的性能得分来报告在训练集和测试集上的表现。为消除随机波动,实验结果取三次重复实验的均值。
Table 1. Comparison of loss functions with accuracy as the target
表1. 以Accuracy为目标的损失函数的比较
Loss |
Train |
Test |
Epoch |
Accuracy |
τ* |
Accuracy (τ*) |
Accuracy |
Accuracy (τ*) |
BCELoss |
93 |
0.8988 |
0.4267 |
0.9042 |
0.8591 |
0.8630 |
|
77 |
0.8956 |
0.0633 |
0.9073 |
0.8455 |
0.8484 |
|
55 |
0.8559 |
0.4167 |
0.8590 |
0.7930 |
0.7959 |
|
68 |
0.8575 |
0.2733 |
0.8629 |
0.8115 |
0.8066 |
|
84 |
0.9065 |
0.2067 |
0.9097 |
0.8494 |
0.8503 |
|
79 |
0.8949 |
0.1767 |
0.9065 |
0.8387 |
0.8416 |
|
58 |
0.8590 |
0.1500 |
0.8614 |
0.8008 |
0.8076 |
|
87 |
0.8949 |
0.1200 |
0.9081 |
0.8455 |
0.8533 |
|
70 |
0.8917 |
0.1267 |
0.9034 |
0.8397 |
0.8455 |
|
82 |
0.8925 |
0.0733 |
0.9073 |
0.8377 |
0.8377 |
本文基于表1和表2的实验数据,对以Accuracy和F1-Score为目标的损失函数性能进行了系统比较分析。在以Accuracy为目标的实验中(表1),
表现仅次于BCELoss,其测试集准确率达0.8455,最佳阈值下测试集准确率为0.8533。
在以F1-Score为目标的实验中(表2),
与
在测试集表现最佳,前者对于默认阈值的F1-Score得分为0.7213,后者对于最佳阈值的F1-Score得分为0.7307。
综合分析表明:本文提出的
在F1-Score优化中优势明显,尽管在Accuracy的优化中不及BCELoss,但是相较于基线
以及
有所提升。两类实验共同验证了改进损失函数在模型性能提升方面的有效性。
Table 2. Comparison of loss functions with f1-score as the target
表2. 以F1-Score为目标的损失函数的比较
Loss |
Train |
Test |
Epoch |
F1-Score |
τ* |
F1-Score (τ*) |
F1-Score |
F1-Score (τ*) |
BCELoss |
98 |
0.3167 |
0.7800 |
0.7800 |
0.7056 |
0.7203 |
|
55 |
0.5367 |
0.7844 |
0.7844 |
0.6951 |
0.6926 |
|
64 |
0.4933 |
0.7585 |
0.7585 |
0.6928 |
0.6864 |
|
54 |
0.5233 |
0.7843 |
0.7843 |
0.6952 |
0.6952 |
|
67 |
0.6000 |
0.7821 |
0.7821 |
0.7042 |
0.6931 |
|
57 |
0.5467 |
0.7908 |
0.7908 |
0.7078 |
0.7169 |
|
59 |
0.3633 |
0.7807 |
0.7807 |
0.7100 |
0.7179 |
|
69 |
0.5600 |
0.7869 |
0.7869 |
0.7213 |
0.7123 |
|
52 |
0.3733 |
0.8025 |
0.8025 |
0.7018 |
0.7082 |
|
59 |
0.4000 |
0.7892 |
0.7892 |
0.7187 |
0.7307 |
6. 结论
两种方法在优化神经网络二分类器时具有不同的侧重点和技术手段,但它们都旨在解决训练和评估过程之间的不一致性。两种方法的共同目标都是通过在训练过程中直接优化评估指标,使训练和评估过程保持一致,从而提升分类器的性能。
基于期望混淆矩阵的方法通过将阈值视为随机变量,并基于其概率分布来构建损失函数,直接优化分类性能指标。其优点在于不需要明确设定单一阈值,而是通过概率分布捕捉不同阈值下的分类性能,有助于更全面地优化分类器。阈值的概率分布使得混淆矩阵的期望值也是可微的,从而能够进行梯度计算和参数优化。
基于软集混淆矩阵的方法通过引入可微的近似Heaviside函数和软集合,构建了一个在训练过程中可以计算和优化混淆矩阵的框架。其优点在于可以明确控制阈值的设定,并且通过软集合能够将混淆矩阵的值转化为连续可微的形式。Heaviside函数的可微近似确保了在反向传播时的梯度计算,可以有效进行参数更新。
本文通过结合这两种方法构造了一种新的损失函数
,此方法通过对软集混淆矩阵取期望,引入了阈值的概率分布,拓宽了损失函数参数的选择空间。理论分析表明了
是Lipschitz连续的。此外,本文通过实验验证了该方法的可行性,并且展现了其对分类器的性能提升,尤其是当以F1得分为目标时性能提升效果明显。
未来,我将进一步研究该方法的其他方面。从方法论的角度来看,可以将该方法扩展到以加权评估指标为目标的情况上。从应用的角度来看,可以考虑将该方法应用于多类别分类问题。