在计算机视觉领域,偏见是一个不可忽视的问题。它不仅关系到技术层面,还涉及到社会伦理和商业利益。例如,一个错误的贷款申请模型可能会给企业带来损失,无论这种错误是出于伦理还是技术原因。卡内基梅隆大学的客座讲师就如何防止算法偏见进行了深入讨论。
偏见在机器学习中的定义是模型在训练数据集上的平均误差。当存在偏见时,某些因素可能会被赋予过多或过少的权重,导致预测不够准确,模型性能下降。另一个需要关注的衡量标准是方差,它描述了模型输出在面对新数据时的变化程度。通过分析测试误差,可以观察到方差。高方差通常表现为训练误差接近零而测试误差很高,也就是过拟合现象。
在理想情况下,模型的训练误差和测试误差都应保持低水平,即使在不同的训练运行中也是如此。那么,如何减轻模型中的偏见呢?关键在于采取数据优先的心态。作为机器学习和计算机视觉的实践者,必须记住,无论模型多么复杂,其性能最终都取决于拥有全面且具有代表性的数据集。
接下来,将讨论一些实用的技巧,帮助减少模型中的偏见,并确保数据集能够很好地服务于模型。首先,收集大量具有代表性的 数据。使用小型数据集训练模型会导致高方差,使得过拟合难以避免。这是因为可用的观测值有限,而预测变量的数量却很多。
一个足够大且具有代表性的数据集将有助于模型有效地泛化。具有代表性的 数据意味着训练数据与模型部署时收集的数据具有相似的特征。例如,假设正在检测狗,模型将在室内诊所和室外狗公园部署。在这种情况下,希望拥有代表这两种环境的数据,包括每种环境中发现的所有品种的狗。
不需要数千张狗的图片,如果模型只在诊所和狗公园部署。相反,最好优化在诊所和狗公园拍摄更多照片——不同品种的狗,不同大小的狗,诊所和公园的不同部分——这样模型就有更多关于在模型将被部署的区域检测狗的信息。
通过主动学习改进数据。主动学习通过一系列有意识的步骤将数据传递给模型,从而加速模型提高性能的速率。假设在狗品种数据集中没有足够的柯基犬图片,因此模型在面对柯基犬时表现不佳。通过主动学习,优先将柯基犬数据纳入训练集,重新训练和重新部署。通过这样做,模型正在从最有可能欺骗它的数据中学习。实际上,主动学习的核心在于名称:始终努力帮助模型学习,当发现它的优势和劣势时。
模型是根据它们创建时的变量和参数进行优化的。随着周围世界的变化,原始创建的模型将处于新的环境中。通过主动学习,可以将其暴露于新事物中,重新训练和重新部署。Roboflow有一个上传API,可以使用它从应用程序中程序化地收集和发送现实世界的图像,直接用于改进模型。
当在Roboflow上完成模型的训练后,将获得训练结果,以及查看更多细节和生成可视化的能力。这些可视化显示了模型在验证和测试数据集中哪些图像的表现不如真实情况。这些信息可以帮助验证提议的标签,并了解是否需要额外或不同类型的数据,例如在不同的环境 中,以便重新训练。还可以发现诸如缺失或错误标记的数据等问题。
在测试集中将模型预测与真实情况相比较。运行健康检查。Roboflow上的健康检查功能显示了类别平衡或不平衡的测量。继续以狗为例,这可以让知道否拥有太少的柯基犬,需要进行一些主动学习来提高对柯基犬数据的表现。空图像的数量也是有帮助的,因为它们帮助模型识别正在寻找的对象不出现时。
从数据集中移除重复图像。数据集中存在重复图像会引入偏见,因为它为模型提供了学习特定于重复项的模式的机会。重复图像获得了过多的训练时间。假设有10张柯基犬的图片,但其中五张是相同的。模型可能能够识别一些柯基犬,但不是全部。这可能是因为模型正在学习更多关于在数据集中多次出现的柯基犬的具体特征。模型没有足够泛化到柯基犬;相反,它正在学习关于特定照片的信息。
确保重复项不会出现在所有训练、验证和测试集中。需要确保重复项不会进入不同的训练、验证、测试拆分,因为它们的存在也会使评估指标产生偏见。让回到柯基犬的例子。如果验证和测试拆分中有相同的柯基犬照片,模型可能会报告比在生产中与其他柯基犬一起使用时更好的性能。验证和测试结果可能因正确识别图像而偏斜,因为相同的图像出现在训练中。记住:在训练之前移除重复项。
幸运的是,Roboflow在上传过程中自动移除重复项,所以如果使用Roboflow上传图像,就不必担心这部分缓解措施。