如何更新你的机器学习模型?手把手带你设计一个可持续的预测模型!
作者 | CloudFactory
译者 | 天道酬勤 责编 | 徐威龙
出品 | AI科技大本营(ID:rgznai100)
高效的机器学习模型需要高质量的数据。训练你的机器学习模型并不是过程中的单个有限阶段。即使将其部署到生产环境中,也可能需要稳定的新训练数据流来确保模型随时间推移的预测准确性。
毕竟,训练数据会显式地调用数据集中的属性,这些属性代表外部世界中不断变化的基本事实。如果不进行周期性的重新训练,随着现实世界变量的演变,模型的准确性自然会随时间下降。
在本文中,我们将讨论为什么不管你的初始训练数据过程多么严格,继续训练你的机器学习模型都是至关重要的。我们还将讨论再训练的方法以及每种方法的优点。
最后,我们将介绍如何在任何机器学习项目开始时预见对后续更新的需求。通过从一开始就建立再训练流程,帮你设计一个可持续的预测模型。
为什么大多数机器学习模型都需要更新才能保持准确性?答案在于训练数据的性质以及它如何告知机器学习模型的预测功能。
训练数据是一个静态数据集,机器学习模型可从该数据集中推断出模式和关系,并形成对未来的预测。
随着现实世界条件的变化,训练数据的基本事实方面表示可能会不太准确。想象一下用于预测50个大型都会区租金成本的机器学习模型。从2000年到2019年的训练数据可能会以惊人的准确性预测2020年的租金价格。在预测2050年的租金价格时,这种方法可能会不太有效,因为房地产市场的基本性质可能在未来几十年内发生变化。
应用自然语言处理(NLP)来训练聊天机器人提供了数据漂移的另一个有用的例子。我们使用语言的方式正在不断演变,因此必须更新用于聊天机器人的训练数据的语义分析,来反映当前的语言。想象一下,尝试使用1980年代的培训数据来训练聊天机器人与现代消费者进行互动。在40年中,语言可能会发生重大变化,这迫使人们需要更新训练数据。
这一现象已经有了多种描述方法,包括数据漂移、概念漂移和模型衰减。不管你怎么称呼它,它都代表了机器学习的硬道理:在未来的某个时候,你的训练数据将不再为准确的预测提供基础。
如何应对这个不可避免的挑战呢?答案是定期使用新的或扩展的数据重新训练你的模型。实际上,训练你的模型是一个持续的过程,特别是在质量要求很高的情况下。
你应该如何更新你的机器学习模型?简单来说,你有两个选择:使用更新的输入手动重新训练模型,或构建一个旨在从新数据中不断学习的模型。
手动模型重新训练方法
手动更新机器学习模型的方法本质上是复制你的初始训练数据过程,但要使用一组更新的数据输入。在这种情况下,你可以决定如何以及何时向算法提供新数据。
此选项的可行性取决于你定期获取和准备新训练数据的能力。你可以随时监控模型的性能,确定何时需要更新。如果模型的准确性明显下降,则可能需要对更新的数据进行重新训练。
这种方法的优点之一是修修补补通常可以带来真知灼见和创新。如果密切监视模型并找出缺点,你可能会发现包含额外数据或以更基本的方式修改算法的价值。
模型训练的持续学习方法
持续学习模型通常会从部署了数据的生产环境中合并新的数据流。
消费者每天都会参与持续学习的机器学习模型。以音乐流媒体平台Spotify为例,该平台使用协作过滤功能,根据具有相似爱好的其他用户的偏好向用户提供推荐,来创造价值和竞争优势。
当Spotify用户收听音乐时,与他们的选择有关的数据会反馈到公司的预测算法中。由此产生的反馈循环完善了该应用为其用户提供的推荐,并允许高级个性化设置,例如机器生成的个性化播放列表。Netflix等其他领先的消费媒体服务提供商也使用类似的持续学习系统。
如你所料,构建这些系统所需的技术专业知识和资源对于许多组织来说根本无法满足。此外,你需要稳定的数据流来进行自动集成。在持续学习模型中,人为干预是可能的,但它代表了一个真正的瓶颈。例如,Spotify在将其数百万用户生成的数据反馈回其算法之前,不需要对其进行清理或格式化。
无论是手动更新还是持续学习似乎都是更有效(可行)的选择,你需要从战略上考虑用于生成新数据来进行再培训的劳动力和技术。如果你打算在可预见的将来使用你的模型,则需要合适的资源来保持该模型最新。
预测进化:选择团队
创建训练数据需要人员、流程和工具的战略组合。要解决收集、清理和标记数据的模糊性,你需要一个高效的技术人员团队,其中包括熟练的技术人员和先进的技术。
许多组织无法管理或扩展内部团队来准备训练数据,因此他们寻求利用人类智能的替代方法。众包劳动力是一种常见选择,它使你可以在短时间内找到数百名匿名工人。
然而,匿名众包带来了隐性成本,包括与员工的沟通不畅,这可能导致工作质量低下。而且,如果在开发初期训练数据集时这些缺点很明显,那么当你尝试重新训练和更新模型时,这些缺点将让人特别沮丧。
在一群匿名的众包工人的情况下,几乎不可能进行监督或转移机构记忆。每次开发新的训练数据时,都有发现新的不一致和性能问题的风险。
或许你也可以选择另一种方式,将这个问题外包给靠谱的、专业解决这种问题的企业,会更有保障。
如果有不清楚的地方或其他意见,欢迎评论告诉我们。
原文:
https://hackernoon.com/how-to-keep-your-machine-learning-models-up-to-date-vd5z3yzw
◆
有奖征文
◆
你点的每个“在看”,我都认真当成了AI