七个常见的让机器学习实验声名狼藉的错误机器学习是一个正??在改变我们世界的伟大工具。机器(尤其是深度学习)已被证明在许多伟大的应用中优于传统方法。从用于图像分类的Alex-Net到用于图像分割的U-Net,我们看到了计算机视觉和医学图像处理领域的巨大成功。然而,我看到机器学习方法每天都在失败。在许多这样的情况下,人们已经沉迷于机器学习的七大罪恶之一。虽然他们都很苛刻并得出错误的结论,但有些人比其他人更糟糕,甚至机器学习专家也会对他们的工作感到兴奋。其中许多缺点很难发现,即使对于其他专家来说也是如此,因为您需要深入研究代码和实验设置才能找出它们。特别是,如果您的结果看起来好得令人难以置信,您可能希望将这篇博文用作清单,以避免对您的工作得出错误的结论。只有当你绝对确定你没有遭受任何这些谬误时,你才应该继续向同事或公众报告结果。错误1:数据和模型滥用深度学习的初学者经常犯这种错误。在最常见的情况下,实验设计存在缺陷,例如将训练数据用作测试数据时。使用一个简单的分类器,例如最近的邻居,这会立即导致对大多数问题的100%识别。在更复杂、更深入的模型中,准确率可能不是100%,而是98-99%。因此,如果您在第一张照片中获得如此高的识别率,您应该始终仔细检查实验设置。但是,如果你使用新数据,你的模型将完全崩溃,甚至可能产生比随机猜测更糟糕的结果,即准确率低于1/K,其中K是类别数,例如二分类问题%小于50。在同一行中,您还可以通过增加参数数量轻松地过拟合模型,从而完全记住训练数据集。另一种变体是使用太小的训练集,这不能代表您的应用程序。所有这些模型都可能破坏新数据,即在实际应用场景中使用时。错误2:不公平的比较即使是机器学习专家也会犯这种错误。如果你想证明你的新方法比现有技术更好,那通常是可行的方法。研究论文尤其经常屈服于这种观点,以便让审稿人相信他们方法的优越性。在最简单的情况下,您可以从一些公共存储库下载模型,而不是针对已经为手头问题开发的模型,然后使用该模型进行微调或适当的超参数搜索,并调整所有参数进行测试以获得最佳性能数据。文学中有许多这种邪恶的例子。Isensee等人揭示了最近的一个例子。在他们的非Newnet论文中,他们证明了原始U-net在十个不同问题上的表现优于自2015年以来提出的方法的几乎所有改进。因此,您应该始终对最新模型执行相同数量的参数调整。错误3:微不足道的进步经过所有实验后,您最终会找到一个比最先进模型产生更好结果的模型。但即使在这一点上,您还没有完成。机器学习中的一切都是不精确的。此外,由于学习过程的概率性质,您的实验将受到许多随机因素的影响。为了解释这种随机性,您需要执行统计测试。这通常是通过使用不同的随机种子多次运行实验来执行的。这样,您就可以报告所有实验的平均性能和标准差。使用t检验等显着性检验,您现在可以确定观察到的改进仅与机会有关的概率。为使您的结果有意义,此概率应至少低于5%或1%。您不必为此成为专家统计学家。甚至有在线工具可以计算它们,例如用于识别率比较或相关性比较。如果您进行重复实验,请确保您还应用了Bonferroni校正,即将所需的显着性水平除以相同数据的实验重复次数。有关统计测试的更多详细信息,您应该查看我们的深度学习讲座视频。错误4:混杂因素和糟糕的数据数据质量是机器学习的最大陷阱之一。它可能会导致严重的偏见甚至种族主义人工智能。然而,问题不在于训练算法,而在于数据本身。例如,我们演示了使用两个不同麦克风的51位演讲者的降维录音。因为我们录制了相同的说话人,所以在适当的特征提取之后,他们实际上应该被投影到相同的位置。然而,我们可以观察到相同的记录形成了两个独立的集群。事实上,在录制现场的摄像头上,一个麦克风直接位于说话者的嘴部,而另一个麦克风位于约2.5米远的地方。通过使用来自两个不同供应商的两个麦克风,或者在医学成像的情况下,通过使用两个不同的扫描仪,已经可以产生类似的效果。如果您现在在扫描仪A上记录所有病理患者,在扫描仪B上记录所有对照对象,您的机器学习方法可能会学会区分扫描仪,而不是实际病理。您会对实验结果非常满意,并获得近乎完美的识别率。但是,您的模型在实践中将完全失败。所以要避免混杂因素和不良数据!罪过5:标签不当普罗泰戈拉已经知道:“在所有方面,衡量标准都是人。”这也适用于许多分类问题的标签或基本事实。我们训练机器学习模型来反映人工类别。在许多问题中,我们认为类在定义时就已经很清楚了。一旦我们查看了数据,它通常也包含模棱两可的情况,例如在ImageNet挑战赛中显示两个对象而不是一个对象的图像。如果我们处理情绪识别等复杂现象,那就更难了。在这里,我们意识到即使是人类也无法在许多现实生活观察中清楚地评估情绪。因此,为了获得正确的标签,我们需要询问多个评估者并获得标签分布。我们在上图中描述了这一点:红色曲线显示了清晰案例的尖峰分布,即所谓的原型。蓝色曲线表示歧义的广泛分布。在这里,不仅是机器,人类评分者也可能最终得出相互矛盾的解释。如果你只使用一个评估者来创建你的基本事实,你甚至不会意识到这个问题,所以它通常会引发关于标签噪声以及如何有效处理它的讨论。如果您可以获得真实的标签分布(当然这很昂贵),您甚至可以证明您可以通过消除歧义来显着提高系统性能,例如我们在行为情绪与生活中的现实情绪的情绪识别中看到的那样。但是,在您的实际应用程序中可能并非如此,因为您从未见过模棱两可的情况。因此,您应该更喜欢多个评估者而不是单个评估者。罪恶6:交叉验证混乱这与罪恶#1几乎是一样的罪恶,但它是伪装的,我已经看到即使是几乎提交的博士也会发生这种情况。纸。所以即使是专家也可能会喜欢它。典型的设置是第一步需要选择模型、架构或功能。因为您只有几个数据样本,所以您决定使用交叉验证来评估每个步骤。因此,您将数据分成N份,选择N-1份的特征/模型,并在第N份进行评估。这样重复N次后,就可以计算出平均性能并选择性能最好的特征。既然您知道最好的特征是什么,那么继续使用交叉验证为您的机器学习模型选择最佳参数。这似乎是正确的,对吧?不!这是有缺陷的,因为您已经看到了所有测试数据并在第一步中对所有观察结果进行了平均。这样,数据中的所有信息都传递到下一步,甚至可以从完全随机的数据中得到很好的结果。为避免这种情况,您需要遵循将第一步嵌套在第二个交叉验证循环中的嵌套过程。当然,这是非常昂贵的,并且会产生大量的实验运行。请注意,在这种情况下,您也可能偶然获得良好的结果,只是因为对相同数据进行了大量实验。因此,统计测试和Bonferroni校正同样是强制性的(参见SIN#3)。我通常尽量避免大型交叉验证实验并尝试获取更多数据,以便您可以进行训练/验证/测试拆分。错误7:过度解释结果除了前面所有的错误,我认为在当前的炒作阶段,我们在机器学习中经常犯的最大错误是我们过度解释和夸大了我们的结果。当然,每个人都对通过机器学习创建的成功解决方案感到满意,您有权为此感到自豪。但是,您应该避免将未见数据或状态的结果外推为通常已经解决了一个问题,因为您已经使用相同的方法解决了两个不同的问题。同样,由于我们在原罪#5中所做的观察,超人表现的说法也受到质疑。您将如何胜过标签的来源?当然,你可以在疲劳和注意力方面打败人类,但在人工类中总体表现优于人类?你要小心这个声明。每项主张都应以事实为依据。您可以根据讨论中清楚显示的推测假设该方法的普遍适用性,但要真正说明这一点,您必须提供实验或理论证据。现在,很难让您的方法获得应有的知名度,大张旗鼓肯定有助于推广您的方法。尽管如此,我还是建议你坚持到底并坚持证据。否则,我们可能很快就会遇到下一个AI寒冬,以及前些年我们普遍持怀疑态度的人工智能。让我们在当前周期中避免这种情况,并坚持我们真正有能力实现的目标。当然,你们中的大多数人已经知道这些陷阱。但是,您可能希望不时查看机器学习的七大罪,只是为了确保您仍然脚踏实地,不要被它们冲昏头脑:罪1:数据和模型滥用-分别训练和测试,检查过拟合!Sin2Sin3:微不足道的改进-进行显着性检验!错误4:混杂因素和不良数据-检查您的数据和采集!错误#5:标签不当——使用多个评分者!错误#6:交叉验证混乱——避免太多的交叉验证!错误#7:对结果的过度解读——坚持证据!
