当前位置: 首页 > 科技观察

机器学习从业者面临的8个挑战

时间:2023-03-16 23:21:55 科技观察

许多人在赶上机器学习(ML)或人工智能(AI)时会想象机器人或终结者。然而,它们不是电影中没有的东西,只是美好的梦想。已经在这里尽管ML从业者在从零开始开发应用程序到生产应用程序的过程中可能会面临某些挑战,但我们处于机器学习用于开发大量优秀应用程序的情况。这些挑战是什么?让我们找出答案!1.数据收集在任何用例中,数据都起着关键作用。数据科学家60%的工作是收集数据。对于尝试机器学习的初学者,他们可以轻松地从Kaggle、UCIMLRepository等中找到数据。要实现一个真实的案例,您需要通过网络抓取或(通过Twitter之类的API)收集数据,或者解决您需要的业务问题从客户端获取数据(这里ML工程师需要与领域专家合作收集数据)。收集完数据后,我们需要对数据进行结构化存储到数据库中。这需要大数据(或数据工程)的知识,而大数据在这里起着主要作用。2.训练数据量小。收集完数据后,需要验证量是否足够用例(如果是时间序列数据,我们至少需要3-5年的数据)。在进行机器学习项目时,我们要做的两件重要事情是选择学习算法并使用一些获取的数据来训练模型。所以,作为人类,我们自然会犯错误,结果可能是错误的。在这里,错误可能是选择了错误的模型或选择了错误的数据。现在,坏数据是什么意思?让我们试着去理解。假设您的机器学习模型是婴儿,您打算教婴儿区分猫和狗。所以我们首先指着猫说“这是猫”,然后对狗做同样的事情(可能重复这个过程很多次)。现在孩子将能够通过识别形状、颜色或任何其他特征来区分猫和狗。就这样,宝宝变成了天才(不同)!以类似的方式,我们使用大量数据训练模型。一个孩子可以用少量样本区分动物,但机器学习模型即使是简单的问题也需要数千个样本。对于图像分类和语音识别等复杂问题,可能需要数百万个数据集。所以有一件事很清楚。我们需要用足够的数据训练一个模型。3.Non-representativetrainingdata训练数据应该能代表新案例,以便更好地概括,即我们用于训练的数据应该涵盖所有正在发生和即将发生的案例。通过使用非代表性训练集,经过训练的模型不太可能做出准确的预测。为从业务问题的角度进行一般预测而开发的系统被认为是良好的机器学习模型。即使数据模型从未见过的数据也会帮助模型表现良好。如果训练样本数量少,我们的采样噪声是不具有代表性的数据,如果训练使用的策略有缺陷,那么无数的训练测试也会引入采样偏差。1936年美国总统大选(兰登vs.罗斯福)期间,一个流行的调查抽样偏差案例发生在《文学文摘》进行了一次非常大的民意调查,向大约1000万人发送邮件,其中240万人回答了一个问题,并预测兰登将有很高的信心获得57%的选票。罗斯福以62%的选票获胜。这里的问题是用于获取进行民意调查的电子邮件地址的抽样方法,使用的杂志订阅《文学文摘》,俱乐部会员名单等,有钱人必然会用来投票给共和党人的钱(因此,下降存在).此外,由于只有25%的受访者回答了不答复偏差。为了做出准确的预测而没有任何漂移,训练数据集必须具有代表性。4.数据质量差其实我们不会直接开始训练模型,分析数据才是最重要的一步。但是我们收集的数据可能还没有准备好用于训练,例如,一些样本是异常的,而另一些样本有异常值或缺失值。在这些情况下,我们可以去除异常值,或者用中值或平均值填充缺失的特征/值(以填充高度),或者简单地去除具有缺失值的属性/实例,或者有或没有此类实例的情况来训练模型。我们不希望我们的系统做出错误的预测,对吧?因此,数据质量对于获得准确的结果非常重要。数据预处理需要通过过滤缺失值、提取和重新排列模型所需的内容来完成。5.Irrelevant/UnwantedFeaturesGarbageInGarbageOut如果训练数据包含大量不相关的特征和足够多的相关特征,机器学习系统将不会给出预期的结果。机器学习项目成功所需的重要方面之一是选择好的特征来训练模型,也称为特征选择。假设我们正在开展一个项目,根据我们收集的输入特征(年龄、性别、体重、身高和位置(即他/她居住的地方))预测一个人需要锻炼的小时数。在这5个特征中,位置值可能不会影响我们的输出特征。这是一个无关紧要的特征,我们知道没有它可以获得更好的结果。或者,我们可以将两个特征组合起来产生一个更有用的特征,即特征提取。在我们的示例中,我们可以通过消除体重和身高来产生称为BMI的特征。我们还可以将转换应用于数据集。通过收集更多数据创建新功能也有帮助。6.过度拟合训练数据假设你去一个新城市的一家餐馆。您查看菜单点菜时发现收费或账单太高。你可能会想说“城里所有的餐馆都太贵了,买不起”。过度概括是我们一直在做的事情,令人震惊的是,框架可能会陷入类似的陷阱,在AI中我们称之为过度拟合。>过度拟合这意味着该模型可以很好地对训练数据集进行预测,但不能很好地泛化。假设您正在尝试实现一个“图像分类”模型,以分别使用3000、500、500和500个训练样本对苹果、桃子、橙子和香蕉进行分类。如果我们用这些例子训练模型,系统更有可能将橙子分类为苹果,因为苹果的训练例子太多了。这可以称为过采样。当模型与训练数据集的噪音相比太不可预测时,就会发生过度拟合。我们可以通过以下方式避免这种情况:收集更多的训练数据。选择特征较少的模型,与线性模型相比,高阶多项式模型不是首选。修复数据错误、移除异常值并减少训练集中的实例数量。7.训练数据不足欠拟合,与过拟合相反,通常发生在模型过于简单而无法理解数据的底层结构时。这就像尝试穿小号裤子一样。通常,当我们缺乏构建准确模型的信息,或者当我们尝试使用非线性信息来构建或开发线性模型时,就会发生这种情况。>欠拟合减少欠拟合的主要选项有:特征工程——为学习算法提供更好的特征。从数据中去除噪音。增加参数并选择功能强大的模型。8.离线学习和部署模型机器学习工程在构建应用程序时遵循以下步骤:1)数据收集2)数据清洗3)特征工程4)分析模式5)训练模型和优化6)部署。哎呀!我说部署了吗?是的,许多机器学习从业者可以完成所有步骤,但缺乏部署技能,缺乏实践和依赖性问题,对底层业务模型的理解不足,无法将他们出色的应用程序投入生产模型不稳定性已成为最大的挑战之一了解业务问题。通常,许多开发人员从Kaggle等网站收集数据并开始训练模型。但在现实中,我们需要为数据收集提供一个动态变化的来源。此类可变数据不能使用离线学习或批量学习。系统经过培训,然后投入生产,无需学习即可运行。数据可能会因动态变化而漂移。>在线学习始终从构建管道开始,以收集、分析、构建/训练、测试和验证任何机器学习项目的数据集,并批量训练模型。结论如果训练集太小,或者数据没有泛化,有噪声并且有不相关的特征,系统将无法很好地工作。在练习机器学习时,我们经历了初学者面临的一些基本挑战。如果您有任何建议,我很乐意听取。我很快会提出另一个有趣的话题。在那之前,待在家里,保持安全并继续探索!