当前位置: 首页 > news >正文

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

在这里插入图片描述

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

借助 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创建一个以自己姓名命名的类&#xff0c;要求存在两个属性&#xff0c;name&#xff0c;age&#xff0c;进行序列化&#xff0c;输出序列化以后的数据。 <!-- PHP创建一个以自己姓名命名的类&#xff0c;要求存在两个属性&#xff0c;name&#xff0c;age --> <?…...

ITSS、ITIL、ISO20000:哪个更适合你?

在IT服务管理领域&#xff0c;ITSS、ITIL和ISO20000是备受关注的三大标准。它们在性质、设立组织、目的和适用对象等方面各有千秋。那么&#xff0c;如何在这三大标准中选择最适合自己的呢&#xff1f;下面&#xff0c;让我们一起揭开它们的神秘面纱&#xff01; 1️⃣ 性质&am…...

Linux配置yum源以及基本yum指令

文章目录 一、yum介绍二、什么是软件包三、配置yum源四、一键配置yum源【三步走】五、yum指令搜索软件安装软件卸载软件 六、其他yum指令更新内核更新软件更新指定软件显示所有可更新的软件清单卸载指定包并自动移除依赖包删除软件包&#xff0c;以及软件包数据和配置文件 一、…...

【AI视野·今日Robot 机器人论文速览 第七十五期】Thu, 11 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Thu, 11 Jan 2024 Totally 16 papers &#x1f449;上期速览✈更多精彩请移步主页 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,或者安装过但是清理干净 如果多次安装失败过&#xff0c;…...

服务器工作环境要求

在开展网站服务之前&#xff0c;合适的服务器工作环境是必不可少的。服务器工作环境指需要一定的软硬件条件来保障服务器可以正常地运转和提供高效率的服务。在这篇文章中&#xff0c;我们将会详细讲解服务器工作环境所需的要素。 一、硬件要求 服务器硬件方面包括了基本的电…...

大数据开发之Spark(入门)

第 1 章&#xff1a;Spark概述 1.1 什么是spark 回顾&#xff1a;hadoop主要解决&#xff0c;海量数据的存储和海量数据的分析计算。 spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。 1.2 hadoop与spark历史 hadoop的yarn框架比spark框架诞生的晚&#xff…...

【GoLang入门教程】Go语言工程结构详述

程序员裁员潮&#xff1a;技术变革下的职业危机 文章目录 程序员裁员潮&#xff1a;技术变革下的职业危机前言总结:专栏集锦强烈推荐写在最后 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网…...

FPGA之分布式RAM(2)

1) 128 X1 Single Port Distributed RAM 下图中可以看出来,通过2个LUT的组合使用可以串联实现更大深度的分布式RAM.下图中出现了F7BMUX的加入, F7BMUX可以用于LUT输出的选通. 原语调用&#xff1a; RAM128XIS#(INIT(128h00000000000000000000000000000000) // Initial conten…...

纯c实现栈和队列 数据结构大全

栈 栈是一种后进先出的数据结构&#xff0c;可以用数组来模拟实现&#xff0c;掌握必要的数据结构是非常的有必要的 一样是先打出头文件 #pragma once#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #include &…...

测试开发基础 | 计算机网络篇(二):物理层与数据链路层

【摘要】 计算机网络知识是自动化测试等技术基础&#xff0c;也是测试面试必考题目。霍格沃兹测试学院特别策划了本系列文章&#xff0c;将带大家一步步夯实计算机网络的基础知识。由于物理层知识在互联网软件研发工作中用到的并不多&#xff0c;所以可以仅做一个简单的了解。物…...

【深度学习】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日&#xff0c; 由数据猿和上海大数据联盟主办&#xff0c;上海市经济和信息化委员会、上海市科学技术委员会指导的“第六届金猿季&魔方论坛——大数据产业发展论坛”在上海市四行仓库举行。论坛以“小趋势大未来”为主题&#xff0c;围绕大数据产业的各个领域展…...

stm32高级定时器死区时间

为什么要有死区时间 高级控制定时器(TIM1和TIM8)能够输出两路互补信号&#xff0c;并且能够管理输出的瞬时关断和接通。这段时间通常被称为死区&#xff0c;用户应该根据连接的输出器件和它们的特性(电平转换的延时、电源开关的延时等)来调整死区时间。 死区发生器 在生成的参…...

Python项目——久坐提醒定时器(PySide6)编写

1、介绍 使用Python编写一个久坐提醒软件。功能&#xff1a; 设置工作时间。设置休息时间。选择休息时是否播放音乐。休息时&#xff0c;软件置顶&#xff0c;且不能关闭。 2、工具 语言&#xff1a;python3.11UI设计工具&#xff1a;Qt designer编译器&#xff1a;PyCharm包…...

Linux,常见的强制退出/结束命令(ctr+c/ctr+d/:q/exit)

PS&#xff1a; 一直搞不清楚&#xff0c;这四个命令区别&#xff0c;干脆每个都输入一遍&#xff0c;逮着哪个算哪个。 1. CtrlC用途&#xff1a; 中断正在运行的程序或命令。&#xff08;例如输入Ping命令一直处于等待状态&#xff0c;就像是进程一直等待干脆杀死&#xff0…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...