机器学习中以数据为中心的方法与以模型为中心的方法的比较

579 阅读16分钟

代码和数据是人工智能系统的基础。这两个部分都在开发一个强大的模型中发挥着重要作用,但你应该更关注哪一个?在这篇文章中,我们将通过 以数据为中心与以模型为中心的 方法,看看哪一个更好,我们也会谈论如何采用以数据为中心的基础设施。

以模型为中心的方法

以模型为中心的方法意味着发展实验研究以提高毫升模型的性能。这涉及到从广泛的可能性中选择最佳的模型架构和训练过程**。**

  • 在这种方法中,你保持数据不变,并改进代码或模型结构。
  • 在代码上下功夫是这种方法的核心目标。

AI世界中以模型为中心的趋势

目前,大多数人工智能应用都是以模型为中心的,这背后的一个可能的原因是,人工智能领域对模型的学术研究给予了认真关注。根据Andrew Ng的说法,该领域90%以上的研究论文是以模型为中心的。这是因为很难创建能够成为普遍认可的标准的大型数据集。因此,人工智能社区认为,以模型为中心的机器学习更有前途。在关注代码的同时,数据经常被忽视,数据收集被视为一次性的事件。

以数据为中心的方法

在一个数据成为每个决策过程核心的时代,以数据为中心的公司可以通过使用其运营中产生的信息,更好地将其战略与利益相关者的利益结合起来。这种方式的结果可以更准确、更有组织、更透明,可以帮助一个组织更顺利地运行。

  • 这种方法涉及系统地改变/改进数据集,以提高你的ML应用的准确性。
  • 在数据上下功夫是这种方法的核心目标。

数据驱动的/以数据为中心的难题

data centric ML

数据驱动与以数据为中心 来源

许多人经常在以数据为中心的方法和数据驱动的方法之间感到困惑。数据驱动的方法是一种收集、分析和从数据中提取洞察力的方法。它有时被称为 "分析学"。另一方面,以数据为中心的方法是围绕使用数据来定义你应该首先创建什么。

  • 以数据为中心的架构指的是一个系统,其中数据是主要的和永久的资产,而应用则是变化的。
  • 数据驱动的架构意味着通过摄取大量的数据来创建技术、技能和环境。

现在让我们来谈谈以数据为中心的方法与以模型为中心的方法有什么不同,以及首先需要它的原因。

以数据为中心的方法VS以模型为中心的方法

对于数据科学家和机器学习工程师来说,以模型为中心的方法可能看起来更令人愉快。这是可以理解的,因为从业者可能会使用他们的知识来解决一个特定的问题。另一方面,没有人愿意花一整天的时间来标记数据,因为这被认为是一次性的工作。

然而,在今天的机器学习中,数据是至关重要的,然而在人工智能计划中,它经常被忽视和处理不当。结果是,在错误的数据基础上,浪费了数百个小时来微调一个模型。这很可能是你的模型准确性较低的根本原因,而这与模型优化无关。

你不必完全以数据为中心,有时关注模型和代码也很重要。做研究和改进模型很好,但数据也很重要。我们往往在关注模型的同时忽略了数据的重要性。最好的方法是采用一种混合的方法,同时关注数据和模型。根据你的应用,你可以多关注数据,少关注模型,但两者都应该被考虑到。

需要一个以数据为中心的基础设施

以模型为中心的ML指的是主要关注优化模型架构及其参数的机器学习系统。

data centric ML

以模型为中心的ML应用|来源:中国经济网。作者

上图中描述的以模型为中心的工作流程适用于少数行业,如媒体和广告业,但考虑到医疗保健或制造业。他们可能会面临这样的挑战。

1.需要高水平的定制

与媒体和广告业不同,拥有多种商品的制造企业不能使用单一的机器学习系统来检测其所有产品的生产故障。相反,每个制造产品都需要一个独特的训练有素的ML模型。

虽然媒体公司可以负担得起整个ML部门在每一个小的优化问题上的工作,但一个需要几个ML解决方案的制造企业在规模上不能遵循这样的模板。

2.大数据集的重要性

在大多数情况下,公司没有大量的数据点可以处理。相反,他们往往被迫处理微小的数据集,如果他们的方法是以模型为中心,就容易出现令人失望的结果。

安德鲁-吴 解释 他认为以数据为中心的ML更有价值,并在他的AI演讲中倡导社区向以数据为中心的革命。 他举了一个钢铁缺陷检测问题报表的例子,以模型为中心的方法未能提高模型的准确性,而以数据为中心的方法则将准确性提高了16%。

数据在人工智能研究中极为重要,采取优先获得高质量数据的策略至关重要--毕竟,相关数据不仅稀少、嘈杂,而且获取成本极高。这个想法是,对待人工智能的方式应该与我们在建造房屋时关心最大的材料一样。应该在每个层面上对它们进行评估,而不是作为一次性的事件。

data centric ML

以数据为中心的ML应用|来源:中国新闻网作者

采用以数据为中心的基础设施

在实施以数据为中心的架构时,将数据视为一种基本资产,它将超越应用程序和基础设施。这种方法不需要单一的数据库或数据存储库,而是需要对数据进行统一描述的共享理解。以数据为中心的ML使数据共享和移动变得简单。

那么,以数据为中心的机器学习究竟涉及什么?在实施以数据为中心的方法时,你应该考虑哪些基本因素?

1.数据标签质量

数据标签是为数据分配一个或多个标签的过程。标签与应用于数据的特定值有关。当大量的图像被错误地贴上标签时,其结果要比使用较少但准确的图像时低。

标签提供了关于数据集的内容和结构的详细信息,其中可能包括诸如数据集中代表什么数据类型、测量单位和时间段等组成部分。提高标签质量的最佳方法是找到标签中的不一致之处,并在标签说明上下功夫。在本文的后面,我们将进一步了解数据质量的重要性。

2.数据扩增

数据扩增是一项数据分析任务,涉及通过插值、外推或其他方式创建数据点。它可以用来为机器学习引入更多的训练数据,也可以用来制作具有不同程度真实性的合成图像或视频帧。它有助于提高相关数据点的数量,例如通过创建你的模型在整个训练期间还没有看到的数据,来提高有缺陷的生产组件的数量。

然而,增加数据并不总是最好的选择。摆脱导致高方差的噪声观测,可以提高模型对新数据的归纳能力。

3.特征工程

特征工程是通过改变输入数据、先验知识或算法向模型添加特征的过程。它被用于机器学习,以帮助提高预测模型的准确性。

提高数据质量包括改进输入数据和目标/标签。特征工程对于增加那些可能不以原始形式存在但能产生重大影响的特征至关重要。

4.4.数据版本化

在任何软件应用中,数据版本都起着重要作用。作为一个开发者,你想通过比较两个版本来追踪bug,看到一些没有意义的东西了。或者你本可以通过再次部署那个特定的版本来防止这个错误。管理数据集的访问,以及每个数据集在整个时间内的许多版本,是很困难的,而且容易出错。数据版本管理是维护数据最不可或缺的步骤之一--它能帮助你跟踪数据集的变化(包括添加和删除)。版本化使得代码协作和管理数据集变得容易。

版本化也使得管理ML管道从概念验证到生产变得容易,这时MLOps工具就能发挥作用了。你可能想知道为什么MLOps工具会在 "数据版本管理 "的背景下被讨论。这是因为在机器学习应用的开发过程中,管理数据管道是一项明显困难的任务。版本化可以确保可重复性和可靠性。下面是几个最好的数据版本管理平台。

a)Neptune

Neptune是一个针对MLOps的元数据存储,为研究和生产团队开发。它为你提供了一个中央枢纽来记录、存储、显示、组织、比较和查询机器学习生命周期中产生的所有元数据。在数据版本管理方面,使用Neptune,你可以。

  • 在你的模型训练运行中用工件跟踪数据集的版本。
  • 从以前的运行中查询数据集版本,以确保你是在同一个数据集版本上训练。
  • 在Neptune用户界面中组织数据集版本元数据。

👉参见代码示例,了解更多关于Neptune数据版本的信息。

b)权重和偏倚

Weights & Biases(WandB)是一个平台,为研究人员和深度学习团队提供机器学习工具。WandB帮助你进行实验跟踪、数据集版本管理和模型管理。通过WandB,你可以:

  • 使用Artifacts进行数据集版本管理、模型版本管理,以及跟踪整个机器学习管道的依赖关系和结果。
  • 你可以直接在工件中存储完整的数据集,或者使用工件引用来指向其他系统中的数据,如S3、GCP或你的本地机器上。

👉参见代码示例,了解更多关于WandB数据版本的信息。

c)数据版本控制(DVC)

DVC是一个机器学习项目的开源平台。DVC帮助数据科学家和开发者进行数据版本管理、工作流管理和实验管理。DVC让你。

  • Git提交中捕获你的数据和模型的版本,同时将它们存储在企业内部或云存储中。
  • 在不同的数据内容之间切换。
  • 生成元文件,描述哪些数据集、ML工件需要跟踪。

👉参见代码示例,了解更多关于DVC数据和模型的版本管理

5.领域知识

在以数据为中心的方法中,领域知识是非常有价值的。主题专家通常可以检测到ML工程师、数据科学家和标签人员无法检测到的微小差异。在ML系统中仍然缺少领域专家的参与。如果有额外的领域知识,ML系统可能会表现得更好。

以数据为中心的方法的好处

变得更加以数据为中心的好处很多,从提高报告速度和准确性到更好的知情决策。以数据为中心的基础设施有很多好处。

  • 提高准确性,将数据作为一种战略资产有效地保证了更精确的估计、观察和决策。
  • 消除了复杂的数据转换。
  • 减少数据错误和不一致的情况。
  • 提供对内部和外部趋势的宝贵见解,帮助你做出更好的决策。
  • 减少开支。
  • 使关键利益相关者更容易获得数据。
  • 减少数据冗余。
  • 提高数据质量和可靠性。

哪一个要优先考虑:数据数量还是数据质量?

在进一步讨论之前,我想强调的是,更多的数据并不自动等于更好的数据。当然,一个神经网络不可能用几张图片来训练,但现在强调的是质量而不是数量。

数据数量

它指的是可获得的数据量。主要目标是收集尽可能多的数据,然后训练一个神经网络来学习映射关系。

data centric ML

数据 | 数据来源 (图片由作者提供)

从上面的图中可以看出,大多数Kaggle数据集并没有那么大。在以数据为中心的方法中,数据集的大小并不那么重要,用一个小的高质量数据集可以做很多事情。

数据质量

数据质量,顾名思义,就是关于质量。如果你没有数以百万计的数据集,那也没有什么区别;重要的是,这些数据集的质量要高,而且要有正确的标签。

data centric ML

绘制边界框的不同方法 | 来源:灵感来自于 安德鲁-吴灵感来自于,作者的图片

在上面的图形中,你可以看到不同的数据标注方式;独立标注或合并标注都没有错。例如,如果数据科学家1单独标注菠萝,但数据科学家2却将其合并标注,那么数据将不兼容,导致学习算法越来越混乱。主要目标是保持标签的一致性;如果你是独立标注,请确保所有的标签都以相同的方式标注。

数据注释的一致性是至关重要的,因为任何差异都可能使模型脱轨,使你的评估不准确。因此,你需要仔细定义注释准则,以确保ML工程师和数据科学家对数据进行一致的标注。 根据 s耳朵,在经常使用的数据集中,大约有3.4%的样本被误标,其中大型模型受到的影响最大。

data centric ML

小数据集中一致性的重要性 |来源

在上面的图片中,Andrew Ng解释了小数据集中一致性的重要性。上图说明了无人机的电压和速度之间的关系。如果你有小的数据集但有一致的标签,你可以自信地拟合曲线并获得更高的准确性。

一个低质量的数据意味着缺陷和不准确的地方可以无限期地被发现而不产生任何后果。 **模型的准确性取决于你的数据质量;**如果你想做出好的决定,那么你需要准确的信息。属性差的数据有可能包含错误和异常,这在使用预测分析和建模技术时可能是非常昂贵的。

当涉及到数据时,多少才算多?

你拥有的数据量是至关重要的;你必须有足够的数据来解决你的问题。深度网络是低偏差、高变异的计算机,我们认为解决变异问题的方法是更多的数据。但是,多少数据才算足够?这是个比你想象的更难回答的问题。Yolov5建议:

  • 每类至少1.5千张图片
  • 每类至少有10k个实例(标记的对象)。

拥有大量的数据是一种好处,而不是必须的。

以数据为中心的方法的最佳实践

如果你采用以数据为中心的方法,请牢记这些事情。

  • 确保整个ML项目生命周期内高质量的数据一致性。
  • 使标签一致。
  • 使用生产数据来获得及时的反馈。
  • 使用误差分析来关注数据的一个子集。
  • 消除嘈杂的样本;如上所述,更多的数据并不总是更好。

哪里可以找到好的数据集?

获得高质量的数据集是一项重要的任务。因此,这里有几个网站,你可以免费获得这种数据集。

Kaggle

data centric ML

第一个网站在数据科学界是众所周知的。在Kaggle里面,你会发现你需要的所有代码和数据,以完成你的数据科学工作。它有超过5万个公共数据集和40万个公共笔记本,可以快速完成任何分析。

Datahub.io

data centric ML

Datahub是一个数据集平台,主要专注于商业和金融。许多数据集,如国家、人口和地理边界的清单,目前都可以在DataHub上找到,还有许多正在开发。

Graviti开放数据集

data centric ML

Graviti是一个新的数据平台,主要为计算机视觉提供高质量的数据集。个人开发者或组织可以轻松地访问、分享和更好地管理大量的开放数据。

总结

在这篇文章中,我们了解到以数据为中心的方法与以模型为中心的方法有什么不同,以及如何使你的机器学习应用更加以数据为中心。我们不必把自己限制在一个方向上,代码和数据都在人工智能的旅程中发挥着重要作用。在以模型为中心和以数据为中心的方法之间的选择没有硬性规定,但数据集的稳健性不应该被忽视。

希望你喜欢这篇文章,继续实验吧