Press "Enter" to skip to content

如何设计机器学习项目的路线图

图片来源:DreamStudio

在开始一个新的机器学习项目时,你会做什么第一件事?

我向各种初创公司的机器学习领导者提出了这个问题,得到了一些不同的答案。没有特定的顺序:

  1. 尝试我们现有的模型,看看是否适用于新的任务。
  2. 开始探索和了解数据。
  3. 查阅研究文献,了解之前的研究工作。

请注意,这些步骤中没有一个是编写和训练新模型。也没有设计数据预处理流程。

每种方法都有其优点。如果新项目与之前建模的某个项目非常相似(包括数据和任务),尝试已经实现的建模方法可能是建立任务基准的非常快速的方法。在这样做的过程中,您还可能发现必须在数据预处理或建模中加以考虑的新挑战。

这可能会带您进入第二步:探索和了解数据。或者您可能已经从这里开始。识别新数据集的独特需求是至关重要的。也许预处理或注释需要以不同的方式处理。也许数据中存在需要清理的痕迹,或者标签并不总是正确的。了解预处理和建模将需要应对的挑战是至关重要的。

但是,一些团队忽视的并且对于确保项目成功而言最关键的一步是文献搜索。是否有其他人在类似的数据上建模了类似的任务?如果您正在处理的数据类型很常见,那么您可能能够应用非常严格的“相似”定义。但是,如果您正在处理新的成像模态,或者正在解决一个新的任务,您可能需要放宽“相似”的定义以找到相关的研究。

我在规划新项目时使用的这三个步骤对于我来说非常重要:机器学习路线图。

当我与客户合作进行新项目时,路线图是第一步。路线图明确了项目的工作范围。它减少了对需要实现的内容的不确定性。它还减少了围绕不成功的方法循环或浪费时间的可能性。在从头开始实施某些内容之前,通过识别现有工具包,节省时间和金钱。同时,它也增加了项目成功的可能性。

ML路线图中包含了哪些内容?让我为您介绍核心组成部分。

1)定义问题

首先清楚地定义您想用机器学习解决的问题。顺便说一句,退一步考虑一下,机器学习是否是解决您的问题的正确工具。这为整个项目奠定了基础,并有助于确保项目能够产生预期的结果。

定义问题包括确定业务问题、需要收集的数据以及目标变量。明确的问题定义和明确定义的目标将帮助您避免不必要的试验,并专注于问题的最重要方面。

确定成功标准是关键。这可以包括评估指标,但更多地是关于预期用例。

一些需要考虑的事项:

  • 您的解决方案是否相关?它能否以一种解决当前瓶颈或痛点的方式融入当前的工作流程中?
  • 为了改进当前过程,它需要多精确?
  • 模型需要能够推广到哪些场景?这可能包括不同的成像设备、患者群体或光照条件。
  • 模型需要多可解释?了解模型的工作原理使得更容易识别改进的领域。但在建立信任或获得监管批准方面也可能很重要。
  • 模型部署后是否会存在计算限制?事先了解任何处理或内存限制可以缩小可能的方法范围。

通过花时间在前期定义问题,您为一个能够产生预期结果的成功的机器学习项目打下了基础。

研究相关工作是任何机器学习项目中的关键步骤。它帮助您找到解决类似问题的现有解决方案,并了解该领域的最新技术。

您可以通过进行文献综述来开始。这包括阅读研究论文、会议论文和其他相关领域的文献。

记录您所阅读的来源以及每个来源的关键发现是非常重要的。这有助于组织您的思路,并识别现有解决方案中的模式和差距。

  • 他们使用了什么类型的数据?
  • 有多少患者、图像等?
  • 他们如何注释和结构化他们的训练数据?
  • 他们使用了什么模型架构?
  • 他们如何训练他们的模型?
  • 他们遇到了什么挑战?
  • 图像或标签的质量或数量是否存在任何问题?
  • 他们如何收集独立的验证数据?

在开始构建自己的解决方案之前,了解这些都是很重要的方面。

研究相关工作还可以帮助您识别现有的代码库、数据集或预训练模型,从而启动项目,节省时间和资源。

3) 理解数据

理解数据是开始任何机器学习项目的关键步骤。这是因为数据的质量和相关性对机器学习模型的性能有重要影响。

对于某些项目,数据可能已经被收集。对于其他项目,需要首先定义和执行数据收集过程。您的文献综述可能会帮助您指导应该收集什么类型的数据以及您的项目可能需要多少数据。

一旦收集到数据,很可能需要进行注释-这也是您的文献综述可能帮助的任务。

  • 需要什么类型的注释?像素级、块级和图像级是最常见的。
  • 有哪些工具可用于辅助注释?注释可以来自其他模态吗?例如生物样本的分子分析或卫星图像的开放街道地图中的现有注释。
  • 您的注释有多主观?研究或运行自己的实验以评估观察者之间的一致性可以揭示此挑战的程度。

您还需要了解数据的质量。这包括检查数据中的缺失值、异常值和不一致性。这可能包括组织制备的人工痕迹、噪声或模糊等成像缺陷,或者域外情况。通过识别数据质量问题,您可以适当地对其进行预处理和清理,并计划无法事先消除的任何挑战。

数据预处理可能包括归一化、缩放或其他转换操作。对于大图像,通常需要将其分割为小块进行处理。数据和注释必须以对模型训练高效的格式进行存储。

理解数据还有助于识别可能影响模型性能和可靠性的任何偏差。偏差可能是由于特定子组的训练数据不足或虚假相关性所致。批次效应可能是由于不同实验室的处理差异或地理变异等技术变化引起的。甚至可能是由不同注释者标记的样本。

对于大多数应用程序,应该在了解数据时咨询领域专家:

  • 数据是如何收集的?
  • 它代表什么?
  • 在研究数据时关注哪些特征?
  • 在实际使用中可能存在或预期的变化?
  • 可能存在的任何人工痕迹或质量问题可能会使模型产生困惑?

这些方面中的一些可能非常微妙,对于不熟悉特定领域的人来说并不明显。

了解数据的这一关键步骤有助于评估质量和相关性,识别和解决数据偏差,并确定适当的预处理技术。

4) 计划验证

在项目的早期制定验证计划是为了揭示任何意外的挑战。最终模型将被期望在某个真实场景中发挥作用,测试其能力是至关重要的。

首先要考虑的验证设置是将训练数据分割为训练集、验证集和测试集。训练集通常是数据的最大部分,用于训练模型。验证集用于调整模型的超参数,如学习率或正则化强度。测试集用于评估模型的性能,提供对模型在未见数据上的泛化能力的无偏估计。在模型开发过程中,测试集应与训练和验证集完全隔离。

通常,训练、验证和测试集通常是从可用数据中随机抽样的,同时保持所需的类别或目标变量的分布,以避免任何不经意的偏差。当数据由不同组成部分组成时,例如每个患者的多个图像,来自不同医疗中心的样本或来自不同地理区域的图像,需要更仔细地对组进行分层以评估模型的泛化能力。同一组中的所有样本都应归入训练集、验证集或测试集中,并且不得分布在三者之间。

交叉验证技术,例如k折交叉验证或留一法交叉验证,也可以用于通过系统地在训练、验证和测试集之间轮换数据来获得更可靠的性能估计。对于小数据集,这种设置尤为常见。

评估模型性能涉及在训练、验证和测试集上计算一个或多个指标。适用的指标取决于应用程序,但可能包括准确率、敏感性、特异性、F1分数、AUC分数、DICE或其他许多指标。这些指标中的每一个都将模型的预测与实际情况进行比较。

在某些应用中,仅在测试集上计算指标可能足以进行验证。在其他情况下,您所保留的数据部分可能与真实世界场景不够相似。也许您的模型需要在与其训练的地理区域或医疗中心不同的患者上工作,并且您没有可用的带注释的训练数据。您仍然需要在外部队列上验证您的模型,以模拟其在真实世界中的性能和泛化能力。

5) 开发基准模型

经过大量的规划和研究,您终于准备好开始建模了。但我建议您不要从最复杂的深度学习模型开始。从简单的模型开始,先开发一个简单的基准模型。它将使您能够测试数据处理、注释和验证流程,揭示任何意外的挑战。

有许多适合特定项目的算法,选择最佳算法可能具有挑战性。最简单的基准模型可能是基于简单特征构建的线性分类器或回归器。或者可以使用转移学习而无需微调来减少学习特征的时间。此时不需要过多地调整超参数;默认值甚至可能对这一步骤来说已经足够。

开发基准模型有助于建立用于评估未来模型有效性的性能基准。它有助于为您的项目设定现实的性能期望,并使您能够确定需要多少改进才能实现理想的性能水平。

这个基准模型不应被视为最终模型。相反,它应被用作开发更复杂的模型的起点,这些模型可以实现更好的性能。

6) 迭代和改进

迭代对于提高模型的性能至关重要,直到达到所需的准确性水平。

第一步是分析模型的性能。这涉及检查几个不同方面:

  • 审查训练和验证指标,以寻找过拟合或模型收敛问题的迹象。
  • 将验证指标分为不同的子组,以确定改进或可能的偏差区域。
  • 对故障模式进行分类,以找到改进的领域。
  • 与领域专家一起审查结果,以了解对他们来说重要的不足之处。

一旦分析了模型的性能,您需要提出假设,解释为什么模型表现不佳以及如何解决问题。解决方案可能是数据中心化的,例如收集更多数据或更改清理程序,也可能是模型中心化的,例如更改模型架构或超参数。回顾您的文献搜索笔记以获取想法。

下一步是通过实施更改并评估模型在验证数据上的性能来测试您的假设。优先处理对模型最为不利的问题,或者首先解决最容易解决的问题。

迭代和改进机器学习模型是一个持续进行的过程。您需要持续测试和改进模型,直到达到所需的准确性水平。确保这些迭代紧密,以便尽快进行校正,特别是如果修复涉及耗时的数据收集或注释更改。

7) 部署,监控和维护

一旦您有一个符合您期望性能水平的模型,您可以将其部署到生产环境中。这涉及将模型集成到您的应用程序或系统中,并确保其按预期工作。

第一步是确定部署模型的要求。这可能包括性能、可扩展性、安全性和用户界面等因素。您还需要选择一个部署平台;典型的选择包括基于云的服务或本地基础设施。

接下来,将模型打包成可以部署的格式,并测试部署以确保其正常工作。这可能涉及测试模型的性能、可扩展性和安全性。模型部署后,您需要监控其性能并进行必要的调整。

部署机器学习模型是一个持续的过程,您需要不断改进模型,以确保其随着时间的推移仍然有效。

最后,记录对模型或其训练过程所做的任何更改至关重要。这可以确保模型随着时间的推移保持透明和可复现性。

总结

机器学习项目是复杂且迭代的。这个路线图流程使您能够计划项目的每个方面。尽管细节可能会发生变化,整体组件将保持不变。从定义问题到维护您的模型,每个步骤都需要仔细规划。在可能的情况下,您还应考虑您计划的方法可能失败的方面以及应对这些可能失败的解决方案。

Leave a Reply

Your email address will not be published. Required fields are marked *