在机器学习领域,只有经历过一些错误,我们才能变得更加专业。数据科学家 Archy de Berker 在本文中分享了自己及其同行在机器学习探索中遇到的一些常见问题。他的目标是帮助读者了解一些只有深入了解机器学习领域才能发现的有趣错误。
本文并非面向初学者,如果你希望理解其中的内容,建议在 PyTorch 或 TensorFlow 上进行更多实践,以熟悉破坏模型的过程。
本文主要关注的是绿色分布的错误,但也涉及到紫色分布和黄色分布的部分内容。
Berker 将机器学习中出现的各种错误分为三类,按照严重程度从低到高排列。
这类错误包括命名和缓存失效问题,其中最常见的是形状错误,通常是由于矩阵相乘时尺寸不匹配导致的。虽然这类错误很容易识别和修复,但它们会反复出现,因此需要持续注意。
这类错误会导致模型结果不准确。例如,如果在未进行超参数调优的情况下,增加模型中的特征数量,可能会导致性能下降。错误的模型结果会随着时间推移逐渐恶化,因此早期发现问题至关重要。
这类错误会让用户高估模型的性能。这种错误通常很难发现,因为人们往往更愿意相信看似完美的结果。然而,实际上可能是由于过拟合或其他原因导致的。确认偏差是这种错误的主要原因之一。
机器学习过程可以分为三个阶段:获取数据、将数据输入模型、通过目标评估模型。
接下来我们将讨论每个阶段中一些常见的错误。
机器学习的核心是不断优化损失函数。然而,损失函数并不是最终的优化目标,它只是一个近似值。例如,在分类任务中,通过交叉熵损失函数优化训练集或验证集,但在实际应用中,我们更依赖测试集上的表现或 F1、AUC 等评价指标。在实际优化过程中,如果损失函数已经不能代表模型的真实表现,那么问题就严重了。
一些导致模型更差的做法包括:
不同的任务使用不同的损失函数,评估模型性能时通常会结合多个评价指标。例如,机器翻译首选 BLEU 作为评价目标,而自动文摘则采用 ROUGE。评价指标比损失函数更容易理解,因此建议尽可能多地记录日志,以确保模型具有良好的泛化能力。
目前很多课程和文章都侧重于建模,但实际上,作为机器学习从业者,大部分时间都在处理数据和目标,而不是研究创新的算法。
模型错误类型包括:
在建模之前,应该已经熟悉数据。数据探查可以帮助识别一些问题,例如数据不平衡或数据偏见。
有效加载和预处理数据是机器学习工程中较困难的部分之一,需要在效率和透明度之间权衡。
总结机器学习中应遵循的五条指导原则:
推荐阅读:Andrej Karpathy 的博客《A Recipe for Training Neural Networks》,深入探讨了机器学习的常见错误。