1.问题背景
在医学图像处理中,经常面对不平衡数据集,尤其是严重不平衡的数据集,采用的方式主要有两种策略:
-
以数据为中心的处理方式
-
以算法为中心的处理方式
2.以数据为中心的处理方式
在处理不平衡数据集时,以数据为中心的方法通常包括重采样(如过采样和欠采样)、生成合成数据、以及调整类别权重等技术。过采样如SMOTE(Synthetic Minority Over-sampling Technique)通过生成少数类的新样本来平衡数据集,而欠采样则通过减少多数类样本来达到平衡。
2.1 过采样(Over-sampling)
原理:
过采样是通过增加少数类样本的数量来平衡数据集。这通常通过复制少数类样本,或者更常见的使用SMOTE(合成少数类过采样技术)生成新样本来实现。SMOTE通过在少数类样本的邻域中生成新样本来扩展少数类的样本空间。
优点:
- 可以通过增加少数类的样本数来提高模型对少数类的学习能力,减少模型对多数类的偏向。
- SMOTE可以生成多样的合成样本,有助于增强模型的泛化能力。
缺点:
-
过度复制少数类样本可能导致过拟合,尤其是当少数类样本数量非常少时。
-
SMOTE生成的新样本虽然增加了少数类的样本量,但并不总是能准确代表少数类的多样性,可能会引入噪声。
2.2 欠采样(Under-sampling)
原理:
欠采样是通过减少多数类样本的数量来平衡数据集。其基本思想是从多数类中随机选择一部分样本进行保留,其余的则被丢弃。
优点:
- 可以有效减少数据集的大小,降低计算成本,尤其在大规模数据集上很有用。
- 简单且容易实现。
缺点:
- 丢弃大量多数类样本可能会导致丢失重要的模式信息,进而影响模型的准确性。
- 在数据集非常不平衡的情况下,欠采样可能会导致模型训练不充分,因为多数类的信息不足。
2.3 合成数据生成:SMOTE 和 ADASYN
原理:
合成数据生成方法,如SMOTE和ADASYN,是通过插值方法在少数类样本之间生成新的样本,而不是简单的复制现有样本。SMOTE通过随机选择少数类样本的邻居,使用这些邻居来生成新的样本;ADASYN(Adaptive Synthetic Sampling)则在生成合成样本时,优先考虑那些分类困难的样本。
优点:
- 可以生成更具多样性的样本,而不仅仅是复制已有样本。
- 相较于过采样直接复制,SMOTE和ADASYN的合成样本更有可能增加数据的多样性,减少过拟合风险。
缺点:
- 合成的样本可能会产生噪声,尤其是在数据不平衡程度较高时。
- 如果原始少数类样本质量较低,生成的合成样本也可能带有错误模式,影响模型的学习效果。
2.4 数据增强
原理:
数据增强通过对少数类样本进行变换(如旋转、缩放、裁剪、翻转等)来生成新的样本。这种方法尤其适用于图像数据,目的是通过创建变换后的样本来增加数据集的多样性。
优点:
- 可以有效增加少数类的样本数量,从而改善模型对少数类的学习。
- 在图像、音频等领域尤为有效,能帮助模型更好地应对实际应用中的变化。
缺点:
- 需要在变换时确保不会引入无意义的样本,尤其是在对数据进行复杂变换时。
- 对于某些数据类型(如文本数据),数据增强可能较难实施。
2.5 集成方法:如EasyEnsemble、BalanceCascade
原理:
集成方法如EasyEnsemble和BalanceCascade通过集成多个基学习器来增强少数类的识别能力。这些方法通常将数据集拆分成多个子集,对这些子集进行训练,并通过投票机制来决定最终的分类结果。
优点:
- 通过集成多个模型的决策,可以降低单一模型的偏差,提高少数类的识别能力。
- 可以在不需要对数据进行重采样的情况下,提升少数类的分类效果。
缺点:
- 计算开销较大,因为需要训练多个模型。
- 集成方法的性能往往依赖于基学习器的选择和集成策略。
3.以算法为中心的方法
以算法为中心的方法主要集中在调整模型的损失函数,使得模型对少数类更敏感。
3.1 交叉熵(Cross-Entropy)
原理:
交叉熵是分类问题中常用的损失函数,通常用于衡量预测概率分布与真实标签之间的差异。在不平衡数据集的情况下,标准的交叉熵损失函数并不会单独考虑类别不平衡的问题。其标准公式如下:
L C E = − ∑ i = 1 N y i log ( y i ^ ) \mathcal{L}_{CE}=-\sum_{i=1}^Ny_i\log(\hat{y_i}) LCE=−∑i=1Nyilog(yi^)
其中, y i y_i yi是真实标签 y i ^ \hat{y_i} yi^ 是模型预测的概率。对于二分类问题,交叉熵损失就是对每个样本的负对数似然求和。
优点:
- 简单且直观,易于实现。
- 适用于大多数标准分类任务。
- 计算效率较高,尤其是对于较大的数据集。
缺点:
- 在处理不平衡数据集时,交叉熵容易偏向于多数类,导致少数类的学习不充分。
- 它对所有类别的错误惩罚是相同的,因此如果数据不平衡,模型可能会忽略少数类。
3.2 加权交叉熵(Weighted Cross-Entropy)
原理:
加权交叉熵是在标准交叉熵的基础上,为不同类别分配不同的权重。权重通常基于类别频率来调整,少数类的权重会被增加,从而使得模型在计算损失时更加关注少数类的预测结果。加权交叉熵的公式如下:
L W C E = − ∑ i = 1 N w ( y i ) ⋅ y i log ( y i ^ ) \mathcal{L}_{WCE}=-\sum_{i=1}^Nw(y_i)\cdot y_i\log(\hat{y_i}) LWCE=−∑i=1Nw(yi)⋅yilog(yi^)
其中, w ( y i ) w(y_i) w(yi)是类别 y i y_i yi的权重,常见的权重选择策略有逆频率加权或类别的逆样本数。
优点:
- 通过调整类别权重,能够使得模型对少数类更为敏感,从而改善少数类的预测性能。
- 适合不平衡数据集,特别是当类别之间的差异较大时。
- 相较于过采样和欠采样,不需要修改原始数据集,避免了数据丢失或过拟合的问题。
缺点:
- 权重的选择较为关键,选择不当可能会导致模型对某个类别过拟合或欠拟合。
- 需要调参,找到合适的权重值通常需要一些实验和验证。
- 如果不平衡极其严重(如某一类别样本极少),过高的权重可能会引入噪声或使模型偏向少数类
3.3 Focal Loss
Focal Loss 是一种用于处理类别不平衡问题的损失函数,特别是在目标检测任务中,常用于解决背景(负样本)占多数而前景(正样本)较少的情况。其基本思想是通过动态调整难易样本的权重,从而使得模型更加关注难以分类的样本,尤其是那些容易被模型忽略的少数类样本。它是基于 交叉熵损失 的一种改进,增加了一个调节因子来“聚焦”于难以分类的样本。
Focal Loss的公式
Focal Loss是对标准交叉熵损失(Cross-Entropy Loss)的扩展,具体公式如下:
L F o c a l = − α t ( 1 − p t ) γ log ( p t ) \mathcal{L}_{\mathrm{Focal}}=-\alpha_t(1-p_t)^\gamma\log(p_t) LFocal=−αt(1−pt)γlog(pt)
其中:
- p t p_t pt 是模型对正确类别的预测概率,计算方式为:
p t = { p 如果是正类 1 − p 如果是负类 p_t=\begin{cases}p&\text{如果是正类}\\1-p&\text{如果是负类}&\end{cases} pt={p1−p如果是正类如果是负类
这里的 p p p 是预测的概率值,表示模型认为某个样本属于某个类的概率。
-
α t \alpha_t αt 是类平衡因子,用于调节不同类别的重要性,尤其是用于缓解类别不平衡问题。如果类别较少或较少出现的类别比较重要,可以加大其权重。
-
( 1 − p t ) γ (1-p_t)^\gamma (1−pt)γ是焦点因子, γ \gamma γ是一个调节超参数(通常取值在 0 和 5 之间)。这个因子用于降低容易分类的样本对损失函数的贡献。对于容易分类的样本, p t p_t pt较大, ( 1 − p t ) γ (1-p_t)^\gamma (1−pt)γ 会变得较小,从而减少它们对总损失的贡献。这样模型就能够将更多的关注集中在难分类的样本上。
Focal Loss的设计动机
Focal Loss的核心思想是聚焦难分类样本,减少对易分类样本的影响,主要解决以下两个问题:
- 类别不平衡问题:在目标检测或分类任务中,负样本(背景)通常占多数,且容易被正确分类。此时,标准的交叉熵损失函数可能会导致模型忽略难分类的正样本(前景),并且在训练过程中大多数时间会关注背景类别。通过增加 ( 1 − p t ) γ (1-p_t)^\gamma (1−pt)γ 因子,Focal Loss让难以分类的正样本(即 p t p_t pt较小的样本)获得更大的损失,从而让模型更关注这些难样本,避免容易分类的背景样本主导训练。
- 高效训练:对于已经能够正确分类的负样本,标准交叉熵损失的梯度更新较小,训练过程中这些样本对模型的优化贡献较小。Focal Loss通过使用焦点因子 ( 1 − p t ) γ (1-p_t)^\gamma (1−pt)γ ,使得这些样本的损失值下降,从而减少它们对模型训练的影响。这样,训练过程中模型能够集中更多精力于困难的样本(例如那些接近决策边界的样本)。
Focal Loss的应用场景
Focal Loss最初是为了解决目标检测中的类别不平衡问题而提出的,特别是在 单阶段目标检测器(如RetinaNet)中应用。目标检测任务中,大多数区域被背景填充,只有少数区域包含前景对象。Focal Loss在这种场景中通过减小背景区域的损失权重,使得前景区域(尤其是小物体或难以检测的物体)得到更多的关注。
超参数
- γ \gamma γ(焦点参数):调节焦点因子的强度。较高的值(如 2 或 3)会显著降低易分类样本的损失,从而让模型更多关注难分类的样本。
- α t \alpha_t αt(平衡因子):主要用于解决类别不平衡的情况,通过设置较高的值来加强对少数类的关注。
Focal Loss的优缺点
优点:
- 改善类别不平衡:通过增强难分类样本的损失,Focal Loss有效解决了数据集中的类别不平衡问题。
- 高效训练:通过抑制易分类样本的梯度更新,Focal Loss减少了训练中的“冗余”计算,使得模型在较少的训练步骤内能够更好地学习到有用的特征。
- 适应性强:焦点参数和平衡因子可以灵活调整,适应不同数据集和任务的需求。
缺点:
- 超参数调节:需要合适地选择 γ \gamma γ 和 α t \alpha_t αt 值,以避免过拟合或训练不稳定。
- 对类别权重依赖较大:在严重不平衡的情况下,可能需要对不同类别设置不同的 α t \alpha_t αt ,否则可能无法有效地减轻负样本的影响。
3.4 LDAM Loss
LDAM Loss(Large Margin Softmax Loss)是一种在训练深度学习模型时使用的损失函数,特别适用于处理类别不平衡问题。在传统的分类问题中,Cross-Entropy Loss(交叉熵损失)通常用于计算模型输出的预测概率与真实标签之间的差距。然而,当类别分布不平衡时,Cross-Entropy Loss 可能会导致模型倾向于预测多数类的标签,从而忽视少数类。LDAM Loss 通过调整每个类别的权重来缓解这个问题,使得少数类的样本在训练过程中获得更大的关注。
LDAM Loss(Large Margin Softmax Loss)是一种在训练深度学习模型时使用的损失函数,特别适用于处理类别不平衡问题。在传统的分类问题中,Cross-Entropy Loss(交叉熵损失)通常用于计算模型输出的预测概率与真实标签之间的差距。然而,当类别分布不平衡时,Cross-Entropy Loss 可能会导致模型倾向于预测多数类的标签,从而忽视少数类。LDAM Loss 通过调整每个类别的权重来缓解这个问题,使得少数类的样本在训练过程中获得更大的关注。
LDAM Loss 的核心思想
LDAM Loss 的设计思想是,在类别不平衡的情境下,通过为每个类别设定一个“类间距离”(Large Margin),使得模型在区分各个类别时,给少数类样本更多的“训练信号”。这一类间距离的大小通常与该类的样本数量成反比——即样本数量较少的类别,距离较大,从而使得模型在训练时会尽量避免将少数类样本分类为多数类。
具体定义
假设我们有 N N N 个类别,模型的输出是一个经过 softmax 函数的概率分布,类别 c c c的预测概率为 p c p_c pc,而对应的标签是 y y y。LDAM Loss 的定义如下:
L D A M L o s s ( x , y ) = − log ( exp ( w y T x ) ∑ i = 1 N exp ( w i T x ) ) \mathrm{LDAM~Loss}(x,y)=-\log\left(\frac{\exp(w_y^Tx)}{\sum_{i=1}^N\exp(w_i^Tx)}\right) LDAM Loss(x,y)=−log(∑i=1Nexp(wiTx)exp(wyTx))
其中:
- w i w_i wi是每个类别的权重;
- x x x 是输入样本的特征向量;
- w y w_{y} wy 是类别 y y y的权重,通常这个权重和类别的样本数目有关。
调整策略
在 LDAM 中,权重 w i w_i wi 的设置是关键,通常采用以下公式来调整权重:
w i = 1 n i w_i=\frac1{\sqrt{n_i}} wi=ni1
其中 n i n_i ni是类别 i的样本数量, w i w_i wi 的大小与类别的样本数量成反比。这样,样本数量较少的类别,权重较大,从而在损失函数中占据更大的位置。
应用场景
LDAM Loss 特别适用于类别不平衡严重的任务,例如:
- 图像分类:某些类别的图像样本可能远远少于其他类别,LDAM Loss 可以帮助模型更好地学习这些少数类。
- 人脸识别:在某些特定的人脸识别任务中,少数类的人脸图像可能需要更多的关注。
LDAM Loss的优缺点
优点:
- 缓解类别不平衡问题:通过增加少数类样本的边际,使得模型更关注少数类样本,减少多数类对模型训练的主导影响。
- 改善少数类的表现:由于调整了类别间的距离,LDAM Loss 在处理类别不平衡时,能有效提升少数类的识别精度。
- 提升分类精度:在许多类别不平衡的应用场景中,LDAM Loss 可以改善模型的整体分类精度,尤其是对少数类的召回率。
缺点:
- 依赖准确的类别分布信息:LDAM Loss 假设类别的频率信息是已知的,如果训练和测试集的类别分布不一致,可能会导致性能下降。
- 训练难度较大:引入较大的 margin 可能使得模型训练更为复杂,导致收敛速度变慢。
- 可能导致过拟合:如果边际设置不当,LDAM Loss 可能导致模型过度关注少数类,导致对少数类的过拟合,影响模型的泛化能力。
- 参数调优困难:需要精确地调整 margin 参数,否则可能无法充分发挥其优势。
3.5 Focal Loss Vs. LDAM Loss
核心思想是加强对难分类样本的关注,减少容易分类样本的影响,但实现的方式有所不同。
核心思想:
- Focal Loss 通过对难分类样本的关注,减少容易分类样本的影响,考虑样本粒度。
- LDAM Loss 通过增加类别间的 margin 来提升模型对少数类的区分度。考虑类粒度。
应用场景:
- Focal Loss 主要用于检测任务(如目标检测、语音识别等),尤其是面对大规模类别不平衡的数据时。
- LDAM Loss 主要用于分类任务,尤其是当类别不平衡非常严重时。
对难易样本的处理方式:
- Focal Loss 通过调整易分类样本的损失权重,降低其对总损失的贡献。
- LDAM Loss 通过引入大间隔来增加难分类样本的权重,并增加少数类样本的 margin。
3.6 Large Margin aware Focal (LMF) Loss
结合了 Large Margin 思想和 Focal Loss 的损失函数,旨在同时解决类别不平衡和优化边界问题,尤其是在深度学习分类任务中,特别是目标检测和其他高难度分类问题中。
背景:
- Focal Loss 的目标是减少多数类样本对损失的主导作用,关注难分类的样本。然而,Focal Loss 没有直接考虑类别间的边界。
- Large Margin 方法(例如 Large Margin Softmax 或 ArcFace Loss)通过增加类别之间的 margin 来增强类别区分能力,但它们没有像 Focal Loss 那样特别关注难易样本的区别。
LMF Loss 的动机:
LMF Loss 的主要目的是在 Focal Loss 的框架下,引入 大边界(Large Margin) 概念,从而在处理类别不平衡时,增强少数类样本的分类性能,并且提高类别之间的区分度。具体来说,LMF Loss 在以下两方面进行了结合:
- Focal Loss 的自适应权重调整:通过聚焦难分类样本,减轻容易分类样本的影响。
- Large Margin:通过加大分类间的 margin,增强分类的可分性。
LMF Loss 公式
LMF Loss 是 Focal Loss 和 Large Margin 的结合,其损失公式为:
L L M F = α ( − l o g u u + ∑ j ≠ y e z y ) + β ( − α t ( 1 − p t ) γ l o g ( p t ) ) L_{LMF}=\alpha(-log\frac{u}{u+\sum_{j\neq y}e^{z_y}})+\beta(-\alpha_t(1-p_t)^\gamma log(p_t)) LLMF=α(−logu+∑j=yezyu)+β(−αt(1−pt)γlog(pt))
可以看出来,该损失是Focal loss和LDAM Loss的线性组合,实验测定 α \alpha α和 β \beta β最佳取值范围是在0.5-2之间:
第一项:与 Large Margin 相关
-
这里的 u u u是一个与类别 y y y 相关的量,通常用于衡量该类别的“难易”程度,或者在某些应用中可以是与该类别相关的一个调节因子。
-
z j z_j zj是样本属于类别 j j j 的预测分数。
-
∑ j ≠ y e z j \sum_{j \neq y} e^{z_j} ∑j=yezj是除了正确类别 y 之外,所有其他类别的指数化预测分数和。这个项的作用是考察当前类别与所有其他类别之间的差距,从而形成一个大边界(Large Margin)的约束,提升模型的类别区分能力。
-
− log u u + ∑ j ≠ y e z j -\log \frac{u}{u + \sum_{j \neq y} e^{z_j}} −logu+∑j=yezju 这一项的目的是加强对正确类别 y的概率估计,增加其与其他类别之间的 margin。
第二项:与Focal Loss相关
这一部分即是传统的 Focal Loss 公式。Focal Loss 用于处理类别不平衡问题:
- p t p_t pt 是模型对当前样本类别的预测概率(正类或负类)。
- ( 1 − p t ) γ (1 - p_t)^\gamma (1−pt)γ 通过降低容易分类样本的权重来关注难分类样本,增强对那些不容易正确分类的样本的关注。
- α t \alpha_t αt是类别的加权因子,通常用于调整类别不平衡问题,通常给予少数类更高的权重。
- γ \gamma γ是焦点因子,通常在 0 到 5 之间调节,用于控制对难分类样本的关注程度。