所以,我还没有找到任何关于这个主题的文献,但似乎值得考虑一下:
如果有新的观察结果,模型训练和优化的最佳实践是什么?
有没有办法在预测开始退化之前确定重新训练模型的周期/频率?
如果针对聚合数据重新优化参数是否过拟合?
请注意,学习可能不一定是在线的。在观察到最近预测的显着差异后,人们可能希望升级现有模型。
所以,我还没有找到任何关于这个主题的文献,但似乎值得考虑一下:
如果有新的观察结果,模型训练和优化的最佳实践是什么?
有没有办法在预测开始退化之前确定重新训练模型的周期/频率?
如果针对聚合数据重新优化参数是否过拟合?
请注意,学习可能不一定是在线的。在观察到最近预测的显着差异后,人们可能希望升级现有模型。
当有新的观测值可用时,可以通过三种方式重新训练您的模型:
今天的大多数模型将使用批量/小批量,批量大小的选择取决于您的应用程序和模型。选择正确大小的批次相当于选择正确的频率来重新训练您的模型。如果您的新观察结果与现有数据的差异很小,我建议使用较大的批次(可能是 256-512),如果相反,新的观察结果往往与您现有的数据有很大差异,请使用小批次(8-256)。归根结底,批量大小有点像您需要调整的另一个超参数,它特定于您的数据
.pickle
文件并在新数据可用时加载并进一步训练。请注意,为了使模型正确预测,the new training data should have a similar distribution as the past data
.The frequency will be dependent on dataset
并且没有具体的时间来说明这一点。If you observe that your new incoming data is deviating vastly, then it is a good practise to retrain the model
.从理论上讲,如果您正在建模的系统或数据的性质发生了变化,模型只会降级(变得过时且不再有用)。理想情况下,您可以通过在生产中设置模型的自动监控来发现这一点。这可能意味着将对新传入数据的预测与真实数据进行比较,如果您的错误指标超出您的期望范围,您将收到警报。或者这可能意味着您密切关注间接相关的 KPI,如果它超出了您的期望范围,您必须重新评估该模型是否仍在为您的事业服务。如果您的模型不再那么有用,那么是时候重新训练了,并且应该遵循与创建原始模型时相同的最佳实践,尤其是在模型验证方面。
如果错误度量/KPI 保持在您想要的范围内(如果您的模型正在服务于其目的),则没有理由重新训练。当数据的性质和被建模的系统没有改变时,增量更新模型没有任何好处,但也有缺点:
以自动化方式建立这种重新训练是有风险的,因为自动化模型训练还不能产生与人工验证模型的质量和可靠性相匹配的模型。
不能在缺席的情况下进行适当的模型验证。理想情况下,它看起来类似于以下内容(取决于您正在构建的模型的类型):
如果您认为您的模型将受益于增量更新,这意味着底层系统或数据的性质会随着时间而变化,因此您昨天验证的模型今天不一定有效。您不应该假设简单地优化旧模型(给定新数据)上的参数会在您的模型中产生统计学上的显着改进,或者在这方面产生有效的模型。这种增量更新应该在数据科学家监督下进行适当的模型验证。这是因为验证模型是一项复杂的任务,并且可能会出现半定性的挑战。例如:
当然,您可以(谨慎)应用机器学习,而不考虑基本假设和概念。这可能是您应用领域的成本/收益问题。
例如,当您有数以万计的模型需要定期更新并且预测的风险很低时,设置自动重新训练可能是有益的。例如,您可以为应用程序的每个单独用户建立一个模型,并且您只想预测一些半琐碎的行为。也许不准确预测的成本很低,但准确预测的好处很高。这可能具有良好的商业意义。
但是,如果您的预测结果风险很高,我会应用基本概念并严格遵循最佳实践。
问题:你应该重新训练吗?
答案取决于您的模型尝试做什么以及它应用在什么环境中。
让我通过几个例子来解释:
假设您的模型试图预测客户的行为,例如,在给定为他量身定制的报价的情况下,客户购买您的产品的可能性有多大。显然,市场会随着时间而变化,客户的偏好会发生变化,而您的竞争对手也会随之调整。你也应该调整,所以你需要定期重新训练。在这种情况下,我建议添加新数据,但也忽略不再相关的旧数据。如果市场瞬息万变,您甚至应该考虑仅根据新数据定期进行再培训。
另一方面,如果您的模型将某些成像(例如 X 射线或 MRI)归类为医疗条件,并且模型表现良好,则如果技术或医学知识没有变化,则您无需重新训练. 添加更多数据不会有太大改善。