近来,chatGPT再一次激发了人们对通用人工智能的热情,甚至到了人人都在谈AIGC的地步。然而,大模型对数据丰富性的依赖更加严重,面向机器学习以及深度学习的数据架构又是怎样的呢?
“Garbage in,Garbage out”,数据获取已经成为许多机器学习应用中的关键问题,甚至成为了瓶颈,深度学习的兴起进一步加剧了这一问题。尽管高质量的机器学习模型最终从昂贵的开发和高度专业化的代码过渡到了更像商品的东西,但这些模型涉及数百万甚至数百亿个参数,需要大量数据进行训练。因此,当今机器学习的主导模式是每当面临新任务时就创建一个新的大型数据集。虽然这种方法取得了重大进展,但收集大量高质量的数据集往往需要耗费大量的时间和人力资源。对于某些任务,例如罕见疾病的检测,构建大型数据集几乎是不可行的。
在一个软件系统中,尤其是机器学习驱动的软件系统,如何解决数据匮乏的问题呢?
数据匮乏在机器学习领域普遍存在,在监督式学习中尤为突出,但也适用于无监督的情形。为了简化问题,暂不考虑强化学习,可以从监督,无监督和半监督学习入手。
数据匮乏问题可以分为两大类:一是数据难以获取导致数据缺失,另一类是已有的数据缺乏标签,无法形成高质量的数据。
“知易行难”,每一类问题又是求解的呢?
1.数据缺失
1.1 数据集再利用
数据集再利用是指将预先存在的数据集用于新用途。可能是添加数据的最明显的方法,例如,ImageNet 最初制作并用于分类,但后来被重用于图像生成。
数据重用还包括对现有数据集的转换。例如,考虑修复,即根据周围信息恢复图像丢失部分的过程。修复是使用各种预先存在的数据集完成的。
当然,也有可能重新定义一个没有任何机器学习任务的数据集。
1.2 数据增强
数据增强是生成更多数据的常用方法,它通过对应用的修改人为地使训练集膨胀,最初的目标是防止过载。
数据增强通常采用邻域风险最小化(VRM)。在 VRM 中,需要人类知识来定义训练数据中每个样本周围的邻域,并从这个邻域分布中提取虚拟样本。在CV领域,常见的数据增强是几何变换,比如翻转、裁剪、缩放和旋转等,其思想分类器不变,而改变图像的位置和方向,类似地,光度变换还可以修改颜色通道。
特别是在小型数据集或数据集不平衡的时候,数据增强可以提高泛化能力,可以采用联合训练生成增强模型的方法。除了人类定义的转换,使用预先训练的生成性对抗网络(GAN)也可以来创建新的示例。