作者丨堪村西蒙@知乎(已授权)
来源丨https://zhuanlan.zhihu.com/p/328686799
编辑丨极市平台
1. 概述
为了评估一个模型在计算机视觉任务(例如目标识别)上的表现,我们通常需要一个有标注且训练不可见的测试集合。大多数情况下,我们都默认这个带标注测试集合的存在(比如各种常用的数据benchmarks)。然而,在许多实际场景中,数据的标注往往很难获取(成本、标注难度等等),进而使得我们难以快速了解模型的性能。那么,测试集没有标签,我们可以拿来测试模型吗?
我们重点研究自动模型评估(AutoEval)这一重要的且尚未开发的问题。具体来说,给定带标签的训练集和分类器,我们需要估计出分类器在未标记的测试数据集上的分类准确性。围绕这一问题,我们从数据分布差异角度提出解决方案。方法的出发点是:测试集合和训练集合数据分布差异越大,那么分类器在测试集合上的准确率就会越低。为此,我们采用回归模型来估计分类器的性能。回归器的输入为一个测试集与数据分布差异相关的特征(如均值和协方差),输出为分类器在其上的准确率。我们发现回归器可以较为准确地预测分类器在不同测试集合上的表现,进而能很好地帮助我们理解分类器在不同测试场景下的性能表型。
Are Labels Necessary for Classifier Accuracy Evaluation?
https://arxiv.org/abs/2007.02915
2. 自动模型评估
该问题的主旨是了解未知环境下的分类器性能。给一个在训练集上训练好的分类器,我们想去看一看这个分类器在某一个测试场景下的性能表现。
现在我们考虑两个评估设置(如下图所示):
![](https://i-blog.csdnimg.cn/blog_migrate/ffc5d4b4cfee328bbd3327c221a0091f.png)
(a) 测试场景中有标注:我们可以通过在一个有标注的测试数据集上对其进行评估,从而获得其性能的无偏估计;
(b) 测试场景标注难以获取:在许多实际的部署方案中,我们只能得到未标记的图像,因此无法直接根据图像的标注来评估分类器。这是实际部署中我们都会遇到的情形。在没有标注的情形下知道分类器的好坏是一个很重要的问题,例如知道分类器在一个场景下是否可靠;分类器是否需要调整;分类器在哪些场景下会比较容易出错。
3. 方法
3.1 出发点
域适应任务的基本出发点是分布偏移会影响分类器准确性。基于此我们可以从数据分布差异出发,来推测模型的性能表现。具体来说,我们研究了分类器在不同数据分布下的准确率,发现可以两者(数据分布和准确率)在统计上是负相关的。
3.2 元数据集
为了观测一个分类器在不同数据分布下的表现,我们需要很多数据集合。为此,我们构造一个元数据集合(meta dataset, 数据集组成的数据集)。元数据集包含很多样本数据集(sample set),每一个样本集具备不同的数据分布且有很多的图像。要收拾很多样本集(例如500个集合)是一件比较困难的事情,为此我们采用合成数据的方式来获取多个样本集。
给定一个和训练集合来自于同一个数据分布的种子集(seed set),我们对其图像使用图像转换(例如旋转,自动对比度,平移)和背景更改。使用不同的变换和背景,我们可以生成许多不同的样本集。
如下图所示,给定一个种子集,我们可以变幻出15个各不相同的样本集。值得注意的是,每一个样本集和种子集共享相同的前景对象,即图像的语义目标没有被修改,依然具备原来的标签。也就是说,每一个生成的样本集合都是带图像标记的。
![](https://i-blog.csdnimg.cn/blog_migrate/3089988a6bf8ab79f8aed5f4449548a3.png)
3.3 相关性分析
给定一个分类器(在训练集D_ori上训练)和一个元数据集(基于种子集seed set生成)。我们做两个事情:(1)测量训练集和每一个样本集合的数据分布差异:通过Frechet distance(FD)进行度量。FD衡量个数据集合之间一介统计量(均值)和二阶统计量(协方差)的差异;(2)样本数据集是有标注的,我们就可以直接得到分类器在每一个样本集上的准确率。
做完上述两个事情之后,我们画一下它们之间的关系。具体来说,我们训练三个不一样的分类器,对每一个分类器做上述两件事情,并画出它们的统计关系。我们观察到分类器准确性(Accuracy)与分布偏移之间(FD)存在很强的负线性相关性。那么,根据最基本的统计学知识,如果两个标量是相关的,那么我们可以通过一个标量(数据分布差异)来推测另外一个标量(分类器的准确率)。
![](https://i-blog.csdnimg.cn/blog_migrate/ddcec59097b0a7df89fb51686ebf6a91.png)
3.4 两个回归模型
有了上述相关性,我们可以根据测试集与训练集之间的分布偏移来预测分类器的准确性。在本文中,我们提出了两种回归方法:
(1)线性回归:对于来自元数据集的每个样本集,我们计算分类器准确性及其在训练集D_ori之间的分布偏移(FD)。然后,我们可以学习一个简单的线性回归,该线性回归将FD作为输入并返回估计的精度。
(2)网络回归:我们也很直接地从样本集来回归分类器的性能。具体来说,一个数据集合对应一个性能,我们就可以直接学习一个映射网络。网络的输入是一个数据集合的统计特征,输出是该数据集上的统计特征。为此我们采用与分布相关的统计数据来表示每个样本集。我们使用其一阶和二阶特征统计量,即均值向量和协方差矩阵。
我们建立一个小型的全连接网络以学习映射功能:该网络使用样本集的均值矢量和协方差矩阵作为输入并输出分类器的准确性。
(这里说一下个人理解:假设我们有1000个样本集,那么就有1000个成对的回归训练样本【样本集,准确率】,就可以很直接的学习一个映射。问题在于我们的样本集是有很多图像表示的,怎么用一个特征代表一个数据集合呢?我们根据相关性分析知道数据分布差异和准确率有强相关,那么我们就可以用与数据分布差异有关的统计特征来刻画一个数据集合。本文用了数据集的均值和协方差来代表这个数据集合。) 两个回归方法很直接很简单,这是因为它们是基于统计上的相关性分析来提出的。两者用很直接相关的统计特性,因此简单有效,不需要太多复杂的东西。
3.5 实验结果
我们在元数据集上学习了上述两种回归模型,我们将它们运用到位置的测试集合上(不是生成的样本集合)。比如,我们在COCO的训练集上得到了一个分类器,并基于COCO 交叉验证集合生成一个元数据集合,就可以训练出两个回归模型。我们将回归模型运用到其他的三个真实世界测试集(Caltech,Pascal和ImageNet),目的是估计COCO分类器在这三个数据集合上的性能。
实验结果表明,我们的方法做出了比较不错且合理预测(RMSE小于4%)。这是因为我们的元数据集包含许多不同的样本集,因此回归方法可以“看到”各种数据分布情况,知道分类器在不同测试情形下的准确率表现。在文中,我们来提供实验以验证回归的鲁棒性和元数据集的关键因素。
![](https://i-blog.csdnimg.cn/blog_migrate/c44b40ee788874daf5a2ae6d0f112714.png)
有关更多详细信息,请查看我们的论文(https://arxiv.org/abs/2007.02915)。
Deng, Weijian, and Liang Zheng. "Are Labels Necessary for Classifier Accuracy Evaluation?." arXiv preprint arXiv:2007.02915 (2020).
Australian National University
Correspondence to {firstname.lastname}@anu.edu.au
觉得有用麻烦给个在看啦~