【深度学习:集中偏差】减少计算机视觉数据集中偏差的 5 种方法

news2024/12/28 20:57:30

在这里插入图片描述

【深度学习:集中偏差】减少计算机视觉数据集中偏差的 5 种方法

    • 有偏差的计算机视觉数据集会导致哪些问题?
    • 如何减少计算机视觉数据集中偏差的示例
      • 观察并监控带注释样本的类别分布
      • 确保数据集代表模型适用的人群
      • 明确定义对象分类、标记和注释的流程
      • 为标签质量保证建立共识基准
      • 定期检查模型的性能

尽管计算机视觉领域有无数的创新,但“垃圾进,垃圾出”的概念仍然是数据科学领域内任何事物的关键原则。与此特别相关的一个领域是用于训练机器学习模型的数据集中的偏差。

如果您的数据集在某种程度上存在偏差,则会对计算机视觉模型的结果产生负面影响,无论是使用训练数据集还是已进入生产阶段。

机器学习模型中有一些众所周知的偏差例子。例如,亚马逊的招聘算法被发现存在性别偏见,偏袒男性而不是女性。美国各州法官使用的一种风险评估量刑算法,即 COMPAS(替代制裁的惩教罪犯管理分析),被发现在因暴力犯罪被判刑时对黑人被告存在偏见。微软在 2016 年的一天试验了一款名为 Tay 的 Twitter 聊天机器人,该算法生成了数千条充满种族主义、仇恨言论、反犹太主义、性别歧视和厌女症的推文。

所有这些事情有什么共同点,这对于尝试在基于图像或视频的数据集上使用人工智能模型的公司意味着什么?

算法本身不能有偏见。另一方面,无论有意还是无意,人类都是如此。偏爱某件事、概念或人口统计的个人偏见可能会无意中影响算法产生的结果。不仅如此,如果使用有偏差的数据集来训练这些算法,那么结果将偏向或反对特定的结果和结果。

在本文中,我们概述了由有偏差的计算机视觉数据集引起的问题以及减少这些数据集中的偏差的五种方法。

有偏差的计算机视觉数据集会导致哪些问题?

偏差几乎可以在任何时候进入数据集或计算机视觉模型。可以肯定地假设几乎所有数据集都存在偏见,即使是那些不涉及人的数据集。基于图像或视频的数据集可能会偏向或反对过多或过少的特定对象示例,例如汽车、卡车、鸟类、猫或狗。困难在于,知道如何识别偏见,然后了解如何有效地抵消它。

偏差可能会在项目的收集、聚合、模型选择和最终用户解释阶段无意中进入数据集。这种偏见可能源于人类的偏见和成见,源于那些参与选择数据集、生成注释和标签的人,或者源于对数据集的无意简化。

在基于图像或视频的计算机视觉数据集中,通常会无意中出现不同类型的偏差。最常见的三种如下:

样本类数量不均匀: 当数据集中存在这种偏差时⏤特别是在训练阶段⏤模型会多次暴露于不同类别的对象。因此,合理的假设是模型可能会赋予更频繁出现的样本更多的权重,而代表性不足的样本可能表现不佳。例如,培训项目的目的可能是向计算机视觉模型展示如何识别特定品牌和型号的汽车。如果您没有展示足够多的非该品牌和型号的其他汽车的示例,那么它的性能就不会达到您想要的效果。

理想情况下,为了减少这种类型的偏差,我们希望模型看到不同类别的相同数量的样本,特别是在尝试识别正面和负面结果时。更重要的是,当模型训练旨在支持医学诊断时,CV 模型会接触到足够范围的样本类别。

选择偏差: 收集数据集时,可能是从人口的子集(例如特定种族群体)中抽样的,或者在许多情况下,数据集无意中排除了各个种族群体。或者数据集中包含太多男性或女性。

在任何情况下,数据集都不会完全代表总体人口,并且会有意或无意地带有选择偏差。当模型在此类数据集上进行训练时,它们在生产阶段的泛化性能很差,产生有偏差的结果。

类别偏差: 注释数据集时,注释器甚至自动注释工具有时可能会将一种标签类别与另一种标签类别混淆。例如,狗可以被标记为狐狸,或者猫可以被标记为老虎。

在这种情况下,由于类别标签的混乱和偏差,计算机视觉模型的表现将低于预期。

其中任何一个都可能导致数据集不平衡,从而产生不平衡或有偏差的结果。当然,还有其他例子,例如根据国家/地区应用错误的标签。例如,在美国使用“purse”一词,意思是女性的手提包,而在英国,“purse”是女性钱包的名称。

算法偏差也是可能的,这可能是由多种因素引起的。例如,计算机视觉模型在错误的上下文或环境中使用,例如为医学成像数据集设计的模型被用来识别天气模式或潮汐侵蚀。人类偏见自然也会影响计算机视觉模型。

如何减少计算机视觉数据集中偏差的示例

值得庆幸的是,有多种方法可以减少计算机视觉数据集中的偏差,例如:

  1. 观察注释过程以测量类别不平衡,使用质量控制过程来限制任何潜在的类别或选择偏差。

  2. 在获取数据集时,图像或视频必须尽可能来自不同的来源,以覆盖尽可能广泛的对象和/或人员,包括适用的性别和种族群体。

  3. 注释程序应该明确定义,当数据集中存在矛盾的例子或边缘/边缘情况时,应该达成共识。

对于每个训练和生产就绪的数据集,目标应该是收集大量图像或视频,这些图像或视频代表您要解决的问题的类和类别,并正确注释它们。

现在,这里有五种更详细地减少偏见的方法:

观察并监控带注释样本的类别分布

在注释过程中,我们应该观察数据集中的类分布。如果数据集中存在代表性不足的样本组,我们可以使用主动学习模式提高未标记样本中代表性不足的类的优先级。例如,我们可以在数据集中找到与少数类别相似的图像,并且可以增加它们在注释队列中的顺序。

借助 Encord Active,您可以更轻松地在数据集中找到相似的图像或对象,并优先标记这些图像或视频,以减少数据中的整体偏差。

在这里插入图片描述

确保数据集代表模型适用的人群

在收集和整理任何数据集时,我们应该小心创建一个准确代表总体的数据集(例如,“总体”是指模型在生产阶段将处理的任何目标群体)。

例如,假设一个医学成像计算机视觉项目正在尝试收集胸部 X 射线图像来检测患者的 COVID-19。那么,这些图像应该来自不同的机构和广泛的国家。否则,当特定群体没有足够广泛的样本量时,我们就会面临模型出现偏差的风险。

明确定义对象分类、标记和注释的流程

在开始任何注释工作之前,应准备一个程序/策略。

在此政策中,应明确定义类别和标签。如果存在令人困惑的类别,则应详细解释它们的差异,甚至应共享每个类别的样本图像。如果存在非常接近的同一类型的对象,则应明确定义是否将它们单独标记或是否单个注释将覆盖两者。如果存在被遮挡的物体,它们的部分是单独标记还是整体标记?所有这些都应该在应用任何注释和标签之前定义。

在这里插入图片描述

为标签质量保证建立共识基准

当存在特定领域的任务时,例如在医疗保健领域,图像或视频应该由不同的专家进行注释,以避免根据自己的经验产生偏见。例如,一位医生可能会根据自己的经验和性格更倾向于将肿瘤归类为恶性,而其他医生可能会采取相反的做法。 Encord Annotate 拥有共识基准和质量保证等工具,可以减少此类偏差对模型产生负面影响的可能性。

定期检查模型的性能

您必须定期检查模型的性能。通过检查模型的性能,您可以了解模型在哪些样本/条件下失败或表现良好。这样您就知道应该优先进行标签工作的样品。 Encord Active 提供了一个用户界面 (UI),以便您可以轻松地可视化模型的性能。

借助 Encord Active,用户可以定义指标来评估其模型针对这些指标和目标的表现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1406249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【书生·浦语】大模型实战营——第六课笔记

视频链接:https://www.bilibili.com/video/BV1Gg4y1U7uc/?vd_source5d94ee72ede352cb2dfc19e4694f7622 教程文档:https://github.com/InternLM/tutorial/blob/main/opencompass/opencompass_tutorial.md 仓库:https://github.com/open-compa…

(学习日记)2024.01.23:结构体、位操作和枚举类型

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

【JavaEE Spring】MyBatis 操作数据库 - 进阶

MyBatis 操作数据库 - 进阶 1. 动态SQL1.1 \<if>标签1.2 \<trim>标签1.3 \<where>标签1.4 \<set>标签1.5 \<foreach>标签1.6 \<include>标签 1. 动态SQL 动态 SQL 是Mybatis的强⼤特性之⼀&#xff0c;能够完成不同条件下不同的 sql 拼接…

[完美解决]Vue/React项目运行时出现this[kHandle] = new _Hash(algorithm, xofLen)

问题出现的原因 出现这个问题是node.js 的版本问题&#xff0c;因为 node.js V17开始版本中发布的是OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制&#xff0c;可能会对生态系统造成一些影响。故此以前的项目在使用 nodejs V17以上版本后会报错。而github项目…

【6】密评中对服务端采用“挑战-响应”机制进行身份鉴别的验证

对服务端采用“挑战-响应”机制进行身份鉴别的验证 1、提取出服务端的签名值 签名值&#xff08;hex&#xff09;&#xff1a; 3045022100e4795b5a947526f8e7cbd0edd571ea8749e0efd24323799346ea2c740c006c5a0220026189e51c19d20d40a82606d0ed72cb9530a189bbb94c09e4559d7d8f…

[C++]使用yolov8的onnx模型仅用opencv和bytetrack实现目标追踪

【官方框架地址】 yolov8: https://github.com/ultralytics/ultralytics bytetrack: https://github.com/ifzhang/ByteTrack 【算法介绍】 随着人工智能技术的不断发展&#xff0c;目标追踪已成为计算机视觉领域的重要研究方向。Yolov8和ByTetrack作为当前先进的算法&…

【GitHub项目推荐--Git 教程】【转载】

本开源项目是 Will 保哥在 2013 第 6 界 IT 邦帮忙铁人赛年度大奖的得奖著作。这是一个 Git 教程&#xff0c;这个开源教程用 30 天的时间&#xff0c;带领大家详细了解使用 Git 。 重点介绍了 Git 的一些常用操作&#xff0c;以及日常工作中实际应用场景讲解&#xff0c;下图…

java 开源中文的繁简体转换工具 opencc4j

Opencc4j Opencc4j 支持中文繁简体转换&#xff0c;考虑到词组级别。 Features 特点 严格区分「一简对多繁」和「一简对多异」。 完全兼容异体字&#xff0c;可以实现动态替换。 严格审校一简对多繁词条&#xff0c;原则为「能分则不合」。 词库和函数库完全分离&#xff…

设计模式: 装饰模式

文章目录 一、什么是装饰模式二、装饰模式的结构三、使用场景案例分析 一、什么是装饰模式 在不改变对象原有行为的基础上&#xff0c;动态的来为该对象绑定新的行为。 二、装饰模式的结构 装饰模式结构中主要包含如下角色&#xff1a; Component&#xff08;抽象部件&…

一带一路暨金砖国家技能发展国际联盟大数据和人工智能专业委员会名单

四川城市职业学院和陈老师在序号&#xff1a;158&#xff0c;300 一带一路暨金砖国家技能发展国际联盟大数据和人工智能专业委员会名单 各相关单位&#xff1a; 一带一路暨金砖国家技能发展国际联盟大数据和人工智能专业委员会于2023年11月12日正式成立。经各单位申请、大数据…

浪花 - 添加队伍业务开发

一、接口设计 1. 请求参数&#xff1a;封装添加队伍参数 TeamAddRequest package com.example.usercenter.model.request;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.ann…

06章【Eclipse与异常处理】

Eclipse开发环境使用入门 Eclipse开发环境使用入门 下载安装配置环境Eclipse入门 异常处理 异常 异常是阻止当前方法或作用域继续执行的问题&#xff0c;在程序中导致程序中断运行的一些指令 try与catch关键字 在程序中出现异常&#xff0c;就必须进行处理&#xff0c;处理格…

2024.1.23 GNSS 零散知识 学习笔记

1.天线种类 2.接收机 2.四大导航系统的介绍 3.卫星高度与轨道卫星种类 4.GNSS有哪些应用 5.在空间保持静⽌或匀速直线运动(⽆加速度)的坐标系称为惯性坐标系。 6.地⼼惯性坐标系实际上并没有满⾜能成为惯性坐标系的条件&#xff1a; ⾸先&#xff0c;地球及其质⼼都在围绕太阳…

Python基础第八篇(Python异常处理,模块与包)

文章目录 一、了解异常二、捕获异常&#xff08;1&#xff09;.异常案例代码&#xff08;2&#xff09;.读出结果 三、异常的传递&#xff08;1&#xff09;.异常传递案例代码&#xff08;2&#xff09;.读出结果 四、Python模块&#xff08;1&#xff09;.模块的导入&#xff…

face_recognition和图像处理中left、top、right、bottom解释

face_recognition.face_locations 介绍 加载图像文件后直接调用face_recognition.face_locations(image)&#xff0c;能定位所有图像中识别出的人脸位置信息&#xff0c;返回值是列表形式&#xff0c;列表中每一行是一张人脸的位置信息&#xff0c;包括[top, right, bottom, l…

【vueCms】vuecms_xg安装与使用视频讲解【视频讲解】

克隆项目 gitee项目地址:https://gitee.com/derekgo/vue-cms_xg git clone gitgitee.com:derekgo/vue-cms_xg.git开启自动化脚本 点击后&#xff0c;运行http://localhost:3002 本地配置 开启本地redis 开启redis redis-server.exe redis.windows.conf重启redis 注意:…

微信小程序实现长按 识别图片二维码

第一种方案&#xff08;只需要在image里面加一个属性就可以了&#xff09; show-menu-by-longpress“{{true}}” <image show-menu-by-longpress"{{true}}" src"{{sysset.dyqewm}}" />第二种方案 放大预览图片&#xff0c;长按识别二维码 wxml <…

Redis——RDB持久化

前言 Redis是一个键值对数据库服务器&#xff0c;服务器中通常包含任意个非空数据库&#xff0c;而每个非空数据库中又可以包含任意个键值对&#xff0c;为了方便起见&#xff0c;我们将服务器中的非空数据库以及它们的键值对统称为数据库状态。 因为Redis数据库是内存数据库&a…

Leetcode刷题(二十八)

找出字符串中第一个匹配项的下标&#xff08;Easy&#xff09; 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返…

Java实现考研专业课程管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 考研高校模块2.3 高校教师管理模块2.4 考研专业模块2.5 考研政策模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 考研高校表3.2.2 高校教师表3.2.3 考研专业表3.2.4 考研政策表 四、系统展示五、核…