目录
Paper Reading 是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图表若未另外说明则均来自原文。
论文概况 | 详细 |
---|---|
标题 | 《Density‑based weighting for imbalanced regression》 |
作者 | Michael Steininger, Konstantin Kobs, Padraig Davidson, Anna Krause, Andreas Hotho |
发表期刊 | Machine Learning |
发表年份 | 2021 |
期刊等级 | 中科院 SCI 期刊分区(2023年12月最新升级版)3 区,CCF-B |
论文代码 | https://github.com/SteiMi/density-based-weighting-for-imbalanced-regression |
作者单位:
Chair of Computer Science X, University of Würzburg, Würzburg, Germany
研究动机
很多机器学习算法通常期望数据集有大致均匀的目标分布,分类问题中意味着每个类有相似数量的样本,在回归问题总则是整个目标值范围内应该有相似的样本密度。然而许多数据集表现出倾斜的目标分布,目标值在某些范围内出现的频率低于其他范围,导致模型可能会产生偏差,在常见情况下的性能优于罕见情况。对于这些罕见的事件具有特殊意义的任务来说非常重要,例如极端降雨量估计、信用卡欺诈检测等。对于分类任务有很多解决方案,包括重采样、和成本敏感学习等,然而由于连续和离散目标值之间的固有差异,这些方法不能直接应用于回归任务。典型解决方案需要一个数据点的稀有性或重要性的概念,以便知道哪些数据点样本过少,哪些数据点样本不足,或者哪些数据点权重更大。与分类任务相比,很难定义回归任务中哪些值是罕见的,因此只有少数作品探讨了在回归应用的方法。与成本敏感的方法相比,重采样方法可能有一定的局限性,因为过采样来创建新数据点可能会导致过拟合和额外的噪声,欠采样会导致信息缺失。对于不平衡分类任务的成本敏感学习的成功表明,探索不平衡回归的这个方向也可以在这个领域找到更好的方法。
文章贡献
本文提出了一种名为 DenseWeight 的不平衡回归数据集的样本加权方法,并在此基础上提出了一种名为 DenseLoss 的不平衡回归的成本敏感学习神经网络。DenseLoss 使用 KDE 近似训练目标值的密度函数,将所得密度函数构成计算 DenseWeight 权重函数的基础,接着 DenseLoss 根据 DenseWeight 为训练集中的每个数据点分配一个权重,增加稀有数据点对损失和梯度的影响。本文引入了一个单一的、易于解释的超参数,允许将模型的焦点转移到目标变量分布的稀有区域。使用合成数据分析了 DenseLoss 对常见和稀有数据点性能的影响,并将 DenseLoss 与不平衡回归方法 SMOGN 进行了比较,发现本文的方法通常提供更好的性能。结合将 DenseLoss 应用于严重不平衡的降尺度降水的现实世界问题,表明它能够在实践中显着提高模型性能。
本文方法
DenseWeight
本研究的目标是根据其目标值的稀有性对单个数据点进行加权,因此需要为每个样本计算一个与目标值出现的概率成反比的权重。这类似于 SMOGN 使用的相关函数,但本文的权重将直接基于目标分布的密度函数来计算,这种基于密度的加权方案称为 DenseWeight。本文设计了它的加权函数 fw,使得加权的程度可以通过一个具有以下性质的超参数 α∈[0,∞] 来控制:
- 具有更常见目标值的样本比更罕见的样本获得更小的权重;
- fw 在 α= 0 时权重均匀,较大的 α 值强调了权重;
- 没有数据点被负加权,在训练过程中模型会试图最大化这些数据点的估计值与真实值之间的差异;
- 权重不能为 0,以免模型忽略部分数据集;
- 所有数据点的平均权重为 1,避免了对学习率的影响,简化了梯度下降模型优化的适用性。
从理论上讲该权重可以应用于任何类型的机器学习模型,通过模型对样本进行加权,使拟合模型更适合于罕见情况的估计。本文中将其用于神经网络 DenselLoss 的成本敏感不平衡回归方法。
稀有度度量
为了根据目标值的稀有性对数据点进行加权,需要度量 fw 的稀有性,为此需要确定目标变量的密度函数 p。密度函数的值可以解释为密度的相对度量,用于区分稀有值范围和常见值范围。对于具有 N 个样本和目标值 Y={y1, y2, …, yN} 的数据集的密度函数 p,使用估计密度函数的非参数方法 KDE 对其进行近似,以此来计算每个数据点的密度值。KDE 如公式(1)所示,对于 KDE 来说不同的核函数之间只有很小的差异,因此本文使用高斯核。对于带宽选择,自动带宽选择方法 Silverman's rule 产生的密度函数很好地遵循了本工作中使用的数据集的分布。
由于不影响相对密度信息,可以将训练集中所有数据点的密度值归一化到 0 到 1 之间。归一化如公式(2)所示,其中 p(Y) 是使用密度函数 p 对 Y 的计算结果。
归一化的密度函数 p∈[0,1] 提供了直观的可解释值,例如 Y 中样本最密集部分的数据点被赋值为 1,最稀疏部分的数据点被赋值为 0。
权重函数
权重函数的定时使用了归一化密度函数 p'、超参数 α和一个小的、正的、实值常数 ε,基本的权重函数使用公式(3)进行定义。该函数已经满足性质 1 和性质 2,-p' 对稀有样本产生更大的值,并且 α 可以缩放 p' 来控制基于密度的权重的强度。α=0 时则是禁用基于密度的权重,α=1 会导致该基本权重函数中最常见的数据点的权重达到 0。因此对于 α<1 时所有权重都是正的,α>1 时导致大多数常见数据点的权重为负,α 值 0 和 1 的定义为合理值的选择提供了直观的依据。
然而仍然有 f'w 不满足的期望性质,例如需要避免性质 3 和 4 中描述的负权和 0 权。为此将 f'w 修剪为小的、正的、重估的常数 ε,如公式(4)所示。
函数 f''w 满足除性质 5 以外的所有要求,但是由于 α 在没有任何归一化的情况下缩放所有梯度,使用它来加权基于梯度下降(如 DenseLoss)的代价敏感模型优化方法会影响学习率。如果要保持模型参数变化的幅度一致,改变 α 也需要不同的学习率。因此将 f''w 除以训练集所有样本的平均值来纠正这个问题,此时平均权重变为 1,防止了平均梯度大小的变化。得到如公式 (5) 所示的 DenseWeight 的权重函数fw:
下图展示了高斯分布目标变量的 DenseWeight,随着 α 值的增大,常见数据点和稀有数据点之间的权重差将更强烈。设置 α=1 会产生一个对于大多数常见的数据点,几乎不能达到 ε 的加权函数。为了将更多的公共数据点推向 ε 权重,可以将 α 增加到 1 以上。通过调参可以找到最合适的 α 值,DenseLoss 的 α 允许在关注数据集的常见部分或罕见部分之间进行权衡。
DenseLoss
本文使用神经网络作为回归器,给定模型估计的 ŷ={ŷ1, ŷ2, …,ŷN},目的是最小化合并到应用样本加权的损失函数 L 中的度量 M。当将损失函数的 DenseWeight 和样本加权相结合时,即可获得了一种如公式(6)所示的成本敏感的不平衡数据集回归方法 DenseLoss。
使用 DenseWeight 对每个样本的损失进行加权会影响基于每个样本计算的梯度大小,与普通样本相比梯度将更侧重于罕见样本。与不平衡回归方法 SMOGN 相比,本文方法是一种在算法级别而不是数据级别上的实现。
实验结果
实验整体的设置
实验结果主要包括三个部分的实验,分别是合成数据集实验、和其他算法的比较、真实数据集实验。首先用合成数据集研究了 DenseLoss 在不同 α 值和不同分布特征下的表现,验证了 DenseLoss 是否能预期的效果。其次将 DenseLoss 与不平衡回归方法 SMOGN 进行了比较,表明本文提出的算法可以为罕见数据点提供更好的性能。最后将 DenseLoss 应用于一个真实数据集,证明它也适用于更大的数据集和更复杂的神经网络架构。
对于所有实验,使用库 KDEpy 的基于卷积的 KDE 实现 FFTKDE,提供在等距网格上快速的密度估计。对于每个训练数据集,将为每个样本分配最近网格点的密度。实验使用 4096 点的等距网格,以避免由于 KDE 精度低而对本文方法产生潜在的负面影响,DenseLoss 的修剪常数 ε 设置为 10−6。对于实验结果显著差异情况,使用假设检验进行分析。
合成数据集实验
实验设置
本实验使用了四个具有不同特征的合成数据集:两个分别遵循帕累托分布(pareto)和反帕累托分布(rpareto)的重尾数据集,和使用高斯数据集(正态)和由两个具有稀疏区域的高斯数据集(非正态)构建的数据集。
使用 MLP 作为随机函数来生成合成数据集,这可以在理论上保证了该函数可以被 MLP 再次学习。网络参数初始化为标准高斯分布,特征也取自标准高斯分布。该网络由 3 个隐藏层组成,每个隐藏层有 10 个神经元,激活函数使用 ReLU。最后一个隐藏层连接到一个线性激活的单个神经元,以获得回归任务的目标值。从得到的 200000 个样本中,以均匀分布的目标值的方式对 10000 个数据点进行采样,目标值范围是 −32.13~76.42。然后为每个数据集定义对应于期望目标分布的概率密度函数,从按样本期望密度加权的数据集中采样 1000 个数据点,创建数据集pareto、pareto、normal 和 dnormal。这些数据集的分布如下图展示,训练时每个数据集按照 3:1:1 随机分成训练集、验证集和测试集。
接着对于 α 参数的设置进行研究,α 值按照 0.1 的步长在范围 0.0~2.0 进行训练。每个 α 训练了 20 个模型实例,使用假设检验对结果进行分析。所使用的 MLP 在结构上等同于数据生成器网络使用 kaim 均匀初始化设置初始参数。DenseLoss 是与均方误差(MSE)结合使用的损失函数,采用 Adam 优化进行训练,学习率为 10−4,权重衰减系数为 10−9。训练最多运行 1000 epoch,但如果连续 10 次 epoch 验证损失没有改善则提前停止。
实验结果
为了评估目标域的不同部分的模型性能,实验将基于目标值对测试数据进行分箱,每个箱占测试集中目标变量范围的 20%。根据每个数据集的样本数量对这些箱进行排序,样本最少(最多)的 bin 的秩为 1(5),称为最小(最普通)bin,这样就能在所有数据集上相似的稀有的箱进行性能比较。
在合成数据集的 20 次运行中,MLP 在没有 DenseLoss 的情况下,对于最常见的箱的平均 RMSE(MAE) 在 3.53(2.70) 到 6.75(5.47) 之间;对于最稀有的箱的平均 RMSE(MAE) 在 6.68(6.26) 到 27.10(26.74) 之间。当 α=1.0 将最稀有的箱的平均 RMSE(MAE) 提高了 1.21(1.48) 至 7.02(7.00),最常见的箱提高了 1.12(0.90) 至 1.68(1.49)。
下图展示了使用不同 α 设置的模型的不同 bin 的在数据集上的平均 RMSE 值,可见 DenseLoss 倾向于降低具有常见样本的箱的性能,当 α>0 时将有利于稀有箱的改进。其中当 α=1.0 时提供了良好的性能,与不使用 DenseLoss(α=0.0) 相比,最稀有的 bin 的性能有了显着提高。
下图显示了数据集 normal 和 pareto 的结果,可见将 α 设置为 1 左右可以提高稀有目标范围的性能,且只会略微降低常见目标范围的性能。α 值太大(α≥1.4)也会导致性能下降,可能是训练集中的目标范围只有很少的数据点,而相邻的更常见的数据点的权重接近于 0 时导致的。在这种情况下因为有效样本数量很少,模型很难学习更高目标范围的一般函数。
使用 KDE 在其测试数据集的目标变量上计算每个测试样本的目标值的归一化密度,将其作为每个样本在其测试数据集中的稀缺性的数据独立的度量。接着计算每个数据集的每个测试样本在 20 次运行中的 MAE,并除以其各自测试数据集的目标变量的最大值和最小值之间的差来规范化 MAE。将归一化MAE与归一化密度相结合绘制出下图,可见 α=1.0 和 α=2.0 的 DenseLoss 通常可以减少非常罕见样本的误差 (p'(y)<0.15),对于更常见的样本(p′(y)>0.4)而言 α=2.0 时性能明显恶化,α=1.0 时的性能仍然接近 α= 0.0,直到p′(y) > 0.75 左右才出现差距。
这个实验表明 DenseLoss 可以将模型的重点转移到更罕见的案例上,使用不同的 α 值来调整目标范围内的模型性能。因此 DenseLoss 提供了对模型训练的额外控制,允许对稀有数据点具有更好性能的模型进行拟合。
对比实验
实验设置
SMOGN 目前可以被认为是最先进的不平衡回归方法,SMOGN 的作者在他们的论文中提出了 20 个不平衡数据集。本文将 SMOGN 和 DenseLoss 应用于这些数据集,并比较模型的性能。每个数据集按照 3:1:1 随机分成训练集、验证集和测试集,使用 DenseLoss 训练的模型使用 α=1.0,SMOGN 则使用原文中设置的超参数。回归器使用相同的 MLP 架构和超参数,每个数据集对模型进行了 20 次训练和评估,并使用假设检验来观察显著性。将每个测试数据集分成 5 个等距离的箱,并根据样本数量对箱子进行排序,计算每个 bin 的 RMSE 和 MAE。
下图显示了 DenseLoss、SMOGN 和不进行采样时在 RMSE 的 20 个数据集上每个 bin 排名的数据集获胜数。结果表明对于最稀有的 bin(bin rank 1),DenseLoss 在 8 个数据集上提供了最佳性能,SMOGN 仅在 3 个数据集上表现最佳,不应用任何方法仅在 2 个数据集上表现最佳。对于排名 1-4 的 bin DenseLoss赢得了超过一半的数据集,大多数在不采样和 SMOGN 上具有统计学意义。只有对于样本最多的 bin rank 5,通常不对这些数据应用任何方法效果最好。MAE 的结果也非常相似,表明与不平衡回归方法 SMOGN 相比,DenseLoss 在稀有数据点上提供更好的性能。
接着以连续的方式分析数据集的目标变量域的性能,下图展示了 α=0.0、DenseLoss(α=1.0)和 SMOGN 的所有数据集上每个数据点罕见度的 MAE。使用移动平均值平滑图口,窗口大小为 300 个样本,超过 7188 个测试样本。实验发现与不使用不平衡回归方法相比,稀疏数据点(~p'(y)<0.5)的 DenseLoss 平均误差更低。对于 p’(y)<0.3 的罕见数据点 MAE 提高了大约 10%,误差随着密度的增加而增加。SMOGN 使用了与原作者使用的超参数相同的数据集,但似乎在所有数据集上平均结果都不好。
降水量预测任务
为了证明 DenseLoss 可以适用于更大的数据集和更复杂的神经网络架构,实验将其应用于真实世界的降水统计任务。一个对降水进行统计的模型是 DeepSD,它采用超分辨率 CNN 提高降水数据的分辨率。此处将 DenseLoss 应用于该任务,以提高模型的性能,同时也对 DenseLoss 的 α 对模型性能的影响进行分析。
实验修改了 DeepSD 的 code3 以包含 DenseLoss,模型使用三个卷积层,分别有 64、32、1 个过滤器,核大小分别为 9、1、5。模型的优化目标是最小化 MSE,批大小为 200,使用的 Adam 优化器在前两层的学习率为 10−4,最后一层的学习率为 10−5。训练的次数为 105 次,将分辨率从128km 降至 64km,α 值按照 0.2 为步长从 0.0 增长到 4.0。DeepSD 在每个 α 上进行 20 次随机模型初始化训练,使用假设检验统计显著性。将测试数据集分成 5 个等距的箱,按样本数量对箱子进行排序,并计算每个箱的 RMSE 和 MAE。
下图展示了使用不同 α 训练的模型在所有箱中相对于 α=0.0 的 RMSE 的百分比变化。DenseLoss 不仅提高了罕见样本(例如 bin rank 1)的性能,而且也提高了常见值(例如 bin rank 5)的性能。整体性能随着 α 的增加而提高,直到 α≥2.0 达到稳定。统计显著性检验表明,与 α=0.0 相比对于每个 α≥0.8 的性能改进对于所有箱都是显著的。
以连续的方式分析了目标变量域上的性能,下图展示了 α=0.0 和 DenseLoss(α>0.0) 的每样本 MAE。在 6143403 个测试样本上应用窗口大小为 300000 个数据点的移动平均值来平滑绘图。可以看到 DenseLoss 提高了对稀有样本(左侧)和普通样本(右侧)的估计,性能改进倾向于随着 α 的增大而增加,但只略微高于 α=2.0。可见在该实验中 DenseLoss 能够在整个目标变量范围内提高性能,而不是在常见和稀有样本之间提高性能。
优点和创新点
个人认为,本文有如下一些优点和创新点可供参考学习:
- 针对不平衡回归问题,本文在成本敏感学习方面基于密度度量设计了一种权重策略 DenseWeight,具有一定新意;
- 以 DenseWeight 作为损失函数,将成本度量的方法和神经网络相结合提出 DenseLoss,具有明显的改进效果;
- DenseLoss 仅有一个超参数 α,只需要对 α 进行调参即可适应不同的不平衡情况,较为简洁。