做机器学习专案 资料却不够?这里有5个不错的解决办法
【IT168 技术】许多开展人工智能专案的公司都具有出色的业务理念,但是当企业AI团队发现自己没有足够多的资料时,就会慢慢变得十分沮丧......不过,这个问题的解决方案还是有的。 本文将简要介绍其中一些经笔者实践证明确实有效的办法。
资料稀缺的问题非常重要,因为资料是任何AI专案的核心,资料集的大小往往是影响专案表现优劣的一个重要因素。大多数情况下,与资料相关的问题,往往都是无法做出优秀人工智能专案的主要原因。
有监督的机器学习模型正广泛用于应对各种业务挑战。但是这些模型需要大量资料,其效能也在很大程度上取决于训练资料的多少。但是在许多情况下,AI团队很难建立足够大的训练资料集。
同时还有另一个问题,那就是专案分析师可能会低估处理常见业务问题所需的资料量。在为大公司工作时,收集资料会更加复杂。
Photo by rawpixel.com from Pexels
我需要多少资料?
在许多情况下,你需要大约10倍的资料,因为模型中有自由度。模型越复杂,就越容易过度拟合,但可以通过模型校验来避免。 不过,根据用例的实际情况,所需的资料可以适当减少。
还有必要讨论一下的是,如何处理缺失值的问题。特别是如果资料中缺失值的数量足够大(超过5%)。
值得一提的是,处理缺失值依赖某些既定的“成功”标准。此外,这些标准对于不同的资料集甚至对于不同的应用也是不同的,例如识别、分割、预测和分类(给定相同的资料集)。
选择什么样的解决方案取决于问题的型别——如时间序列分析,ML,回归等。
涉及到预测技术时,只有当缺失值不是完全随机观察到的时候才应该进行使用,并且需要选择变数来估算这些缺失值与它有某种关系,否则可能产生不精确的估计。
一般来说,可以使用不同的机器学习算法来确定缺失值。可以将缺少的特征转换为标签本身,然后再使用没有缺失值的列来预测具有缺失值的列。
根据笔者的经验,如果你决定构建一个基于AI的解决方案,那么在某些时候你将面临缺乏资料或缺少资料的问题, 但幸运的是,有很多方法可以将这个“负”变为“正”。
缺少资料?
如上所述,不可能精确估计AI专案所需的最小资料量,专案本身将显著影响你需要的资料量的多少。例如,文字、影象和视讯通常需要更多资料。但是,为了做出准确的估计,还应考虑许多其他因素。
·要预测的类别数量
模型的预期输出是什么?基本上来说,数量或类别越少越好。
·模型效能
如果你计划将专案投入生产,则需要更多。 一个小资料集,用于概念验证可能足够了,但在生产中,你需要更多资料。
一般来说,小型资料集需要低复杂度(或高偏差)的模型,以避免模型对资料的过度拟合。
非技术解决方案
在探究技术解决方案之前,让我们分析一下可以通过哪些方法来增强资料集。这可能是一句废话,但在开始AI专案之前,需要通过开发外部和内部工具尽可能多地收集资料。如果你知道机器学习算法预期要执行的任务,那就可以提前建立资料收集机制。
另外在启动ML专案时,你也可以借助开源资料。网络上有很多可用于ML的资料,其所属公司已经准备好将其弃用。
如果你需要专案的外部资料,与其他组织建立合作伙伴关系以获取相关资料的办法可能会有用。形成合作关系显然会花费你一些时间,但获得的专有资料将为你提供天然的竞争力。
构建一个有用的应用程序,别管这个应用,只用资料
笔者在之前的专案中使用的另一种方法是向客户提供对云应用程序的访问许可权,进入应用的资料可用于构建机器学习模型。笔者以前的客户为医院建立了一个应用程序并供其免费使用。我们收集了大量资料,并设法为我们的ML解决方案建立了一个独特的资料集。
·小资料集
根据笔者的经验,使用小资料集构建预测模型的一些常用方法有:
通常,机器学习算法越简单,就越能从小资料集中学习。从ML的角度来看,小资料需要具有低复杂度(或高偏差)的模型,以避免将模型过度拟合到资料。朴素贝叶斯算法是最简单的分类器之一,因此从相对较小的资料集中学习得非常好。
你还可以依赖其他线性模型和决策树。实际上,它们在小资料集上的表现也相对较好。基本上,简单模型能够比更复杂的模型(神经网络)更好地从小资料集中学习,因为它们本质上是在努力实现更少的学习。
对于非常小的资料集,贝叶斯方法通常是类中最好的,尽管结果可能对您的先验选择很敏感。笔者认为朴素贝叶斯分类器和岭回归是最好的预测模型。
对于小资料集,你需要具有少量引数(低复杂性)和/或强先验的模型。你还可以将“先验”解释为你可以对资料行为方式做出的假设。
根据业务问题的确切性质和资料集的大小,确实存在许多其他解决方案。
迁移学习
定义: 在构建机器学习模型时,利用现有相关资料或模型的框架。
迁移学习使用从学习任务中获得的知识来改进相关任务的效能,通常可以减少所需的训练资料量。
迁移学习技术很有用,因为它们允许模型使用从另一个数据集或现有机器学习模型(称为源域)获得的知识对新域或任务(目标域)进行预测。
当您没有足够的目标训练资料时,应考虑使用迁移学习技术,源域和目标域有一些相似之处,但不尽相同。
单纯地聚合模型或不同的资料集并不总是有效的,如果现有资料集与目标资料非常不同,则新的学习模型可能会受到现有资料或模型的负面影响。
当你有其他可用于推断知识的资料集时,迁移学习效果很好,但是如果你根本没有资料,这时该怎么办?此时,资料生成可以提供很大的帮助。当没有资料可用,或者你需要建立的资料超过你通过聚合收集到的资料时,可以使用这一方法。
简单来说,该方法需要修改现存的少量资料,以建立该资料的变体,进而训练模型。例如,可以通过裁剪和缩小某一个汽车影象,来生成更多的汽车影象。
缺乏高质量的标签资料也是资料科学团队面临的最大挑战之一,通过使用迁移学习和资料生成等技术,可以在一定程度上克服资料稀缺问题。
迁移学习的另一个常见应用是在跨客户资料集上训练模型,以克服冷启动问题。笔者注意到许多SaaS公司在将新客户加入他们的ML产品中时,经常需要处理这个问题。实际上,在新客户收集到足够的资料以实现良好的模型效能(可能需要几个月)之前,很难提供有效的价值。
资料扩充
资料扩充表示增加资料点的数量。在笔者的最新专案中,我们使用资料扩充技术来增加资料集中的影象数量。就传统的行/列格式资料而言,这意味着增加行或物件的数量。
我们别无选择,只能依靠资料扩充,原因有两个:时间和准确性。每个资料收集过程都与成本相关联,这个成本可以是美元、人力、计算资源,当然也可以是过程中消耗的时间。
因此,我们不得不扩充现有资料,以增加我们提供给ML分类器的资料大小,并补偿进一步资料收集所产生的成本。
有很多方法可以扩充资料。仍然是汽车影象的例子,你可以旋转原始影象,更改光照条件,以不同方式裁剪。因此对于一个影象,你可以生成不同的子样本。 这样,你就可以减少对分类器的过度拟合。
但是,如果你使用过取样方法(如SMOTE)生成人工资料,那么很可能会引发过度拟合。
在开发AI解决方案时,你必须考虑这一点。
合成数据
合成数据是指包含与“真实”对应物相同模式和统计属性的虚假资料。基本上,这些资料看起来非常真实,几乎看不出来它是假资料。
那么,合成数据的意义是什么呢?如果我们已经获得了真实的资料,为什么又要做这件事?
在某些情况下,特别是当我们处理私人资料(银行,医疗保健等)时,使用合成数据其实是一种更安全的开发方法。
合成数据主要用于没有足够的实际资料,或者没有足够的实际资料用于特定的模式。对于训练和测试资料集,它的用法基本相同。
合成少数类过取样技术(SMOTE)和Modified-SMOTE是生成合成资料的两种技术。简单地说,SMOTE采用少数类资料点并建立位于由直线连线的任何两个最近资料点之间的新资料点。
该算法计算特征空间中两个资料点之间的距离,将距离乘以0到1之间的一个随机数,并将新资料点放在距离计算所用资料点之一的新距离上。
为了生成合成资料,你必须使用一个训练集来定义一个模型,这需要进行验证,然后通过更改感兴趣的引数,你就可以通过模拟生成合成资料。域/资料的型别非常重要,因为它影响整个流程的复杂性。
在笔者看来,在开始做一个AI专案时,问问自己是否有足够的资料,可能会揭示你以前也许从未意识到的问题,这有助于揭露你认为完美的业务流程中的问题,并让你了解为什么这个问题是在企业中建立成功资料战略的关键所在。
原文作者:Alexandre Gonfalonieri