很少讨论用于声明机器学习性能的指标。由于在这个问题上似乎没有明确、广泛的共识,我认为提供一个我一直提倡并尽可能遵循的标准可能会很有趣。它源于这个简单的前提,这是我的科学老师从中学起就灌输给我的:科学报告的一般规则是你写下的每个数字都应该是真实的,因为真实的定义是什么。让我们来看看这对测试性能等统计数据意味着什么。当您在科学出版物中写下以下陈述时:测试准确率为52.34%。你所表达的是,据你所知,你的模型在从测试分布中提取的看不见的数据上取得成功的概率在0.52335和0.52345之间。这是一个非常有力的声明。考虑您的测试集由从正确的测试分布中抽取的N个样本IID组成。成功率可以表示为一个二项式变量,其平均概率p由样本均值估计:p?s/N,其标准差为:σ=√p(1-p)。其中当p=0.5时,其上限为0.5。在正态近似下,估计量的标准差为:δ=σ/√N。这个准确度估计的误差δ是这样的,在最坏的情况下,大约有50%的准确度:换句话说,为了保证上面报告的例子的52.34%准确度,你的测试集应该至少是大小30M样品订单!这种粗略的分析很容易转化为除准确性之外的任何可计算量,但不能转化为可能性或困惑度等连续数字。以下是一些常见机器学习数据集的描述。在ImageNet上可以合理地报告多少位精度?15万张图像的测试集的准确度约为80%:√(0.8*0.2/150000)=0.103%,这意味着您几乎可以报告XX.X%的数字,而实际上每个人都这样做。至于MNIST,准确率为99%:√(0.99*0.01/10000)=0.099%噗,报XX.X%就OK了!然而,最值得注意的是,在大多数情况下,性能数据并不是单独呈现的,而是用于在同一测试集上比较多种方法。在这种情况下,实验之间的抽样方差相互抵消,即使样本量较小,它们之间的准确性差异也可能具有统计显着性。估计图形方差的一种简单方法是执行自举重采样。更严格,通常更严格的测试包括执行配对差异测试或更一般的方差分析。超出其固有精度的报告数字可能极具吸引力,例如在与基线比较的情况下,或者当人们认为测试集是常数而不是从测试分布中抽取的样本时。性能数字往往更重要。在生产中部署模型时,这可能会令人惊讶,固定测试集??假设突然消失,同时还有一些不相关的改进。更一般地说,这种做法会直接导致测试集过度拟合。那么,在我们的领域中,数字为“真”意味着什么?好吧,这真的很复杂。工程师很容易争辩说不应报告的尺寸超出公差。或者对于物理学家来说,一个物理量不应该超过测量误差。对于机器学习从业者来说,我们不仅要应对测试集的采样不确定性,还要应对独立训练运行、不同初始化和训练数据洗牌下的模型不确定性。按照这个标准,机器学习很难确定哪些数字是“真实的”。解决方案当然是尽可能报告其置信区间。置信区间是报告不确定性的一种更精细的方式,它考虑了所有随机性来源以及除简单方差之外的显着性检验。它们的存在还向您的读者发出信号,表明您已经考虑了所报告内容的含义,而不仅仅是您的代码获得的数字。以置信区间表示的数字可能会超出其标称精度进行报告,但需要注意的是,您现在必须考虑使用多少位数来报告不确定性,如本博文中所述。一路乌龟。更少的数字意味着更少的混乱和更多的科学。避免报告超出统计显着性的数值结果,除非您为它们提供明确的置信区间。这被认为是科学上的不良做法,尤其是在不进行成对显着性检验的情况下用于争论一个数字优于另一个数字时。仅此一项就经常导致论文被拒绝。一个好习惯是始终对报告大量数字的准确性持怀疑态度。还记得统计显着性所需的最坏情况样本量的3000万、300,000和300,000的经验法则限制作为“嗅觉测试”吗?它将使您避免追逐统计“幽灵”。本文转载自雷锋网。如需转载,请在雷锋网官网申请授权。
