Class-balanced Loss:基于有效样本数的类别平衡损失.

Class-Balanced Loss可以用于改进任何传统的损失函数,从而提高在类别不平衡数据集上的表现。通过数据增强等方法,每一个样本可以产生许多与自身相似的样本,这些样本分布在空间中的某个邻域内,即占据一定的空间“体积”。Class-Balanced Loss关注每一类样本所能覆盖的空间体积,而不是单纯的关注每一类样本的数量,并引入有效样本数量(effective number of samples)的概念。

将数据采样看作一个随机覆盖(random covering)问题,则某一类别的$n$个样本对应的有效样本数量为$E_n$,则其计算表达式为:

\[E_n=\frac{1-\beta^n}{1-\beta}, \quad \beta = \frac{N-1}{N}\]

其中$N$表示该类别所有样本占有的空间体积。下面使用数学归纳法证明该结论。

当$n=1$时$E_n=1$成立,假设我们已经采样了$n-1$个样本,准备采样第$n$个样本。该类别所有样本占有的空间体积为$N$,已经采集样本的有效样本数量为$E_{n-1}=\frac{1-\beta^{n-1}}{1-\beta}$,则新的样本有$p=\frac{E_{n-1}}{N}$的概率落入已采集样本内;则采集新样本后的有效样本数量的数学期望计算为:

\[E_n = pE_{n-1}+(1-p)(E_{n-1}+1) = E_{n-1}+1-p \\ =E_{n-1}+1-\frac{E_{n-1}}{N} = 1+\frac{N-1}{N}E_{n-1} \\ = 1+\frac{N-1}{N}\frac{1-\beta^{n-1}}{1-\beta} = 1+\beta\frac{1-\beta^{n-1}}{1-\beta} = \frac{1-\beta^{n}}{1-\beta}\]

由此使用不同类别的有效样本数量$E_n$(而不是样本数量$n$)对不同类别的损失函数进行加权:

\[\mathcal{L}_{\text{CB}}(\hat{y},y) = \frac{1}{E_{n_y}} \mathcal{L}(\hat{y},y) = \frac{1-\beta}{1-\beta^{n_y}} \mathcal{L}(\hat{y},y)\]