【自有技术大讲堂】数据驱动的AI(系列4):AI的数据集管理方式介绍

网站首页    行业信息    【自有技术大讲堂】数据驱动的AI(系列4):AI的数据集管理方式介绍

一、引言

 

数据在深度学习中扮演着至关重要的角色,每个AI模型都使用数据进行训练和评估,并且数据通常以静态的数据集格式存在。数据集的复杂多变的特征从根本上影响模型的行为,如果一个AI模型的实际部署环境与它的训练或评估数据集不匹配,或者这些数据集反映了非真实的偏向,那么该模型在实际部署中的性能将可预见地达不到所需要求。

 

 

虽然数据来源在数据库领域已经得到了广泛的研究,但在AI深度学习领域的研究却相对薄弱,收集并记录数据集的创建和使用受到的关注甚至更少。尽管数据对AI很重要,但目前还没有记录深度学习数据集制作的标准化过程。

 

为此,高视科技通常使用数据表的形式来规范自身数据集,实现数据集制作流程专业化,提升对数据的理解,促进深度学习模型训练结果的更强大的可重复性。

 

标准的数据集应附带一个数据表,记录其动机、组成、收集过程、推荐用途等。接下来我们将描述为数据集开发数据表的过程,使用寓问于答的形式,旨在引出数据集的数据表可能包含的信息,以及数据集创建者在回答这些问题时使用的工作流程。

 

二、Q&A

 

2.1 制作数据集的动机

 

Q:创建数据集的目的是什么?脑海中是否有一个特定的任务?

A:以高视科技的AI模型数据集为例,我们的最终目的就是能通过深度学习的方式完成不同场景的图像分类或者目标检测以及图像分割任务。

 

 

Q:谁来制作数据集?谁将使用制作完成的数据集?

A:制作数据集需要算法工程师和标注工程师紧密配合,算法工程师先对数据集的需求进行评估,收集所需数据图像,再由数据标注工程师接手给数据打标签。最终也由算法工程师对标注完成的数据开展训练,调参达到模型的最佳效果。

 

2.2 数据集的构成

 

Q:数据集的实例主要是哪些,比如图像,自然语言?

A:高视科技是一家机器视觉公司,所以我们的主要数据是图像。

Q:数据集的容量是多大?

A:数据集的容量不固定,针对不同的场景,我们需要因地制宜,对于特征变化较多的场景,多多益善,才能达到一个稳定的泛化能力。

Q:数据集是否包含所有可能的实例?

A:通常情况是需要包含所有可能的实例,但是部分场景良率较高,有些缺陷出现的频率也相对较低,很难短时间内收集到足够的图像数据,这时候就需要结合数据增强等方式来人为扩充数据。

Q:单个实例之间的联系是否明确?

A:以图像分类为例,存在两个实例,假如属于不同类别,那就至少需要有完全不同的信息作为区分;假如属于相同类别,则需要两者之间的类别信息差距越小越好。

Q:是否建议对数据集进行切割?

A:数据集需要包含训练集,验证集和测试集,可以按照8:1:1的比例进行划分,为了直观的看出模型的训练效果,验证集必不可少,同时测试集作为衡量模型最终效果的工具也必须存在,需要注意的是,这三者之间不能相交。

 

 

Q:数据集中是否存在错误、噪声来源或冗余?

A:一般来讲,数据集是肯定会存在噪声的,我们可以做的就是尽可能减少无关信息的冗余,最小化错误标签的出现。这就需要我们对数据了然于心,不断清洗数据修正。

Q:数据集是自包含的,还是链接或依赖外部资源(例如,网站,推文,其他数据集)?

A:高视科技所使用的数据集均来自需要部署AI的场景,外部的数据集是无法满足我们对特定任务的需求的,当然我们会使用在其他数据集预训练好的模型。

Q:数据集是否包含可能被视为机密的数据(例如,受法律特权或机密性保护的数据,包括个人非公开通信内容的数据)?

A:高视科技十分重视数据的保密性,因此我们使用的数据完全的独立,为保证客户的信息不被泄露,我们都对图像数据进行保护。除了个别开源通用的数据集,数据集的获取方式也主要由客户提供。

 

2.3 数据采集过程

 

Q:如何获得与每个实例相关联的数据?

A:数据标注工程师首先对每种类别进行初步辨识,再去观察图像差异,实现数据集类别的分割,为避免数据集的污染,会多次循环反复观察图像特征。

Q:使用什么机制或程序来收集数据(例如,硬件设备或传感器,人工管理,软件程序,软件API)?

A:数据都是由现场环境中的数据服务器提供,AI所需的数据也包含其中,可能无法直接使用,还需要进行编写的一些脚本处理等等。

Q:如果数据集是一个更大的集合中的一个样本,那么抽样策略是什么(例如,确定性的,带有特定抽样概率的概率)?

A:抽样的策略是要包含各个所需要的细分子类别,不能直接抽样,否则会造成泛化性能较低。

Q:谁参与了数据收集过程?

A:现场技术支持工程师,图像标注工程师,算法工程师。

 

2.4 数据预处理/数据清洗/数据标注

 

Q:是否对数据进行了任何预处理/清洗/标记? 如果是,请提供描述。

A:在数据充足时,我们对数据着重进行清洗,防止过多的错误标签。在数据不够充分的时候,会考虑使用各种预处理的方式进行数据增强,例如:图像翻转,镜像,平移,旋转,随机裁切等。

 

数据增强示例图

 

Q:原始数据是否保存在预处理/清洗/标记数据之外(例如,以支持意外的未来用途)?

A:原始数据我们会保存下来,除了预处理之后的图像,原始图像也会加入进去训练,会对其进行一个重命名标记,方便以后查找区分。

Q:软件是否用于预处理/清理/标签的实例可用?

A:高视科技拥有自主研发的标注工具,另外我们偶尔会使用开源的软件进行标注,包括但不限于LabelImg和Labelme等。

 

2.5 数据集的使用

 

Q:数据集是否已经用于任何任务?

A:工业场景变化较多,单独的数据集无法做到覆盖所有需求。不过我们的目标是让我们的数据集能尽量覆盖相同需求的特定环境。

Q:数据集可以用于什么(其他)任务?

A:数据集可以用于图像分类,目标检测以及图像分割,如果任务需求是在相同的环境中,那可以实现相同数据集的不同属性的标注,完成不同的任务。

Q:关于数据集的组成或者数据集的收集、预处理/清洗/标记的方式是否有任何可能会影响未来的使用?

A:深度学习是数据驱动的,所以预处理的部分可能会导致某些特征的偏移,引入更多的噪声等,需要结合相应的情况去清洗掉不符合现实状况的数据,所以是会造成一定的负面影响,但是可以通过人为干预最小化。

Q:是否有不应该使用数据集的任务?

A:能否用于其他的任务,需要仔细了解需求,多方面评估。

 

2.6 数据集的维护

 

Q:谁将支持/托管/维护数据集?

A:数据集的制作人员通常包含在数据集维护人员当中,为了提升效率,需要进行任务分工,主要由数据标注工程师进行支持、托管以及维护,算法工程师进行二次核对。

Q:数据集是否会更新?

A:数据集是会随着时间推移进行更新,工业场景中,型号的更换会导致以前的数据集无法完全适配当前的环境,就需要不断加入新的特征。

Q:旧版本的数据集会继续被支持/托管/维护吗?

A:旧版本的数据集我们会保留,如果是同一客户,我们可以使用之前的数据集进行数据的迁移,减少开发时间,提升部署效率,所以旧版本的数据通常会继续维护。

 

三、影响和挑战

 

自从2018年3月开始,微软、谷歌和IBM已经开始在产品团队内部试用用于数据集的数据表。谷歌的研究人员发表了关于模型卡的后续工作,该模型卡记录了机器学习模型,并发布了数据卡(一个轻量级版本的数据表)和Open Images数据集。IBM的研究人员制定了开发和部署AI技术的最佳实践,正在基于数据集的数据表、模型卡和事实表进行全行业文档指导。

 

ImageNet数据集

 

这些初步的成功也揭示了可能需要解决的实现挑战,以支持更广泛的采用。其中最主要的是数据集创建者需要根据他们现有的组织基础设施和工作流修改问题和工作流。我们还注意到,这些问题和工作流可能会对动态数据集造成问题。如果数据集的变化不频繁,我们建议在更新版本的同时更新数据表。

 

四、总结

 

数据集的数据表旨在满足两个关键利益相关群体的需求:数据集创建者和数据集消费者。对于数据集创建者,主要目标是鼓励仔细思考创建、分发和维护数据集的过程,包括任何潜在的假设、潜在的风险或危害,以及使用的影响。对于数据集消费者,主要目标是确保他们拥有所需的信息,以便在使用数据集时做出明智的决定。

 

高视科技在AI智能化工业检测已经耕耘多年,总结出自己独特的AI数据集的数据表制作经验和流程,目的是运用于更加广泛的工业场景,最大化AI模型的泛化能力,给客户带来更多更好的解决方案,赋能AI智造!

 

2022年9月5日 09:11