pp电子(中国游)官方在线平台







咨(zī)询热线:021-80392549

pp电子(中国游)官方在线平台 QQ在线 pp电子(中国游)官方在线平台 企业微信
pp电子(中国游)官方在线平台
pp电子(中国游)官方在线平台 资讯 > 人工智能(néng) > 正文

一(yī)份关于机器学习“模型再(zài)训练(liàn)”的终(zhōng)极指南

2020/01/03375

【IT168技(jì)术】机器学习模型的训练,通常是(shì)通过学(xué)习某一组输入特征与输出(chū)目标之间(jiān)的映(yìng)射来进行(háng)的。一般(bān)来说,对(duì)于映射的学习(xí)是通过优(yōu)化(huà)某些成(chéng)本函数,来使预(yù)测的误差最小化。在训练出最佳(jiā)模型(xíng)之后,将其正式发布上线,再根据(jù)未来生成的(de)数据生成准确(què)的预测。这(zhè)些新数据示例可(kě)能(néng)是用户交(jiāo)互(hù)、应用处理或其他(tā)软件系统的请求(qiú)生成(chéng)的——这取(qǔ)决于模型需要解决的问题。在理想情况下(xià),我们(men)会希(xī)望自己的模型(xíng)在生产(chǎn)环境中(zhōng)进行预(yù)测时(shí),能够像使用训练过程中使用的数(shù)据(jù)一(yī)样(yàng),准(zhǔn)确(què)地预测(cè)未来情况。

当我们将模型部署到生产中时,往往会假设未来将使(shǐ)用到的数据会类似于过(guò)去模型(xíng)评(píng)估期间所使用的数据。具体来说,我们可(kě)能会假设,特征和目(mù)标的(de)分布将保持相当的恒(héng)定。但是这种(zhǒng)假设通常不成(chéng)立。趋势会随着(zhe)时间的(de)推移而变化,人们的兴趣会随着季节的变化而变化(huà),股票市场会起伏(fú)不定。因此,我们的模型必(bì)须适应这(zhè)些变化。

世(shì)界(jiè)是(shì)持续变化的,因此模型部署应视为一(yī)个连续的过程,而不是(shì)完(wán)成第一次部署之后就扭头(tóu)去开展下一个(gè)项目。如果机器学习团队(duì)的工程(chéng)师发现数据分布与原始训(xùn)练集的数(shù)据分布有明显出入,则需要重新训练模型。这个现象——通常被称为模型漂移(model drift)——可以缓(huǎn)解,但(dàn)是会(huì)带(dài)来额外的开销(xiāo),如监视基础设施、监督和流程等等。

在本文中(zhōng),笔者想对模型漂移下定义,并讨论如何(hé)去识别(bié)和跟踪模型漂移。然后,我将(jiāng)描述(shù)如何重新(xīn)训(xùn)练模型,来减轻(qīng)漂移(yí)对预测性能的影响,并对应多久重新训练一次(cì)模型做出建议。最后,我将介绍启(qǐ)用模型重新训(xùn)练(liàn)的几种方(fāng)法。

portant;" />

什(shí)么是模型漂移?

模型(xíng)漂移是指,由于环境的变化违反了模型假设,而导致模(mó)型的预(yù)测性(xìng)能随时(shí)间而降低。模型漂(piāo)移有点用词不当,因为变化的不是模型,而是模型运行的环境。因此,概念漂移(concept drift)一词(cí)实际上可能是一个更(gèng)好的用词,不过两个(gè)术语(yǔ)都描述了(le)相同的现象。

请注意,笔者对模型漂移的定义实际上包括(kuò)几(jǐ)个可以更改的变(biàn)量。预测性能将(jiāng)下降,它将(jiāng)在(zài)一段时间内(nèi)以(yǐ)某种速(sù)率下降,并且这种(zhǒng)下降会归因于违反建模假设的环境变化。在确(què)定如(rú)何诊断(duàn)模型漂移以及如何通过模型再训练纠正模型漂移时,应考虑这些变量中的每一个(gè)。

如(rú)何跟踪模型漂移?

目前业内已有多种识别和跟踪模型漂移的技术(shù)。在介绍这些技(jì)术(shù)之前,值得一提的是,并没有一种万能(néng)的方法。不(bú)同的(de)模型问题需要不同的解决方案,您可能有(yǒu)、也可能(néng)没有相应的(de)基础(chǔ)架构或资源来利用某些(xiē)技术(shù)策略。

模型性能(néng)降级

识别模型漂(piāo)移的最直接方法是(shì)明确预测性能是否已(yǐ)下降(jiàng),同时(shí)量化这种下降。测量实时数据上已部署模(mó)型的(de)准确性是一个众(zhòng)所周知的难题。之所以出现这种困难,部分原因是我们需要访问生成的模型的预测和基本事实信号(hào)。出于以(yǐ)下(xià)这些原因,这可能(néng)无法实(shí)现:

·预测的数据在(zài)生成后没有存储——别让这种事(shì)发生在你(nǐ)身上。

·预测已(yǐ)存储(chǔ),但是您无法访问基本事实标签(qiān)。

·预测(cè)和标签均可用,但不能(néng)结合在一起。

即(jí)使预(yù)测和标签可以合并在一起(qǐ),也可能需要一段时间才能(néng)使用标(biāo)签。例如一个可以预测下一季度(dù)收入的财务(wù)预测模型。在(zài)这种(zhǒng)情况下,只有在该季(jì)度过去之后才能观察(chá)到实际收入,所以(yǐ)直到那个时候你才能够量化模型的效果(guǒ)。在此类预测问题中, 回填预测(即训练模型,并(bìng)根据过去的历史数据生成预(yù)测)可以帮(bāng)助您了解模型性能下降的速度。

正如Josh Wills 指出的那样(yàng),在部(bù)署模型(xíng)之前您(nín)可(kě)以做(zuò)的最重要的事情(qíng)之一就是试图了解离线环境中的模型漂(piāo)移。数(shù)据科学家应想办(bàn)法回答(dá)以下问题:“如果我使用六个(gè)月前的(de)数据对这组(zǔ)特征进(jìn)行(háng)训练(liàn),并将其应用于今天生成的数据,那么这个模(mó)型(xíng)比(bǐ)我一(yī)个月前未经训(xùn)练而创建并应用到今天的模型差多少呢?”。离线(xiàn)执行此分析,您可以估计模型性能下降的速度以及(jí)需要重(chóng)新训(xùn)练的频率。当然,这种(zhǒng)方法的前提是要有一台“时光机”来访问过去任何(hé)时候的实时数据。

检(jiǎn)查训(xùn)练和(hé)实时数据的特征分布

由(yóu)于随着输入特征的分布逐渐偏(piān)离(lí)训练数(shù)据的分(fèn)布,模型性能会(huì)下降,因此比(bǐ)较这些(xiē)分布是推断模型(xíng)漂(piāo)移的好方法。请注意,这里说的是推断而不是(shì)检测模(mó)型漂移(yí),因为我们没有观察到(dào)预测性能的实际下降(jiàng),而(ér)是(shì)“预计”会(huì)出(chū)现下(xià)降(jiàng)。在由于数据(jù)生成这一过程(chéng)的性(xìng)质,而无法观察(chá)到实际(jì)基本事实的情况下,这会非常(cháng)有用。

每个特征需(xū)要监(jiān)视许多不(bú)同的东(dōng)西,包括:

可能值的范围

值直方图

该功能是(shì)否(fǒu)接受NULL,如果(guǒ)是(shì),则预期(qī)的(de)NULL数量

能(néng)够通过(guò)控制界(jiè)面快速监控这(zhè)些分(fèn)布,是朝正确方(fāng)向迈出(chū)的一步。当特(tè)征(zhēng)差异很大时(shí),可以通过自(zì)动(dòng)跟踪训练服务偏差并(bìng)在(zài)特性差异显著时(shí)发出警告,进一步实现这一点。

检查特征之间的关联

许多模型(xíng)会假定(dìng)特征(zhēng)之间的关系必须保持固定(dìng)。因此,您还需要(yào)监视各个输入特征之间的成对关(guān)联。如您的ML测(cè)试分数(shù)是多(duō)少?ML生产(chǎn)系统的规范等等,可以通过以下(xià)方(fāng)法实现:

监视特征之间的相关系数

训练具有(yǒu)一两个特征的模型

训练一组模型,每个(gè)模型(xíng)都(dōu)删除其中(zhōng)一个特征

检查目(mù)标分(fèn)布

如果目(mù)标(biāo)变量的分布发(fā)生显着变化,那么模型的预测(cè)性能几乎一定会变差。《机器学(xué)习:技(jì)术债务高息信用卡(kǎ)》的作(zuò)者(zhě)指出,一种简(jiǎn)单而(ér)有用的诊(zhěn)断方法是跟踪目标分布。与训练数据的偏差可能意味(wèi)着需要重新评(píng)估部署模型的(de)质量,但请记住,“这绝不是一项全面的测试,因(yīn)为它可以通过(guò)空模(mó)型来满足,该模型可以简单地预测标签出现的平均值,而无需考虑输入特征。”

模型(xíng)再训练到底是(shì)什么意思(sī)?

模(mó)型再训练(liàn)似乎是一个超负荷的操作,它是否只涉及到寻(xún)找现有模型架构的新参数?对于更(gèng)改超参数搜索空间怎么样(yàng)?如何搜索不同的模型类型(xíng)(RandomForest,SVM等)?我们可(kě)以包括新特征还(hái)是可以(yǐ)排除以前使用(yòng)的特(tè)征?这(zhè)些都是(shì)很好(hǎo)的(de)问(wèn)题,因此尽可能明确(què)这些问题是非常重要的。要回答这些问题,重(chóng)要(yào)的(de)是直接考虑我们要解决的问题——也(yě)就是说,减少(shǎo)模型漂移(yí)对我(wǒ)们(men)部署(shǔ)的模(mó)型的影响。

在(zài)将模型部署到生(shēng)产数据(jù)之(zhī)前,科学(xué)家(jiā)需要经过严格的模型验证过程,其中(zhōng)包(bāo)括:

汇编数据集–收集来自不(bú)同来源(例如不同数据(jù)库)的数据集(jí)。

特征工程–从原(yuán)始数据中提取列,提高预测(cè)性能。

模型选择–比较不(bú)同的学习算法(fǎ)。

错误(wù)估计(jì)–在搜索空间上进行(háng)优化,找到最佳模型并估计其(qí)泛化误(wù)差。

此过程(chéng)会产生(shēng)一(yī)些最佳的模型,然后将(jiāng)其部署到生产中(zhōng)。由于模型漂移(yí)具体是指(zhǐ)所选模型(xíng)的预测(cè)性能(néng)由于特征/目标数(shù)据分(fèn)布(bù)的(de)变化而(ér)下降,因此模型再训练不应(yīng)该带来不(bú)同的模(mó)型生成过程。确(què)切地说,重(chóng)新训练只是指在新的(de)训(xùn)练数据集上(shàng)重新运行生成先前选择的模型的过程。功能、模型算法和(hé)超参数搜(sōu)索空间都应保持相同。可以这样想,再训练不涉及任何(hé)代码更改,只涉及改变训练数(shù)据集。

这并不是说(shuō)模(mó)型的未(wèi)来迭代不(bú)应(yīng)包含新特征或不考虑其他算法类型/体系结构。只是说,这些类(lèi)型(xíng)的更改会产生完全不(bú)同的模型——在部署(shǔ)到(dào)生产环境之前,应该对它们进行不同(tóng)的测试(shì)。根(gēn)据(jù)您的机器学习团队的成熟程度,理想情况下(xià),此类更(gèng)改将(jiāng)与A / B测试一起引(yǐn)入(rù),以测量新模型对预先确定的兴趣(qù)指标(例如(rú)用(yòng)户参与度或保留率)的影响。

应该多久重新训练一次模型

到目(mù)前为止,我们(men)已经讨论(lùn)了什么是模(mó)型漂移以及识别(bié)它(tā)的多种方法。于是问题就(jiù)变成了,我们(men)该如何补救?如果模型的预测性能由于环境变化而下(xià)降,解决方案(àn)是在反映当前实(shí)际情况的新(xīn)训练集上(shàng)对模(mó)型进行重新训练。那么,您(nín)应该多久重新训练一次模型(xíng)?如何确定(dìng)新的(de)训(xùn)练集?对于最困难的问题,答案是视情况而定(dìng)。但(dàn)如(rú)何视情况而定呢?

有(yǒu)时机器学习问题本身会给出何时需要重(chóng)新训练模型的建议(yì)。例如,假设您(nín)正(zhèng)在一家大学招生(shēng)办工(gōng)作,并负责建(jiàn)立(lì)一个可以预(yù)测学生下学期是(shì)否(fǒu)会回(huí)来的学生流失模型。该(gāi)模型(xíng)将在期中后直接用于对当前学(xué)生群体(tǐ)进(jìn)行(háng)预测。被(bèi)确定有流(liú)失风险(xiǎn)的学生将(jiāng)自动(dòng)被纳入辅(fǔ)导课(kè)程或其他(tā)干预措(cuò)施。

下面我们思考一下这种模(mó)型(xíng)的(de)时(shí)间范围。由(yóu)于我们每学期一(yī)次批量(liàng)生成预测,因(yīn)此没有必要再频繁地重新(xīn)训练模型,因为我们将无(wú)法访问任何新的训练数据。因此,在观(guān)察上学期的哪些学生退学(xué)后(hòu),我们可能(néng)选择在每个学(xué)期开始(shǐ)时(shí)重新训(xùn)练(liàn)我们的模型。这就(jiù)是定期再训(xùn)练计划的一个示例。从这个简单的策略(luè)开始,往(wǎng)往是一(yī)个好办法,但是您需要(yào)确定重新训练(liàn)的频率。快速更改的训(xùn)练(liàn)集可能需要您每天或每周进行(háng)一次训(xùn)练。较慢的发行版本可能(néng)需要每月或每年进行重(chóng)新训练。

如果您的团队已经具备了(le)监控上一节(jiē)中所讨(tǎo)论(lùn)的度(dù)量标(biāo)准的基础设施,那(nà)么将模型(xíng)漂(piāo)移的管(guǎn)理自动化可能(néng)是有意义的。这个解决方案需要跟踪(zōng)诊断,然后在实时数据上的(de)诊断与训练数据诊断不同时触发模型再训练。但这种方(fāng)法也有其(qí)自身的(de)挑战。首先,您需要确定一个发散的(de)阈值,它将触(chù)发模型再训练。如果阈值(zhí)太低,则(zé)您(nín)可能会过于频繁地进行再训练,从而带(dài)来高(gāo)计算(suàn)成本。如果阈值过高,则(zé)可能(néng)会因(yīn)为不经常进行再(zài)训练,而导致生产中的模型偏劣质(zhì)。这比看起来要(yào)复杂得多(duō),因为你必须去确(què)定,要收集(jí)多(duō)少(shǎo)新的训练数据,才(cái)能代表世界的新(xīn)状态。在世界已经(jīng)发生改变时,用(yòng)一个训练集太小的模型来(lái)代替现有的模型也是没有意义(yì)的。

如(rú)果您的模型已经在对抗性(xìng)环(huán)境中运行,则需要特别考虑。在(zài)诸如欺诈检测这样的设置中,对抗方(fāng)会改变数据分布以使自己获(huò)利。这(zhè)些问题(tí)可以从在线学习(xí)中受(shòu)益,在这之中,模型随着新数据的(de)出现而不断更(gèng)新。

如何重新训练(liàn)模型?

最后,但并非最不重要的一点,我们需要讨论如何(hé)重新训练模型。您用于(yú)模型再训练的(de)方法(fǎ)与(yǔ)您决定(dìng)再训练的(de)频(pín)率直(zhí)接相关。

如(rú)果(guǒ)您打算定期去重新训练模(mó)型,那么批量进行重新训练就完全足够了。这种方法涉(shè)及使用工作调度程序(例如Jenkins或(huò)Kubernetes CronJobs)定期地调度模型训练过程 。

如果您具有自(zì)动(dòng)模型漂(piāo)移检测功能,那么在识别出漂移时触发模型重新训(xùn)练就很有意义。例如,您(nín)可能有定期(qī)的工作,将实时数据集的(de)特征分布与训练数(shù)据的特征分布(bù)进行比(bǐ)较。当识别出明显的偏差(chà)时,系统可以自动安排(pái)模型(xíng)再训练以自动部署(shǔ)新模型。同样,这可以通过诸如(rú)Jenkins的(de)作业调度程(chéng)序(xù)或使用 Kubernetes Jobs来执行(háng)。

最后,利用在线学习技术更新当前正在生产的模型可能也是有意义的。这种(zhǒng)方(fāng)法依(yī)赖于使用(yòng)当前部署的模型去“播(bō)种”一个(gè)新(xīn)模型。随着新数据的产(chǎn)生,模(mó)型参数将(jiāng)使用新的训(xùn)练数据进行更(gèng)新。

结论

一般情(qíng)况下(xià),将模型部署到生产环境时,机(jī)器学习模型的预测性(xìng)能往往都会下降。因(yīn)此(cǐ),工程师必须通过设置(zhì)特定于ML的监(jiān)视解决方案和工作流(liú)来(lái)启用模型重新训练,从而为(wéi)性能下降做(zuò)好准备。虽然(rán)重新(xīn)训练(liàn)的(de)频率因具体(tǐ)问题而异,但ML工程(chéng)师可(kě)以从简单的策略开始(shǐ),随着新数据的到(dào)来,该(gāi)策略(luè)会定期对模型(xíng)进行重(chóng)新(xīn)训(xùn)练,并发展为对模型漂移进行量化和(hé)做出(chū)反(fǎn)应的更复杂的过程。

关键词:




AI人工智能网声明:

凡资讯(xùn)来源注明为其他媒(méi)体来源的(de)信息,均为转载自(zì)其他媒体,并不代表本网站赞同其观点,也(yě)不代表(biǎo)本网站对其真实性(xìng)负责。您若对该文(wén)章内容有任何疑问或质(zhì)疑,请立即与网站(www.longnan.14842.xinxiang.zz.pingliang.ww38.viennacitytours.com)联系(xì),本(běn)网站(zhàn)将迅速给(gěi)您回应并做处理。


联系电话:021-31666777   新闻(wén)、技术文(wén)章(zhāng)投(tóu)稿(gǎo)QQ:3267146135   投稿(gǎo)邮箱:syy@gongboshi.com

精选资讯更多

相关资(zī)讯更多

热门搜索

工博士人工智能(néng)网
pp电子(中国游)官方在线平台
扫描二维码关注微信
扫码反馈

扫一扫,反馈当前(qián)页面

咨询(xún)反馈
扫码关注

微信公(gōng)众(zhòng)号

返回(huí)顶部

pp电子(中国游)官方在线平台

pp电子(中国游)官方在线平台