深度学习数据集有没有规范或指导意见,数据集的建立都需要做哪些研究工作?

news2025/1/10 15:55:40

一、数据集的核心原则是什么?

数据集的目标:它需要回答“你要解决什么问题?”

在构建数据集之前,最重要的不是去采集数据,而是明确目标:

  • 你的模型是要做图像分类,还是目标检测
  • 是要进行语音识别,还是文本生成
  • 应用场景是否有特定的约束?比如工业场景对精度的高要求,还是消费级产品中对多样性和鲁棒性的需求?

这直接决定了你的数据集应该采集什么样的数据,以及需要怎样的标注形式。

举个例子:
如果你要训练一个语音识别模型给智能音箱使用,数据应该包括多种口音、不同年龄段的人声,甚至背景噪声。否则,模型在“理想条件”下表现很好,却无法处理真实场景。

数据质量:“垃圾进,垃圾出”

深度学习模型是一个“忠诚的学生”,它学什么,就输出什么。你的数据集质量直接影响模型的质量。质量问题主要包括:

  • 标注的准确性:比如图像分类任务中,不能把“狗”标成“猫”,也不能因为模糊的边界漏掉了目标。
  • 数据的多样性:数据是否能反映真实世界的复杂性?比如人脸数据集中是否包含各种肤色、性别和年龄。
  • 去除偏差:如果数据存在明显的分布偏差,比如图像数据集中90%的猫是白色的,那模型可能会学会“白猫偏见”。

数据质量往往决定了模型的上限,而不是架构设计。

二、建立一个数据集需要哪些步骤?

数据收集:全面性和代表性是核心

数据收集的第一步是思考数据应该来源于哪里,这一步会直接影响后续所有的工作。

(1)数据来源的多样性

  • 公开数据集:许多领域都有成熟的公开数据集,比如计算机视觉领域的 ImageNet、COCO,语音领域的 LibriSpeech。它们是快速启动的好选择。

  • 自有业务数据:如果你有一手数据来源,最好不过。这些数据往往和实际应用场景更加贴近。
  • 爬取数据:比如从互联网获取公开图片或文本。需要注意,爬取数据必须符合版权法规。
  • 合成数据:通过模拟生成数据,补充某些稀缺类别。例如,用生成对抗网络(GAN)生成罕见样本,或者使用 3D 模型生成特定角度的图像。

(2)覆盖现实场景

要确保你的数据能反映实际场景的复杂性,否则模型训练出来只会变成“实验室优秀选手”。比如图像数据需要涵盖不同光照条件、角度、分辨率等。自然语言处理任务需要包含不同语域、方言等。

(3)数据规模

数据规模需要和你的任务目标相匹配:对于复杂的模型(如 Transformer 或 ResNet),需要更多的数据支持,通常级别在数十万甚至上亿条样本。如果数据不足,可以采用数据扩充,对图像进行旋转、裁剪、翻转等操作,或对文本进行同义词替换、语序变换等。

数据标注:精准与一致是关键

标注是最耗时、也是最容易出问题的一环。标注的质量决定了模型学习的效果。

(1)制定标注规范

  • 清晰的标注标准:为标注人员制定细致的标注指南,确保不同人对同一任务的理解一致。
  • 样本案例:用标注示例告诉标注员什么是正确标注,什么是错误标注。
  • 多轮讨论:对复杂的标注任务,标注人员与领域专家需要多轮沟通,解决歧义。
就像之前实习过的一家公司:某医学图像数据集,因为没有标注清晰的规范,不同医生对同一影像的标注结果竟然相差甚远,导致模型无法学习到一致的模式。

(2)标注质量控制

  • 交叉验证:多个标注员对同一数据进行标注,比较他们的结果以发现差异。
  • 抽样检查:从标注结果中随机抽取一部分进行人工审核。
  • 自动化标注:对于规模巨大的数据集,可以先用预训练模型或简单算法生成初步标注,再进行人工校验。

(3)标注工具的选择

现代标注工具可以极大提高效率:

  • 图像标注:LabelImg、VGG Image Annotator。
  • 文本标注:Doccano、Prodigy。
  • 语音标注:Audacity、Praat。

数据清洗与预处理:清洁的数据才能训练干净的模型

(1)数据清洗

  • 删除重复数据:避免模型重复学习相同样本。
  • 去除错误数据:比如标注错误、不符合任务目标的样本。
  • 处理异常值:对于某些异常值(如异常大的数值),需要仔细分析是否合理。

(2)数据格式标准化

  • 图像任务:统一分辨率和色彩通道。
  • 文本任务:统一编码格式、去除多余空格和噪声字符。
  • 语音任务:统一采样率、音频时长。

数据划分:训练、验证和测试

(1)数据集划分的比例,通常是训练集占 60%-80%,验证集和测试集各占 10%-20%。

(2)分层抽样

对于类别不平衡的数据,划分时需要确保每个类别在不同子集中的分布一致。

(3)防止数据泄漏

数据泄漏指的是训练集中包含了测试集的信息,这是建数据集的大忌。比如同一张图像的裁剪版本既出现在训练集中,又出现在测试集中。


最后最后

建立深度学习数据集不是单纯的“收集数据”工作,而是一门科学与艺术相结合的复杂工程。它需要你既掌握技术细节,也能对目标任务有深刻的理解。
数据决定了模型的天花板。模型再强大,数据不行,一切白搭。
如果你想让深度学习成功,别只盯着模型优化,先问问你的数据是不是好数据!我是旷野,探索无尽技术!

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

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

相关文章

前端for循环遍历——foreach、map使用

title: 前端不同类型的for循环遍历——foreach、map date: 2025-01-04 11:02:17 tags: javascript 前端不同类型的for循环遍历 场景:很多时候后端发来的数据是不能够完全契合前端的需求的,比如你要一个数据对象中的值,但是这个值却作为了ke…

MR30分布式 IO 在物流分拣线的卓越应用

在当今物流行业高速发展的时代,物流分拣线的高效与精准运作至关重要,而其中对于货物点数较多情况下的有效控制更是一大关键环节。明达技术MR30分布式 IO 系统凭借其独特的优势,在物流分拣线中大放异彩,为实现精准的点数控制提供了…

5 分布式ID

这里讲一个比较常用的分布式防重复的ID生成策略,雪花算法 一个用户体量比较大的分布式系统必然伴随着分表分库,分机房部署,单体的部署方式肯定是承载不了这么大的体量。 雪花算法的结构说明 如下图所示: 雪花算法组成 从上图我们可以看…

Android wifi常见问题及分析

参考 Android Network/WiFi 那些事儿 前言 本文将讨论几个有意思的网络问题,同时介绍 Android 上常见WiFi 问题的分析思路。 网络基础Q & A 一. 网络分层缘由 分层想必大家很熟悉,是否想过为何需要这样分层? 网上大多都是介绍每一层…

音视频入门基础:MPEG2-PS专题(6)——FFmpeg源码中,获取PS流的视频信息的实现

音视频入门基础:MPEG2-PS专题系列文章: 音视频入门基础:MPEG2-PS专题(1)——MPEG2-PS官方文档下载 音视频入门基础:MPEG2-PS专题(2)——使用FFmpeg命令生成ps文件 音视频入门基础…

读书笔记:分布式系统原理介绍

写在前面 已经大概三个月左右没有更新博客了,哈哈哈哈; 此博客是笔者在对《分布式系统原理介绍》进行概述,对于整个分布式系统协议的理解基于一些量化的指标考虑了数据的分布副本协议(中心化/去中心化)进行了总结&…

Dexcap复现代码数据预处理全流程(四)——demo_clipping_3d.py

此脚本的主要功能是可视化点云数据文件(.pcd 文件),并通过键盘交互选择演示数据的起始帧和结束帧,生成片段标记文件 (clip_marks.json) 主要流程包括: 用户指定数据目录:检查目录是否存在并处理标记文件 -…

MBM指尖六维力触觉传感器:高灵敏度、低漂移,精准掌控力学世界

MBM指尖六维力触觉传感器是一种专为机器人设计的高性能传感器。它通过集成三轴力和三轴力矩的感知能力,能够精准捕捉复杂的力学信息。传感器采用MEMS与应变体复合测量技术,具备数字输出功能,显著降低漂移并减少安装偏移的影响。其紧凑轻便的设…

C#,图论与图算法,任意一对节点之间最短距离的弗洛伊德·沃肖尔(Floyd Warshall)算法与源程序

一、弗洛伊德沃肖尔算法 Floyd-Warshall算法是图的最短路径算法。与Bellman-Ford算法或Dijkstra算法一样,它计算图中的最短路径。然而,Bellman Ford和Dijkstra都是单源最短路径算法。这意味着他们只计算来自单个源的最短路径。另一方面,Floy…

为答疑机器人扩展问题分类与路由功能

1.意图识别 2. 构建路由模块 简单的意图识别 from chatbot import llmfrom config.load_key import load_key load_key()prompt 【角色背景】 你是一个问题分类路由器,需要识别问题的类型。 --- 【任务要求】 问题的类型目前有:公司内部文档查询、内…

spring boot启动源码分析(三)之Environment准备

上一篇《spring-boot启动源码分析(二)之SpringApplicationRunListener》 环境介绍: spring boot版本:2.7.18 主要starter:spring-boot-starter-web 本篇开始讲启动过程中Environment环境准备,Environment是管理所有…

Pandas-RFM会员价值度模型

文章目录 一. 会员价值度模型介绍二. RFM计算与显示1. 背景2. 技术点3. 数据4. 代码① 导入模块② 读取数据③ 数据预处理Ⅰ. 数据清洗, 即: 删除缺失值, 去掉异常值.Ⅱ. 查看清洗后的数据Ⅲ. 把前四年的数据, 拼接到一起 ④ 计算RFM的原始值⑤ 确定RFM划分区间⑥ RFM计算过程⑦…

【理论】测试框架体系TDD、BDD、ATDD、DDT介绍

一、测试框架是什么 测试框架是一组用于创建和设计测试用例的指南或规则。框架由旨在帮助 QA 专业人员更有效地测试的实践和工具的组合组成。 这些指南可能包括编码标准、测试数据处理方法、对象存储库、存储测试结果的过程或有关如何访问外部资源的信息。 A testing framewo…

FreeU: Free Lunch in Diffusion U-Net 笔记

FreeU: Free Lunch in Diffusion U-Net 摘要 作者研究了 U-Net 架构对去噪过程的关键贡献,并发现其主干部分主要在去噪方面发挥作用,而其跳跃连接主要是向解码器模块引入高频特征,这使得网络忽略了主干部分的语义信息。基于这一发现&#…

JAVA 使用apache poi实现EXCEL文件的输出;apache poi实现标题行的第一个字符为红色;EXCEL设置某几个字符为别的颜色

设置输出文件的列宽,防止文件过于丑陋 Sheet sheet workbook.createSheet(FileConstants.ERROR_FILE_SHEET_NAME); sheet.setColumnWidth(0, 40 * 256); sheet.setColumnWidth(1, 20 * 256); sheet.setColumnWidth(2, 20 * 256); sheet.setColumnWidth(3, 20 * 25…

【STM32】无源蜂鸣器播放音乐《千与千寻》,HAL库

目录 一、工程链接 二、简单介绍 主要特点: 应用: 驱动电路: 三、原理图 四、cubeMX配置 时钟配置 五、keil配置 六、驱动编写 演奏函数 主函数编写 七、效果展示 八、驱动附录 music.h music.c 一、工程链接 STM32无源蜂鸣…

在 Vue 3 集成 e签宝电子合同签署功能

实现 Vue 3 e签宝电子合同签署功能,需要使用 e签宝提供的实际 SDK 或 API。 e签宝通常提供针对不同平台(如 Web、Android、iOS)的 SDK,而 Web 端一般通过 WebView 或直接使用嵌入式 iframe 来加载合同签署页面。 下面举个 &…

04、Redis深入数据结构

一、简单动态字符串SDS 无论是Redis中的key还是value,其基础数据类型都是字符串。如,Hash型value的field与value的类型,List型,Set型,ZSet型value的元素的类型等都是字符串。redis没有使用传统C中的字符串而是自定义了…

如何用Python编程实现自动整理XML发票文件

传统手工整理发票耗时费力且易出错,而 XML 格式发票因其结构化、标准化的特点,为实现发票的自动化整理与保存提供了可能。本文将详细探讨用python来编程实现对 XML 格式的发票进行自动整理。 一、XML 格式发票的特点 结构化数据:XML 格式发票…

Linux——修改USB网卡设备节点名称

修改驱动: 测试: 参考资料: https://blog.csdn.net/ablexu2018/article/details/144868950