为什么机器学习模型在消费中会退步?
作者头像
  • IT行业资讯
  • 2019-11-10 13:39:13 2

导读

当你将一个模型投入生产后,它可能会逐渐退步。本文旨在分享我在机器学习模型退步方面的经验。实际上,关于模型创建和开发阶段的讨论较多,而关于模型维护的内容则相对较少。

假设机器学习解决方案在投入生产后无需维护即可完美运行,这是一种错误的观点。这是企业在推出其首个人工智能(AI)产品时常见的误区。

为什么机器学习模型会随着时间退步?

你可能已经知道,数据是成功建立ML系统的最重要因素之一。一个良好的数据集可以提供准确的预测,但这些预测能持续多久呢?

在所有ML项目中,预测数据如何随时间变化是关键。在一些项目中,我们低估了这一步骤,导致难以实现高准确率。在我看来,一旦你在概念验证(PoC)阶段之后对项目有了信心,就应该制定一个计划来保持模型的更新。

事实上,在投入使用前,你的模型准确性将达到最佳状态。这种现象被称为“概念漂移”。尽管在过去20年中,学术界对此进行了大量研究,但在实际行业中,这一问题仍经常被忽视。

概念漂移

概念漂移指的是模型试图预测的目标变量的统计特性会随着时间以不可预测的方式发生变化。这会导致问题,因为随着时间的推移,预测的准确性会下降。例如,如果你使用机器学习来预测商店的需求和价格,你需要考虑本周的天气、日历和竞争对手的行为。

在概念漂移的情况下,我们对数据的解释会随着时间变化,而数据的一般分布可能没有变化。这会导致最终用户认为模型预测随着时间推移对相同或相似数据的预测变得更差。数据和概念都可能同时漂移,使得问题更加复杂。

我注意到,依赖人类行为的模型特别容易退步。显然,风险会根据项目的性质有所不同。在大多数情况下,必须制定定期的模型评审和再训练计划。

此外,大多数模型只能捕捉它们所看到的训练数据的形式。一个好的模型能捕捉到这些数据的主要部分,忽略不重要的部分,从而实现“泛化”。但是任何模型都有一定的局限性。

泛化

泛化是指模型能够适应新的、以前未见过的数据,这些数据来自于用于创建模型的同一分布。这与过拟合密切相关。如果模型过拟合,它就不能很好地泛化。泛化的最佳测试是查看模型在长时间内对真实数据的表现如何。

如何防止模型退步?

这听起来可能很明显,但在部署后监视机器学习功能非常重要。如果你觉得监视所有特征是一项繁琐的任务,可以只关注一些关键特征,这些特征的数据分布变化可能会显著影响模型的结果。强烈建议在投入生产前为这个过程制定一个策略。

模型监控

模型监控是一个持续的过程。如果你观察到模型性能下降,那么是时候重新设计模型了。困难的部分不是刷新模型或创建一个新的重新训练模型,而是思考是否有额外的特征可以提高模型性能,使其更加可靠和准确。

完成上述步骤后,你可以使用新的或修改过的特征集和模型参数重新创建模型。我们的目标是确定一个最优模型,该模型能提供最佳精度,这很好地概括了一些数据漂移。

我发现,在某些情况下,重新创建模型并不能提高模型性能。在这种情况下,分析模型出错的案例并寻找当前特征集之外的趋势可以帮助识别新的特征。基于这些知识创建新特征可以使模型获得新的学习经验。

手工学习

我们常用的一种维护模型的方法是,使用与最初用于构建模型相同的流程来训练和部署模型。我们称之为“手工学习”。你可以想象这个过程会很耗时。我们多久对模型进行一次再训练?每周还是每天?这取决于你的机器学习应用。

当我们手工对模型进行再训练时,我们可能会发现一种新的算法或一组不同的特征,可以提高准确性。理想情况下,定期回顾你的流程是个好主意。正如我后面提到的,你可能会发现一种不同的算法或一组新的特征来改进你的预测,而这并不是连续学习系统所擅长的。

也许你可以每个月或每年使用之前收集的数据来更新模型。

这还涉及到对模型进行反向测试,以便在重新拟合静态模型时选择适当数量的历史数据。

给数据加权重

另一种解决方案是给数据加权重。理想情况下,有些算法允许你调节输入数据的重要性。

使用与数据年龄成反比的加权系统可能会很有意思,这样会更多地关注最近的数据(权重更高),而较少关注较旧的数据(权重更低)。

持续学习

我最喜欢的方法是拥有一个可以持续评估和重新训练模型的自动化系统。持续学习系统的好处是它可以完全自动化。

一般来说,合理的模型监控与缜密的模型检查计划相结合,对于保持生产模型的准确性至关重要。对关键变量进行优先级检查,并为发生更改时设置警告,可以确保你不会对环境的变化感到意外,这些变化可能会破坏你的模型的有效性。

对于数据点具有高度独立性的输入变量,可以使用统计过程控制中使用的控制图来检测过程的变化。

处理模型漂移

我坚持认为,你的机器学习成功也取决于你计划如何维护训练好的模型。在几个项目中,我注意到缺乏模型工作经验的商业领导者可能无法预料到这种需求。

生产模型的维护

一个产品化的模型包括监视和维护。应该定期评估新数据集上的模型性能。应该定期对这些性能跟踪进行可视化和比较,以便你能确定何时需要干预。有几个度量标准用于评估机器学习性能。

模型退步的原因可以被明确地发现和建模。可以研究、理解和应用周期性的时间效应。一旦模型收集了足够的性能指标,数据科学团队就可以处理这个问题。如果你一直跟踪它们。

定期思考性能指标并触发重新训练或重建模型的过程也是必要的,因为没有它,你会看到性能下降,但没有适当的系统来处理它。

投入和团队

除了技术方面,强烈建议在项目投入生产后,将最好的数据科学家和工程师留在项目中。与传统的软件项目不同,在部署后,你的运维团队处理问题,工程师继续构建下一个大项目,而在机器学习和人工智能系统中,许多技术挑战在于保持它们的准确性。

你还需要投入资源,以保持你的客户使用的机器学习产品和服务的准确性。这意味着与传统软件相比,机器学习产品的运营边际成本更高。

维护成本

为了维护高质量的模型,应在每次数据交付时对算法进行再训练。另一方面,为了优化成本,应尽可能少做。

显然,某些机器学习开发实际需要更多的技术债务,因此需要比其他实际更多的未来维护。特定于机器学习的发展债务风险因素是多种多样的。它们包括无数的概率变量、数据依赖、递归反馈循环、管道流程、配置设置,以及其他加剧机器学习算法性能不可预测性的因素。

这些复杂性越多,就越难以进行有效的维护所需的根本原因分析。

你无法完全自动化地解决维护负担。在任何情况下,倾向于机器学习模型都需要仔细检查、批判性思维和手工工作,而这些只有受过高度训练的数据科学家才能提供。

    本文来源:图灵汇
责任编辑: : IT行业资讯
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
退步模型机器为什么消费学习
    下一篇