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

【深度学习:集中偏差】减少计算机视觉数据集中偏差的 5 种方法
- 有偏差的计算机视觉数据集会导致哪些问题?
- 如何减少计算机视觉数据集中偏差的示例
- 观察并监控带注释样本的类别分布
- 确保数据集代表模型适用的人群
- 明确定义对象分类、标记和注释的流程
- 为标签质量保证建立共识基准
- 定期检查模型的性能
尽管计算机视觉领域有无数的创新,但“垃圾进,垃圾出”的概念仍然是数据科学领域内任何事物的关键原则。与此特别相关的一个领域是用于训练机器学习模型的数据集中的偏差。
如果您的数据集在某种程度上存在偏差,则会对计算机视觉模型的结果产生负面影响,无论是使用训练数据集还是已进入生产阶段。
机器学习模型中有一些众所周知的偏差例子。例如,亚马逊的招聘算法被发现存在性别偏见,偏袒男性而不是女性。美国各州法官使用的一种风险评估量刑算法,即 COMPAS(替代制裁的惩教罪犯管理分析),被发现在因暴力犯罪被判刑时对黑人被告存在偏见。微软在 2016 年的一天试验了一款名为 Tay 的 Twitter 聊天机器人,该算法生成了数千条充满种族主义、仇恨言论、反犹太主义、性别歧视和厌女症的推文。
所有这些事情有什么共同点,这对于尝试在基于图像或视频的数据集上使用人工智能模型的公司意味着什么?
算法本身不能有偏见。另一方面,无论有意还是无意,人类都是如此。偏爱某件事、概念或人口统计的个人偏见可能会无意中影响算法产生的结果。不仅如此,如果使用有偏差的数据集来训练这些算法,那么结果将偏向或反对特定的结果和结果。
在本文中,我们概述了由有偏差的计算机视觉数据集引起的问题以及减少这些数据集中的偏差的五种方法。
有偏差的计算机视觉数据集会导致哪些问题?
偏差几乎可以在任何时候进入数据集或计算机视觉模型。可以肯定地假设几乎所有数据集都存在偏见,即使是那些不涉及人的数据集。基于图像或视频的数据集可能会偏向或反对过多或过少的特定对象示例,例如汽车、卡车、鸟类、猫或狗。困难在于,知道如何识别偏见,然后了解如何有效地抵消它。
偏差可能会在项目的收集、聚合、模型选择和最终用户解释阶段无意中进入数据集。这种偏见可能源于人类的偏见和成见,源于那些参与选择数据集、生成注释和标签的人,或者源于对数据集的无意简化。
在基于图像或视频的计算机视觉数据集中,通常会无意中出现不同类型的偏差。最常见的三种如下:
样本类数量不均匀: 当数据集中存在这种偏差时⏤特别是在训练阶段⏤模型会多次暴露于不同类别的对象。因此,合理的假设是模型可能会赋予更频繁出现的样本更多的权重,而代表性不足的样本可能表现不佳。例如,培训项目的目的可能是向计算机视觉模型展示如何识别特定品牌和型号的汽车。如果您没有展示足够多的非该品牌和型号的其他汽车的示例,那么它的性能就不会达到您想要的效果。
理想情况下,为了减少这种类型的偏差,我们希望模型看到不同类别的相同数量的样本,特别是在尝试识别正面和负面结果时。更重要的是,当模型训练旨在支持医学诊断时,CV 模型会接触到足够范围的样本类别。
选择偏差: 收集数据集时,可能是从人口的子集(例如特定种族群体)中抽样的,或者在许多情况下,数据集无意中排除了各个种族群体。或者数据集中包含太多男性或女性。
在任何情况下,数据集都不会完全代表总体人口,并且会有意或无意地带有选择偏差。当模型在此类数据集上进行训练时,它们在生产阶段的泛化性能很差,产生有偏差的结果。
类别偏差: 注释数据集时,注释器甚至自动注释工具有时可能会将一种标签类别与另一种标签类别混淆。例如,狗可以被标记为狐狸,或者猫可以被标记为老虎。
在这种情况下,由于类别标签的混乱和偏差,计算机视觉模型的表现将低于预期。
其中任何一个都可能导致数据集不平衡,从而产生不平衡或有偏差的结果。当然,还有其他例子,例如根据国家/地区应用错误的标签。例如,在美国使用“purse”一词,意思是女性的手提包,而在英国,“purse”是女性钱包的名称。
算法偏差也是可能的,这可能是由多种因素引起的。例如,计算机视觉模型在错误的上下文或环境中使用,例如为医学成像数据集设计的模型被用来识别天气模式或潮汐侵蚀。人类偏见自然也会影响计算机视觉模型。
如何减少计算机视觉数据集中偏差的示例
值得庆幸的是,有多种方法可以减少计算机视觉数据集中的偏差,例如:
-
观察注释过程以测量类别不平衡,使用质量控制过程来限制任何潜在的类别或选择偏差。
-
在获取数据集时,图像或视频必须尽可能来自不同的来源,以覆盖尽可能广泛的对象和/或人员,包括适用的性别和种族群体。
-
注释程序应该明确定义,当数据集中存在矛盾的例子或边缘/边缘情况时,应该达成共识。
对于每个训练和生产就绪的数据集,目标应该是收集大量图像或视频,这些图像或视频代表您要解决的问题的类和类别,并正确注释它们。
现在,这里有五种更详细地减少偏见的方法:
观察并监控带注释样本的类别分布
在注释过程中,我们应该观察数据集中的类分布。如果数据集中存在代表性不足的样本组,我们可以使用主动学习模式提高未标记样本中代表性不足的类的优先级。例如,我们可以在数据集中找到与少数类别相似的图像,并且可以增加它们在注释队列中的顺序。
借助 Encord Active,您可以更轻松地在数据集中找到相似的图像或对象,并优先标记这些图像或视频,以减少数据中的整体偏差。

确保数据集代表模型适用的人群
在收集和整理任何数据集时,我们应该小心创建一个准确代表总体的数据集(例如,“总体”是指模型在生产阶段将处理的任何目标群体)。
例如,假设一个医学成像计算机视觉项目正在尝试收集胸部 X 射线图像来检测患者的 COVID-19。那么,这些图像应该来自不同的机构和广泛的国家。否则,当特定群体没有足够广泛的样本量时,我们就会面临模型出现偏差的风险。
明确定义对象分类、标记和注释的流程
在开始任何注释工作之前,应准备一个程序/策略。
在此政策中,应明确定义类别和标签。如果存在令人困惑的类别,则应详细解释它们的差异,甚至应共享每个类别的样本图像。如果存在非常接近的同一类型的对象,则应明确定义是否将它们单独标记或是否单个注释将覆盖两者。如果存在被遮挡的物体,它们的部分是单独标记还是整体标记?所有这些都应该在应用任何注释和标签之前定义。

为标签质量保证建立共识基准
当存在特定领域的任务时,例如在医疗保健领域,图像或视频应该由不同的专家进行注释,以避免根据自己的经验产生偏见。例如,一位医生可能会根据自己的经验和性格更倾向于将肿瘤归类为恶性,而其他医生可能会采取相反的做法。 Encord Annotate 拥有共识基准和质量保证等工具,可以减少此类偏差对模型产生负面影响的可能性。
定期检查模型的性能
您必须定期检查模型的性能。通过检查模型的性能,您可以了解模型在哪些样本/条件下失败或表现良好。这样您就知道应该优先进行标签工作的样品。 Encord Active 提供了一个用户界面 (UI),以便您可以轻松地可视化模型的性能。
借助 Encord Active,用户可以定义指标来评估其模型针对这些指标和目标的表现。
相关文章:
【深度学习:集中偏差】减少计算机视觉数据集中偏差的 5 种方法
【深度学习:集中偏差】减少计算机视觉数据集中偏差的 5 种方法 有偏差的计算机视觉数据集会导致哪些问题?如何减少计算机视觉数据集中偏差的示例观察并监控带注释样本的类别分布确保数据集代表模型适用的人群明确定义对象分类、标记和注释的流程为标签质…...
java数据结构与算法刷题-----LeetCode667. 优美的排列 II
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 题目要求我们返回一个数组长度为n的数组,必须含有1~n…...
win10 20h2 defender添加排除项失败怎么回事 Window Defender添加不了排除项如何处理
我们都知道win10系统中是内置有Windows Defender安全防护软件的,会自动对电脑中的所有文件进行扫描,但是有用户可能某些文件不希望被扫描,那么我们可以添加排除项,可是有不少win10 20h2用户在defender添加排除项的时候却失败了&am…...
mysql生成最近24小时整点时间临时表
文章目录 生成最近24小时整点生成最近30天生成最近12个月 生成最近24小时整点 SELECT-- 每向下推1行, i比上次减去1b.*, i.*,DATE_FORMAT( DATE_SUB( NOW(), INTERVAL ( -( i : i - 1 ) ) HOUR ), %Y-%m-%d %H:00 ) AS time FROM-- 目的是生成12行数据( SELECTa FROM( SELECT…...
基于PHP反序列化练习
PHP创建一个以自己姓名命名的类,要求存在两个属性,name,age,进行序列化,输出序列化以后的数据。 <!-- PHP创建一个以自己姓名命名的类,要求存在两个属性,name,age --> <?…...
ITSS、ITIL、ISO20000:哪个更适合你?
在IT服务管理领域,ITSS、ITIL和ISO20000是备受关注的三大标准。它们在性质、设立组织、目的和适用对象等方面各有千秋。那么,如何在这三大标准中选择最适合自己的呢?下面,让我们一起揭开它们的神秘面纱! 1️⃣ 性质&am…...
Linux配置yum源以及基本yum指令
文章目录 一、yum介绍二、什么是软件包三、配置yum源四、一键配置yum源【三步走】五、yum指令搜索软件安装软件卸载软件 六、其他yum指令更新内核更新软件更新指定软件显示所有可更新的软件清单卸载指定包并自动移除依赖包删除软件包,以及软件包数据和配置文件 一、…...
【AI视野·今日Robot 机器人论文速览 第七十五期】Thu, 11 Jan 2024
AI视野今日CS.Robotics 机器人学论文速览 Thu, 11 Jan 2024 Totally 16 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Analytical Model and Experimental Testing of the SoftFoot: an Adaptive Robot Foot for Walking over Obstacles and Irre…...
阿里云ECS(CentOS镜像)安装docker
目录 1.前置条件 2.连接至ECS 3.yum软件包更新 4.安装docker前置所需软件包 5.添加docker 官方的 yum 软件源 6.安装docker 7.检测是否成功 8.配置阿里云镜像加速器 1.前置条件 在看本文前保证未安装过docker,或者安装过但是清理干净 如果多次安装失败过,…...
服务器工作环境要求
在开展网站服务之前,合适的服务器工作环境是必不可少的。服务器工作环境指需要一定的软硬件条件来保障服务器可以正常地运转和提供高效率的服务。在这篇文章中,我们将会详细讲解服务器工作环境所需的要素。 一、硬件要求 服务器硬件方面包括了基本的电…...
大数据开发之Spark(入门)
第 1 章:Spark概述 1.1 什么是spark 回顾:hadoop主要解决,海量数据的存储和海量数据的分析计算。 spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。 1.2 hadoop与spark历史 hadoop的yarn框架比spark框架诞生的晚ÿ…...
【GoLang入门教程】Go语言工程结构详述
程序员裁员潮:技术变革下的职业危机 文章目录 程序员裁员潮:技术变革下的职业危机前言总结:专栏集锦强烈推荐写在最后 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网…...
FPGA之分布式RAM(2)
1) 128 X1 Single Port Distributed RAM 下图中可以看出来,通过2个LUT的组合使用可以串联实现更大深度的分布式RAM.下图中出现了F7BMUX的加入, F7BMUX可以用于LUT输出的选通. 原语调用: RAM128XIS#(INIT(128h00000000000000000000000000000000) // Initial conten…...
纯c实现栈和队列 数据结构大全
栈 栈是一种后进先出的数据结构,可以用数组来模拟实现,掌握必要的数据结构是非常的有必要的 一样是先打出头文件 #pragma once#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #include &…...
测试开发基础 | 计算机网络篇(二):物理层与数据链路层
【摘要】 计算机网络知识是自动化测试等技术基础,也是测试面试必考题目。霍格沃兹测试学院特别策划了本系列文章,将带大家一步步夯实计算机网络的基础知识。由于物理层知识在互联网软件研发工作中用到的并不多,所以可以仅做一个简单的了解。物…...
【深度学习】BasicSR训练过程记录,如何使用BasicSR训练GAN
文章目录 两种灵活的使用场景项目结构概览简化的使用方式 项目结构解读1. 代码的入口和训练的准备工作2. data和model的创建2.1 dataloader创建2.2 model的创建 3. 训练过程 动态实例化的历史演进1. If-else判断2. 动态实例化3. REGISTER注册机制 REGISTER注册机制的实现1. DAT…...
喜讯 | 华院计算摘得“2023大数据产业年度创新技术突破”奖
2024年1月17日, 由数据猿和上海大数据联盟主办,上海市经济和信息化委员会、上海市科学技术委员会指导的“第六届金猿季&魔方论坛——大数据产业发展论坛”在上海市四行仓库举行。论坛以“小趋势大未来”为主题,围绕大数据产业的各个领域展…...
stm32高级定时器死区时间
为什么要有死区时间 高级控制定时器(TIM1和TIM8)能够输出两路互补信号,并且能够管理输出的瞬时关断和接通。这段时间通常被称为死区,用户应该根据连接的输出器件和它们的特性(电平转换的延时、电源开关的延时等)来调整死区时间。 死区发生器 在生成的参…...
Python项目——久坐提醒定时器(PySide6)编写
1、介绍 使用Python编写一个久坐提醒软件。功能: 设置工作时间。设置休息时间。选择休息时是否播放音乐。休息时,软件置顶,且不能关闭。 2、工具 语言:python3.11UI设计工具:Qt designer编译器:PyCharm包…...
Linux,常见的强制退出/结束命令(ctr+c/ctr+d/:q/exit)
PS: 一直搞不清楚,这四个命令区别,干脆每个都输入一遍,逮着哪个算哪个。 1. CtrlC用途: 中断正在运行的程序或命令。(例如输入Ping命令一直处于等待状态,就像是进程一直等待干脆杀死࿰…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
