深度学习项目数据怎么处理?

2023-06-18  本文已影响0人  小黄不头秃

深度学习我们要采集数据,要设计模型、训练模型,最后需要将模型部署。那么哪一个部分最重要呢?其实最重要的部分就是数据的处理部分,因为数据代表着特征,当我们的特征越丰富,特征越明显,我们的模型识别率才会越高。既然如此,那么数据又该如何进行处理呢?

数据处理主要分为五个部分:数据采集、数据清洗、数据标注、数据增强、数据预处理。

一、数据采集

我们需要知道如何准确的采集,当数据不够时需要进行怎样的处理。

(1)数据样本数量不够时如何处理?
(2)采集数据的四个指标——(样本数量、覆盖性、多样性、均衡性)

样本数量:样本的数量越多,所包含的数据特征就更多。但是数据不能够通过重复增加样本数量。

覆盖性:覆盖性是指该任务下的数据类别够不够,例如ImageNet的1000个类

多样性:包含的场景、角度、噪声、明暗等。这会影响到模型的泛化能力。

均衡性:就是让不同类别下的样本数量尽量一致,如果样本数量的分布不够均匀,会影响到模型的效果。

二、数据清洗

数据清洗的目的是为了增加数据集的质量,减少误差。

三、数据标注

就是标注的时候尽量保持数据的均衡性。

当数据标注中出现多种标准时如何解决?
可以使用这个数据集训练一个模型出来,然后重新标注一小部分数据,再加上数据增强技术,让训练好的模型进行微调。

四、数据增强技术

(1)形状变换

形状变换主要包括的是将图像进行简单的线性变换,例如:

(2)颜色空间的变换
(3)加入噪声

可以加入高斯采样,增加数据的鲁棒性。

(4)遮罩技术
  1. cutout:随机生成一个正方形,将图片中的一部分给遮住,遮罩区域像素值全置为0.
  1. dropblock:弥补了drop out会使得特征较为离散的缺点。它随机抑制一块数据。
  1. Mixup:将随机的两个样本随机混合,分类的标签按比例分配。
  1. CutMix:首先随机选取两个样本,将其中一张图片随机切除一块区域,然后该部分区域填充另一张图片。分类标签按比例分配。
  1. Mosaic:这个方法是cutmix方法的一个改进版本。其实用四张图片,对四张图片进行拼接,拼接成一张新的图片。这样能够丰富物体检测的背景。

五、数据预处理

首先我们得弄清楚数据是离散数据还是连续数据。
离散数据:

连续数据:

x_{new} = \frac{x_i - min}{max - min}

x_{new} = (\frac{x_i - min}{max - min} - 0.5)* 2

def norm(a):
    # a是一个二维数组。
    a = np.array(a)
    return (a - a.mean(1, keepdims=True)) / (a.std(1, keepdim=True) + 1e-9)

以上就是数据处理的全部流程啦!

上一篇 下一篇

猜你喜欢

热点阅读