Class-Imbalanced Loss Based on Effective Number of Samples
Class-Imbalanced Loss Based on Effective Number of Samples
Yin Cui, etc.
Intro
CNN在一些skewed/long tailed数据集上表现的不是非常好。总的来说解决方案有两套
- re-sampling
- cost-sensitive reweighting
前者会带来一个overfitting的问题,因此我们侧重第二个方案,如何设计一个好的loss function。
这里的理论框架来自于random covering problem,它的目标是通过一些列随机的小集合来覆盖一个大集合。注意这里提出的effective number of samples并不是统计学中的概念,它是当sample correlated的时候计算variance。
Effective Number of Samples
核心的想法就是每一个sample并不仅仅是一个点,而代表了其附近的一个neighboring区域。
Class-Balanced Loss
考虑到实际情况,这里假设$$N_i$$是依赖于dataset,并且$$N_i=N$$, $$\beta_i = \beta = (N-1)/N$$。
Class-Balanced Softmax Cross-Entropy Loss
softmax是将每一个class as mutual exclusive, 也就是其概率和是1。
$$ CE{softmax}(z,y) = -\log \frac{\exp(z_y)}{\sum{j=1}^C \exp(z_j) }
$$
然后再乘以effective number
Class-Balanced Sigmoid Cross-Entropy Loss
使用sigmoid而不是softmax是假设每一个class都是独立,并且并不互相排斥。也就是其概率和可以大于1。
$$ CE{sigmoid} = - \sum{i=1}^C \log (sigmoid (zi^t)) = - \sum{i=1}^C \log \frac{1}{1 + \exp{(-z_i^t)}}
$$
然后再乘以effective number
Class-Balanced Focal Loss
最近提出的focal loss是基于sigmoid cross-entropy
$$ pi^t = sigmoid(z_i^t)\ FL{z,y} = - \sum_{i=1}^C (1-p_i^t)^\gamma \log (p_i^t)
$$
Appendix
注意,这里有一个不一样的点。
在原来提出的focal loss中,CE或者FL只要考虑正确的class对应的likelihood,而这里是sum-up over all class likelihood。
换句话说,
本来是$$- \sum y \log$$,而这里是$$- \sum \log$$。