Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Dataset Bias

数据集偏差是训练数据与模型实际服务环境不匹配的现象,会导致准确率不均。介绍主要类型、示例,以及发现和修正偏差的方法。

数据集偏差是指用于训练机器学习模型的数据,与模型将要服务的人群、地点或条件之间存在系统性差异。模型会学习其训练数据中的所有规律,包括数据收集方式造成的偶然特征,因此有偏的数据集会造就这样一种模型:在经常见到的情形中表现良好,在其他情形中表现不佳。由于测试数据通常来自同一批数据,这个问题往往会一直隐藏到部署阶段。Antonio Torralba 和 Alexei Efros 在 2011 年通过一个名为“猜猜这是哪个数据集”的游戏阐明了这一点:一个简单分类器就能以远高于随机猜测的准确度判断图片来自 12 个热门图像数据集中的哪一个,因为每个数据集都有自己的鲜明风格。

数据集偏差的类型#

  • 选择偏差: 数据来自容易获取的来源,而不是目标人群。网络照片偏向富裕的西方环境;在商业物体识别服务中,对月收入低于 50 美元的家庭用品进行识别时,准确率比对月收入超过 3,500 美元的家庭用品低约 10%;在美国拍摄的物品与在索马里或布基纳法索拍摄的物品之间,准确率相差 15 到 20 个百分点。
  • 代表性偏差: 某些群体或类别出现得太少,模型无法学会识别它们。Gender Shades审计发现,商业性别分类器对深肤色女性的误分类率最高达 34.7%,而对浅肤色男性的误分类率最高为 0.8%。在目标检测中,稀有类别组成的长尾是类别层面的同一问题。
  • 测量与采集偏差: 数据与部署环境中的摄像头、传感器、采集地点和光照各不相同。用于胸部 X 光肺炎检测的深度学习模型还可以识别图像来自哪家医院;由于各医院的肺炎发生率不同,这种信号虚增了准确率,并且无法很好地泛化到新地点。这是一种捷径学习。
  • 标签偏差: 数据标注会受到标注人员判断、不一致的准则或历史决策的影响,而模型会将这些模式视为真实依据。
  • 时间偏差: 随着时尚、产品和车辆发生变化,某一时期收集的数据会逐渐与现实脱节。

数据集偏差的表现形式#

主要在晴朗干燥气候下训练的自动驾驶感知模型,在雪天、雨天和黑暗环境中检测行人的可靠性较低;为汽车领域 AI构建自动驾驶汽车的团队会收集夜间和恶劣天气数据来弥补这一差距。在医学图像分析中,主要使用浅肤色人群数据训练的皮肤病学模型在深肤色人群上的表现较差,而人脸识别系统也呈现出 Gender Shades 测得的人口群体差距。在每种情况下,由于多数群体主导平均值,整体准确率看起来都很高。

下面的代码片段使用 scikit-learn 具体展示了这一机制。B 组的规律与 A 组不同;同一个随机森林会在 1,000 个样本上训练两次,第一次 B 组占数据的 2%,第二次则对两组进行平衡:

import numpy as np
from sklearn.ensemble import RandomForestClassifier

rng = np.random.default_rng(0)


def sample(n, group):
    """Draw n points from group A (label set by feature 0) or group B (label set by feature 1)."""
    center = 0.0 if group == "A" else 3.0
    X = rng.normal(center, 1.0, size=(n, 2))
    return X, X[:, 0 if group == "A" else 1] > center


for n_a, n_b in [(980, 20), (500, 500)]:  # skewed, then balanced training sets of the same size
    Xa, ya = sample(n_a, "A")
    Xb, yb = sample(n_b, "B")
    model = RandomForestClassifier(random_state=0).fit(np.vstack([Xa, Xb]), np.concatenate([ya, yb]))
    acc = {g: model.score(*sample(2000, g)) for g in "AB"}  # held-out accuracy per group
    print(f"train A:B = {n_a}:{n_b} -> accuracy on A {acc['A']:.3f}, on B {acc['B']:.3f}")

在有偏的数据集上训练时,模型对 A 组的预测完美无误(1.000),对 B 组的预测正确率仅为 76.8%。对相同的 1,000 个样本进行平衡后,B 组的正确率提升至 98.3%,A 组则略降至 97.2%。如果测试集像有偏的训练数据那样按 98:2 混合,第一个模型的总体得分约为 99.5%,完全掩盖了组间差距。

  • 算法偏差: 由模型设计、目标函数或部署方式引入的偏斜,例如偏向多数类别的损失函数。数据集偏差是算法偏差的一个主要成因,而且两者往往会相互加剧。
  • AI 中的偏差: AI 系统中系统性不公平现象的统称,与AI 公平性相对。NIST 的识别和管理 AI 偏差标准将偏差来源分为系统性、人的因素以及统计或计算因素;缺乏代表性的数据集属于最后一类。
  • 数据漂移: 部署后输入分布发生变化。数据集偏差从数据收集之初就已存在,而漂移则会在之后逐渐拉开差距,即使原始数据具有代表性也不例外。

发现并减少数据集偏差#

检测视觉数据集中的偏差要从数据文档和分组评估入手。数据集说明书建议记录数据由谁、如何以及为何收集,以便用户判断数据代表了哪些人群。评估应按群体、地点、摄像头或条件报告指标,并为每个切片提供混淆矩阵,而不是只报告一个平均值。查看数据本身也有帮助:在 Ultralytics Platform中,每个数据集的类别选项卡会绘制各类别的标注数量,并提供对数刻度开关以处理类别不平衡;聚类面板会按类别或数据划分为图像嵌入着色,因此训练前就能发现覆盖不足。

针对原因采取相应措施即可修正偏差。针对薄弱切片收集目标数据可以直接解决问题,主动学习则有助于选择要标注的新图像。数据增强可以改变光照、方向和尺度,合成数据则可以补充夜景或罕见缺陷等稀有情况。对代表性不足的样本重新加权或过采样,或使用分布鲁棒优化针对表现最差的群体进行优化,都能改变训练过程所奖励的内容。部署后,按切片细分的模型监控可以发现条件变化时出现的差距。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来