机器学习中学习系统的设计2025年6月24日 | 阅读 6 分钟  设计机器学习中的学习系统需要仔细考虑几个关键因素,包括使用的数据类型、期望的结果以及可用的资源。在本文中,我们将探讨设计机器学习学习系统所涉及的关键步骤,并讨论一些需要牢记的最佳实践。 - 设计机器学习学习系统的第一步是确定将使用的数据类型。这可以包括结构化数据,如数值和类别数据,以及非结构化数据,如文本和图像。数据类型将决定可以使用哪种类型的机器学习算法以及所需的预处理步骤。
- 一旦确定了数据,下一步就是确定学习系统的期望结果。这可以包括对数据进行分类、进行预测或识别数据中的模式。期望结果将决定应使用哪种类型的机器学习算法,以及将用于衡量学习系统性能的评估指标。
- 接下来,必须考虑可用于学习系统的资源。这包括可用数据的数量、可用的计算能力以及用于训练模型的时间。这些资源将决定可以使用哪种复杂度的机器学习算法以及可用于训练的数据量。
- 一旦确定了数据、期望结果和资源,就可以选择机器学习算法并开始训练过程。决策树、SVM 和神经网络是常见算法的示例。至关重要的是使用正确的评估指标(例如召回率、准确率和精确率)来评估学习系统的有效性。
- 在训练完学习系统后,通过调整参数和超参数对模型进行微调很重要。这可以使用交叉验证和网格搜索等技术来完成。应在保留的测试集上测试最终模型,以评估其在未见过的数据上的性能。
在构建机器学习系统时,除了这些基本流程之外,还有一些其他建议的实践需要牢记。一个关键因素是确保训练数据能够代表实际世界中将遇到的数据。为此,可以将数据划分为训练集、验证集和测试集。 另一个最佳实践是使用适当的正则化技术来防止过拟合。这可以包括 L1 和 L2 正则化以及 dropout 等技术。使用特征缩放和归一化也很重要,以确保数据格式适合正在使用的机器学习算法。 以下是设计学习系统时需要牢记的质量: 可靠性系统必须能够在给定环境中以适当的性能水平执行正确的任务。测试从数据中学习的 ML 系统的可靠性具有挑战性,因为系统的故障不一定会导致错误;相反,它可能只会产生垃圾结果,这意味着即使系统没有用相应的真实标签进行训练,也生成了一些结果。 当典型系统发生故障时,您会收到一条错误消息,例如 **服务暂时无法使用,我们将尽快恢复。** 当机器学习 (ML) 系统发生故障时,通常是悄无声息的。例如,在英语到印地语或反之的翻译中,即使模型可能没有见过所有单词,它仍然可能提供一个不合逻辑的翻译。 可扩展性必须有实际的方法来应对系统随着变化(就数据量、流量或复杂性而言)的扩展。由于某些关键应用程序可能在一次中断或故障中损失数百万美元或信誉,因此应提供自动化的机制来增加计算和存储容量。 例如,如果电子商务网站上的某个功能在繁忙的日子里未能按计划运行,则可能导致数百万美元的销售损失。 可维护性由于数据分布随时间变化,模型的性能可能会波动。在 ML 系统中,应提供一个机制来首先确定是否存在任何模型漂移或数据漂移,一旦注意到主要漂移,就如何在不干扰 ML 系统当前功能的情况下重新训练/刷新并启用新的 ML 模型。 适应性机器学习 (ML) 系统中最常发生的变化是新数据带有更多特征或业务目标的变化,例如电子商务的转化率与客户参与时间。因此,系统需要能够适应快速升级,而不会造成任何服务中断。 数据- 例如,人的年龄和身高有期望值范围,但不能太大,例如年龄 150+,身高 - 10 英尺等。特征期望值记录在模式中 - 特征值的范围被仔细捕获,以避免任何意外值,这可能导致垃圾答案。
- 所有特征都有益处;引入系统的特征应以某种方式有价值,例如作为预测因子或标识符,因为每个特征都有处理成本。
- 没有一个特征的成本会高于它的价值;应根据成本与收益评估每个新特征,以消除那些难以实现或管理的特征。
- 数据管道具有必要的隐私保护措施;例如,应仔细管理个人身份信息 (PII),因为任何敏感信息的泄露都可能产生法律后果。
- 如果任何新的外部组件对系统有影响,引入新功能以提高系统性能将更容易。
- 必须检查所有输入特征代码,包括独热编码/分箱特征以及独热编码特征中看不见级别的处理,以避免任何中间值偏离期望范围。
模型 - 模型规范经过评估并提交;为了更快的重新训练,需要对模型学习代码进行正确的版本控制。
- 离线和在线指标之间的相关性:模型指标(对数损失、 mape、 mse)应与应用程序的目标(例如收入/成本/时间)高度相关。
- 必须为用例修改超参数,如学习率、层数、层大小、最大深度和正则化系数,因为超参数值的选择可能会显著影响预测的准确性。
- 为了支持生产中的最新模型,了解根据数据分布的变化对模型进行再训练的频率很重要。模型陈旧的影响是已知的。
- 具有高级特征的简单线性模型是进行功能测试和执行成本效益分析的良好起点,与更复杂的模型相比。然而,更简单的模型并不总是更好的。
- 必须使用足够具有代表性的数据来评估模型性能,以确保模型质量在重要的数据切片上令人满意。
- 模型经过测试以包含模型特征,这些特征应根据预测重要性进行彻底检查,因为在某些应用中,特定特征可能会使结果偏向特定类别,通常是出于公平性原因。
基础设施- 在相同数据集上重复训练的结果应该是相似的模型。总的来说,根据系统或基础设施的精确度,可能存在一些差异。然而,不应该有显著的差异。
- 必须使用随机输入对模型算法和模型 API 服务的准确性进行单元测试,以识别代码或响应中的任何错误。
- 必须测试整个 ML 管道的正常运行,包括训练数据的组装、特征创建、模型训练、模型验证以及部署到服务系统。
- 在实际处理真实请求之前,必须首先训练模型,此时离线/在线系统必须对其进行评估,以确保其质量适当。
- 考虑到 ML 系统的行为,其性能很大程度上取决于输入数据非平稳的质量/分布,如果 ML 答案出现问题,应该有一个设计良好的回退机制。服务模型可以被撤销。
总之,设计机器学习中的学习系统需要仔细考虑几个关键因素,包括使用的数据类型、期望的结果以及可用的资源。通过遵循本文概述的关键步骤并牢记最佳实践,可以设计出一个高性能的机器学习学习系统。 提供用于 ML 学习系统的接口、算法、数据基础结构和硬件,以满足特定的可靠性、可扩展性、可维护性和灵活性要求。
|