Introduction
不平衡样本:
训练样本中 各类别间 数量差距较大。
易导致过拟合,影响在 极端测试集 (量少类样本居多) 上的 泛化能力 。
对不平衡样本的处理手段主要分为两大类:数据层面 (简单粗暴)、算法层面 (复杂) 。
Note:
为了简明扼要,以下称 量少的类别 为 量少类,反之亦然。
数据层面
1. 数据重采样
上采样 | 下采样 | |
---|---|---|
使用情况 | 数据不足时 | 数据充足 (支撑得起你的浪费) |
数据集变化 | 增加 | 间接减少(量大类被截流了) |
具体手段 | 大量复制量少类样本;数据扩充 | 批处理训练时,控制从量大类取的图像数量 |
风险 | 过拟合 |
2. 类别平衡采样
通过设计 样本列表 来实现平衡采样。
算法层面
在目标函数中,增加 量少类 样本 被错分 的 损失值 。
1. 基于代价敏感矩阵的代价敏感
利用 K × K K \times K K×K 的 矩阵 C C C 对不同样本类别施加错分惩罚。
2. 基于代价敏感向量的代价敏感
每个样本 都具有自己的 代价敏感矩阵。一旦这样些代价敏感矩阵相同,则该方法 退化 为“基于代价敏感矩阵的代价敏感向量”。
Example:
- Focal Loss
focal loss 的出现,是一个伟大的里程碑。它的出现,直接将类别不平衡处理从原来繁杂的人工时代进化到了 纯计算时代 。管你类别再不平衡,只需一个简单的公式,统统搞定:
F L ( p t ) = − ( 1 − p t ) γ log ( p t ) FL(p_t)=-(1-p_t)^\gamma\log(p_t) FL(pt)=−(1−pt)γlog(pt)
[1] Focal Loss for Dense Object Detection