大数据的意义和作用 数据处理方法有哪些

一、数据对人工智能的重要性
在实现以深度学习为主的人工智能任务的过程中,有三大基本要素是缺一不可的,那就是算力、算法、数据(点击查看:实现人工智能的三要素) 。
其中算力的大小和硬件直接相关,比如GPU、DPU、NPU、TPU等等(点击查看:CPU、GPU、DPU、TPU、NPU…傻傻分不清楚?实力扫盲——安排!) 。
而算法的优劣基本都是和网络模型结构、激活函数、损失函数、优化函数等相关,工业界常用的算法基本都是开源的,除非一些特殊任务需要专用的算法来实现,其他大部分任务都是基于开源算法而实现的 。
在算力和算法都基本已经确定的前提下,数据在实现一般的深度学习任务的过程中,可以说起到了决定性的作用,可以认为数据对深度学习任务最终效果的影响,其下限很低、上限很高,也就是说,如果数据质量有问题,可以让一个好的模型变宝为废,而如果数据的质量非常高的话,也可以使得一个平庸的算法模型发挥出超常的效果 。
近几年,随着硬件算力设备和算法模型逐渐在标准化、模块化发展的趋势下,数据成为了最不可控的变量 。从算力、算法、数据三大基本要素来看,算力是最容易作为标准化来衡量的,而且通用性最高,可以在任何深度学习任务中都能够使用,比如使用Tesla V100可以做一般的检测分类任务、分割任务、生成任务,也可以做普通的语言模型任务、强化学习模型任务等 。
其次是算法,算法虽然没有像算力一样有那么高的标准化发展,但是常用的算法模型也基本能够解决大部分相似的任务,比如做检测识别的YOLO系列、做图像分割的UNet系列、做图像生成的GAN系列、做语言生成模型的GPT系列等等,这些算法模型不会随着具体的任务数据变化而变化,比如对动物进行分类和对植物进行分类,都可以使用YOLO模型 。
数据作为三者之中不容易用标准化的元素来说,其不可控的原因主要是由于不同的任务要使用不同的数据集,所以很难对数据做到真正的标准化和模块化,无法像算法模型一样直接对其调用 。在学术界,真正通用的数据就那么几个,比如COCO数据集,VOC数据集,ImageNet数据集,都是用来发表论文时使用的,在工业界,大多数任务都是指定的数据,无法直接使用这类数据集的,最多也就是使用其数据作为预训练的模型 。比如很多知名的神经网络模型,像早期的ResNet,后来的Efficientnet,以及YOLO系列近期发出的最强的版本YOLOX,都是在COCO数据集上作比较 。而工业界都是根据各自的任务来选取或者采集相关的数据的 。
数据对于深度学习任务结果的影响,主要体现在数据的数量和质量,数据的数量比较容易理解,简单来说就是加大数据量 。而要把控数据的质量就比较复杂了,因为在整个数据的处理过程当中,每一个环节都有可能会对数据的质量造成影响,而数据上轻微的影响有可能会造成最终结果上的差距 。连全球人工智能著名学者吴恩达都说人工智能=80%数据+20%算法 。
在人工智能项目的研发过程中,基本上80%的工作量都花在了数据处理上 。
二、何为数据处理
一般来说,数据处理(data processing)是对数据的采集、存储、查找、加工、变换和传输 。根据处理设备的结构方式、工作方式,以及数据的时间空间分布方式的不同,数据处理有不同的方式 。不同的处理方式要求不同的处理工具 。每种处理方式都有自己的特点,应当根据应用问题的实际环境选择合适的处理方式 。
数据处理的基本目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说是有价值、有意义的数据 。
数据处理是系统工程和自动控制的基本环节 。数据处理贯穿于社会生产和社会生活的各个领域 。数据处理技术的发展及其应用的广度和深度,极大地影响了人类社会发展的进程 。
现实生活中很多原始数据都是杂乱的、非结构化的数据,无法直接拿来使用,需要按照使用要求对原始数据进行一定的处理,比如删除无用信息、对数据结构重新排列组合、对不同的数据指定对应标签、增强或减弱某些数据的特征,甚至从头开始采集或生成一些需要的数据 。
利用好非标注数据或者数据标注自动化是降低成本和时间的有效思路 。
在以深度学习为主的人工智能应用中,数据处理几乎贯穿了模型的训练和使用过程,在模型的训练开始前,需要对原始数据进行一定的处理,一方面要去除原始数据中重复的数据和错误的数据,另一方面也要让数据的形状和类型能够适应模型的输入格式;
在训练过程中,需要对模型每一层输出的特征数据都要进行标准化处理,让其保持在一定的量纲范围内,从而来保持模型良好的梯度和收敛性;
在模型使用的过程中,需要对输入的数据进行预处理,比如对图像数据去噪、直方图均衡化等操作(点击查看:CV任务中如何解决图像光照度不均匀的问题),让其噪声能够降得更低,光照色彩等更均匀,更好的适应模型的特征预测 。
有的时候,当原始数据不够丰富的时候,还需要对原始数据进行增强处理,也就是换一种方式来增加数据的数量和多样性,能够让模型学习更多的数据特征,比如对数据随机裁剪、偏移、缩放、旋转、扭曲,以及光照色彩等方面的变化,甚至还会对图像增加一些噪声、遮挡等操作,其目的都是为了增加数据的数量和多样性 。
三、数据处理流程
在以深度学习为主的人工智能任务流程中,一开始要做的就是数据的处理,因为有了数据,网络模型才能够训练,数据处理的步骤主要有以下几个环节:

    推荐阅读