论文网址:Pursuing Better Decision Boundaries for Long-Tailed Object Detection via Category Information Amount

目录

1. 心得

2. 论文逐段精读

2.1. Abstract

2.2. Introduction

2.3. Related Work

2.3.1. Long-Tailed Object Detection

2.3.2. Methods for Measuring Class Difficulty

2.4. Pursuing Better Decision Boundaries with the Help of Category Information Amount

2.4.1. Definition and Measurement of Category Information Amount

2.4.2. Information Amount-Guided Angular Margin (IGAM) Loss

2.4.3. Low-Cost Dynamic Update of Information Density

2.5. Experiments

2.5.1. Datasets and Evaluation Metrics

2.5.2. Implementation Details

2.5.3. Main Results: Effectiveness of IGAM Loss

2.5.4. Comparison with State-of-the-Arts

2.5.5. Evaluation results on COCO-LT

2.5.6. Evaluation results on Pascal VOC

2.5.7. Effectiveness in Reducing Model Bias

2.6. Conclusion

1. 心得

(1)值得一看,感觉不懂目标检测的也能看,有点类似进阶分类

2. 论文逐段精读

2.1. Abstract

        ①目标检测中类别不平衡可能会导致性能下降

        ②因此作者提出Information Amount-Guided Angular Margin (IGAM) Loss

2.2. Introduction

        ①在目标检测和图像分类中,类别偏差(bias)不一定完全来源于样本数量差异,也可能来源于不同的物体特征复杂度(作者在均匀样本数据集上测试出每个类别的检测效果也不同):

        ②以往对长尾问题的手段是权重重分配,调整梯度,数据增强。这些往往是针对样本数量的,但没有作用在类别复杂度上

        ③作者想评估每个类别本身的复杂度,于是在两个长尾数据集上测试了三种损失下的类别信息量与AP值的关系:

发现都呈负相关,代表信息量越大越难检测。也测试了不同主干配不同损失的信息量和实例数量皮尔逊相关:

(这个图纵轴-0.8那和横轴一二列有点问题吧)

        ④长尾分布会影响决策边界还会浪费模型容量,作者希望决策能稍微等同一点,因此提出了类别信息量动态调整损失

2.3. Related Work

2.3.1. Long-Tailed Object Detection

        ①最常见的长尾解决办法有重采样,损失设计,架构提升,解耦训练,增强

2.3.2. Methods for Measuring Class Difficulty

        ①以前的工作可能是专注于样本大小

        ②作者识图发现偏倚的本质原因

2.4. Pursuing Better Decision Boundaries with the Help of Category Information Amount

2.4.1. Definition and Measurement of Category Information Amount

        ①定义类i的信息量I_i=Vox\left ( X_i \right )$X_i = [x_1, x_2, \dots, x_m] \in \mathbb{R}^{p \times m}$是第i类每个实例的嵌入

        ②嵌入的协方差矩阵:

$X_i: \ \Sigma(X_i) = \frac{1}{m} \sum_{j=1}^m \left(x_j - \bar{x}\right) \left(x_j - \bar{x}\right)^T$

其中\bar{x}是类中实例的均值向量,这个矩阵衡量了类中嵌入空间分布。为了增加协方差矩阵预估的准确性,使用了Ledoit-P´ ech´ e nonlinear shrinkage method(当样本很少但特征维度很大的时候,协方差矩阵的形状是维度*维度的,会导致全是噪声。这个方法就是把小于某个阈值的特征值提高):

$\Sigma(X_i) = V \operatorname{diag}\left(\lambda_1, \lambda_2, \dots, \lambda_p\right) V^T$

其中V是特征向量,$\lambda_i = \max\left(\lambda_i, \lambda_-\right)$$\lambda_- = \left(1 - \sqrt{p/m}\right)^2$就是下限特征值

        ③信息量准确定义(加单位矩阵是防止协方差矩阵奇异):

$I_i = \operatorname{Vol}(X_i) = \frac{1}{2} \log_2 \det\left(\Sigma(X_i) + I\right),$

其中$\det\left(\Sigma(X_i) + I\right)$\Sigma(X_i) + I的行列式,I是单位矩阵

2.4.2. Information Amount-Guided Angular Margin (IGAM) Loss

        ①通常分类中的交叉熵损失(就是Softmax也写了,这个算出来的就是P):

$L = -\log\left(\frac{e^{W_i^T x}}{\sum_{j=1}^C e^{W_j^T x}}\right),$

其中x是特征向量,i是标签,W_j是全连接层

        ②在长尾情景下每个类权重向量的范数不一样(emm不造欸?不长尾感觉也不一定一样?),当$W_1^T x = W_2^T x$时,

$\|W_1\|_2 \cdot \cos(\theta_1) = \|W_2\|_2 \cdot \cos(\theta_2),\quad 0 \leq \theta_1, \theta_2 \leq \frac{\pi}{2}.$

如果范数更大,那么角度就更大

        ③解决的办法是将决策空间等同(将原本的值还要再归一化一下):

$L = -\log\left(\frac{e^{s \cdot \cos(\theta_i)}}{\sum_{j=1}^C e^{s \cdot \cos(\theta_j)}}\right),$

其中\cos(\theta_i)=\frac{W_i^Tx}{\left\|W_i\right\|_2\cdot\left\|x\right\|_2}s是训练稳定超参数。但这样也不算好因为之前作者说了就算每个类别样本数都一样,模型也有偏见,这样过于严格的归一化会限制模型的敏感性

        ④因此作者引入之前的信息量,即边界m_{ij},希望信息量大的类别有更大的决策空间:

$L = -\log\left(\frac{e^{s \cdot \cos(\theta_i)}}{e^{s \cdot \cos(\theta_i)} + \sum_{j=1, j \neq i}^C e^{s \cdot \cos(\theta_j + m_{ij})}}\right),$

其中$m_{ij} = \max\left(0, \frac{1}{\pi} \cdot \log\left(\frac{I_i'}{I_j'}\right)\right)$$I_i' = \frac{e^{e^{I_i}/(\bar{I} \cdot \sqrt{C})}}{\sum_{j=1}^C e^{e^{I_j}/(\bar{I} \cdot \sqrt{C})}} \cdot C + 1$$\bar{I} = \sum_{i=1}^C I_i$I_i'是类别i归一化的信息量,m_{ij}是类别i和类别j的信息量比例

2.4.3. Low-Cost Dynamic Update of Information Density

        ①计算所有类别的协方差矩阵存储要求太大了所以优化一下

(1)Dynamic Update Strategy

        ①作者利用类似批次(batch)的概念来更新协方差矩阵,把队列长度设定为d,在队列长度小于所有实例数量的情况下,慢慢更新,比如第一次只通过d个数据来算协方差和均值,第二次再通过新的d个来更新。每次均值计算公式:

$\mu_i = \frac{1}{N_i} \sum_{k=1}^{\lfloor N/d \rfloor + 1} n_i^k \mu_i^k,$

一共会更新\lfloor N/d \rfloor + 1次,N是总实例个数。最后协方差计算公式:

$\Sigma_i = \frac{1}{N_i} \left( \sum_{k=1}^{\lfloor N/d \rfloor + 1} n_i^k \Sigma_i^k + \sum_{k=1}^{\lfloor N/d \rfloor + 1} n_i^k \left(\mu_i^k - \mu_i\right)\left(\mu_i^k - \mu_i\right)^T \right)$

这是来源于之前所有队列的数值

(2)Storage Space Comparison

        ①储存所有的协方差矩阵需要的空间:

$S_{\text{original}} = N \times p$

作者设计的更新需要的空间:

$S_{\text{new}} = d \times p + C \times (\lfloor N/d \rfloor + 1) \times p^2.$

空间比值:

$R = \frac{S_{\text{new}}}{S_{\text{original}}} = \frac{d \times p + C \times (\lfloor N/d \rfloor + 1) \times p}{N}.$

        ②在Pascal VOC和MS COCO数据集上的比值:

小于1就是好的,所以作者把队列长度设置到了50,000

2.5. Experiments

2.5.1. Datasets and Evaluation Metrics

        ①数据集:有1203个类别,训练集有100k图片和1.3M实例,测试集有19.8k图片的LVIS v1.0数据集,其中出现小于十张图片的是罕见类,11~100次的是普通类,大于100张的是常见类。COCO-LT数据集中有80个类别,被分为四个档次:出现小于20个图片,20~400,400~8000,8000以上。Pascal VOC有两个版本一共20个类别,作者在两个版本上一起训练和验证但是只在2007上测试

2.5.2. Implementation Details

        ①框架:MMDetection上的Faster R-CNN,主干是ResNet-50和ResNet-101,有FPN

        ②批量大小:16

        ③学习率:一开始是0.02,优化器是SGD,动量为0.9,权重衰减是24个轮次中的0.0001,有EFL和C2AM

jitter  n.振(跳,颤,晃)动;传真接受图像的不稳定移动;(信号的)不稳定性;(速度)偏差;歧离;起伏;散开;疏散;破碎  vt.抖动;[电子] 跳动;战战兢兢;使…惶恐不安

2.5.3. Main Results: Effectiveness of IGAM Loss

        ①在LVIS v1.0数据集上用ResNet 50在不同超参数s下的指标:

        ②在LVIS v1.0数据集上不同框架不同主干使用作者提出的损失的提升:

2.5.4. Comparison with State-of-the-Arts

        ①对比SOTA方法(最新才2023吗...不过对于纯损失来说也还好了):

2.5.5. Evaluation results on COCO-LT

        ①在COCO-LT数据集上使用不同损失的比较:

2.5.6. Evaluation results on Pascal VOC

        ①在Pascal VOC上使用不同损失在类别层面上的比较:

2.5.7. Effectiveness in Reducing Model Bias

        ①LVIS v1.0上不同损失得到的类别偏差:

2.6. Conclusion

        ~

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐