图像数据不足的常用操作
做 AI 研究就像造宇宙飞船,除了充足的燃料之外,强劲的引擎也是必不可少的。假如燃料不足,则飞船就无法进入预定轨道。而引擎不够强劲,飞船甚至不能升空。类比于 AI,深度学习模型就好像引擎,海量的训练数据就好像燃料,这两者对于 AI 而言同样缺一不可。这是大V吴恩达曾说过的一段话,突出了数据和模型对于AI研究的重要性。
伴随着机器学习,深度学习技术在各领域的广泛应用和流行,训练模型所需要的海量数据难以获取成为了该技术进一步发展的一个 普遍性的难题。。比如图像分类,作为计算机视觉最基本的任务之一,其目标是将每幅图像划分到指 定类别集合中的一个或多个类别中。当训练一个图像分类模型时,如果训练样本 比较少,该如何处理呢?这篇文章将要介绍针对图像数据不足是常用到的方法。
下图说明了随着模型复杂度的提高,其参数个数和所需数据量也越来越大。
模型需要的训练数据量和模型规模之间存在一个有趣的线性正相关关系。其中的一个基本原理是,模型的规模应该足够大,这样才能充分捕捉数据间不同部分的联系(例如图像中的纹理和形状,文本中的语法和语音中的音素)和待解决问题的细节信息(例如分类的数量)。模型前端的层次通常用来捕获输入数据的高级联系(例如图像边缘和主体等)。模型后端的层次通常用来捕获有助于做出最终决定的信息(通常是用来区分目标输出的细节信息)。因此,待解决的问题的复杂度越高(如图像分类等),则参数的个数和所需的训练数据量也越大。
一个模型所能提供的信息一般来源于两个方面,一是训练数据中蕴含的信 息;二是在模型的形成过程中(包括构造、学习、推理等),人们提供的先验信息。
当训练数据不足时,说明模型从原始数据中获取的信息比较少,这种情况下要想保证模型的效果,就需要更多先验信息。先验信息可以作用在模型上,例如让模型采用特定的内在结构、条件假设或添加其他一些约束条件;先验信息也可以直接施加在数据集上,即根据特定的先验假设去调整、变换或扩展训练数据, 让其展现出更多的、更有用的信息,以利于后续模型的训练和学习。
具体到图像分类任务上,训练数据不足带来的问题主要表现在过拟合方面,即模型在训练样本上的效果可能不错,但在测试集上的泛化效果不佳。
根据上述讨论,对应的处理方法大致也可以分两类:
一是基于模型的方法,主要是采用降低过拟合风险的措施,
(1)简化模型(如将非线性模型简化为线性模型)。
(2)添加约束项以缩小假设空间(如L1/L2正则项)。 数据量比较小会导致模型过拟合,使得训练误差很小而测试误差特别大。通过在Loss Function后面加上正则项可以抑制过拟合的产生。
(3)迁移学习。其基本思路是利用预训练模型,即已经通过现成的数据集训练好的模型,经过一定的修改和完善,就可以在类似的领域得到复用,这一点大大缓解了数据源不足引起的问题
(4)Dropout超参数等。 这也是一种正则化手段,使用dropout,将神经网络某一层的输出节点数据随机丢弃,从而减少特征量。这其实相当于创造了很多新的随机样本。我们可以理解为这是对特征的一次采样。一般在神经网络的全连接层使用dropout。
二是基于数据的方法,主要通过数据扩充(Data Augmentation),即根据一些先验知 识,在保持特定信息的前提下,对原始数据进行适当变换以达到扩充数据集的效果。具体到图像分类任务中,在保持图像类别不变的前提下,可以对训练集中的 每幅图像进行以下变换。
(1)一定程度内的随机旋转、平移、缩放、裁剪、填充、左右翻转等,这些 变换对应着同一个目标在不同角度的观察结果。
(2)对图像中的像素添加噪声扰动,比如椒盐噪声、高斯白噪声等。
(3)颜色变换。例如,在图像的RGB颜色空间上进行主成分分析,得到3个 主成分的特征向量p1,p2,p3及其对应的特征值 λ1,λ2,λ3,然后在每个像素的RGB值上添加增量[p1,p2,p3]•[α1λ1,α2λ2,α3λ3]T,其中 α1,α2,α3是均值为0、方差较小的高斯分布随机数。
(4)改变图像的亮度、清晰度、对比度、锐度等。
下图为图像数据扩充样例。
除了直接在图像空间进行变换,还可以先对图像进行特征提取,然后在图像 的特征空间内进行变换,利用一些通用的数据扩充或上采样技术,例如 SMOTE(Synthetic Minority Over-sampling Technique)算法。
抛开上述这些启发式 的变换方法,使用生成模型也可以合成一些新样本,例如当今非常流行的生成式对抗网络模型。
- 点赞
- 收藏
- 关注作者
评论(0)