九游网页版-九游(中国)



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

    九游网页版-九游(中国) QQ在线 九游网页版-九游(中国) 企业微信
    九游网页版-九游(中国)
    九游网页版-九游(中国) 资讯 > 人(rén)工智能 > 正文

    一(yī)份关(guān)于机器学习“模(mó)型再训练”的(de)终极指(zhǐ)南

    2020/01/03371

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

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

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

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

    portant;" />

    什么是模型(xíng)漂(piāo)移?

    模型漂移是指,由于环境的变化违反(fǎn)了模型假(jiǎ)设,而导致模型的预测(cè)性能随时间而降(jiàng)低。模(mó)型漂移有(yǒu)点用词不当,因为(wéi)变化的不是模(mó)型,而是模型运行的环境。因此,概念漂移(concept drift)一词实际上可能是一个更好的(de)用词,不过(guò)两个术语(yǔ)都描述(shù)了相同的(de)现象。

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

    如何跟踪模型漂(piāo)移?

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

    模型性能(néng)降级

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

    ·预测的数(shù)据在生成后没有(yǒu)存储(chǔ)——别(bié)让(ràng)这(zhè)种事发生在(zài)你身(shēn)上。

    ·预测已(yǐ)存(cún)储,但是您无法访问基本事(shì)实标(biāo)签。

    ·预测(cè)和标(biāo)签均可(kě)用,但不能结(jié)合(hé)在一起(qǐ)。

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

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

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

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

    每个特征需要监视许多不(bú)同的东西(xī),包括:

    可能值的范(fàn)围(wéi)

    值直方图

    该(gāi)功能是否接受NULL,如果是,则预期的NULL数量(liàng)

    能够通过控制(zhì)界面快速监控这些分布,是朝正确方向迈出(chū)的(de)一步。当特征差(chà)异很(hěn)大时(shí),可以(yǐ)通过自动跟踪(zōng)训练服务(wù)偏差(chà)并在特性差异(yì)显著时(shí)发出(chū)警告,进一步实现这一点。

    检查特征之间的(de)关联

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

    监视特(tè)征之间的相关系(xì)数

    训练具(jù)有一两(liǎng)个特征的模型(xíng)

    训(xùn)练一(yī)组模型,每个模型(xíng)都删除其中一个特征

    检查目标分布(bù)

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

    模型再训(xùn)练到底(dǐ)是什(shí)么意思?

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

    在将模型部署到生产数据之前(qián),科学家需要(yào)经(jīng)过严(yán)格的模(mó)型验(yàn)证过程(chéng),其中(zhōng)包(bāo)括:

    汇编数据集–收(shōu)集来(lái)自不同来源(例如不同数(shù)据库)的数据(jù)集。

    特征(zhēng)工(gōng)程–从原始数据中提取列,提高预测性能。

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

    错误估计–在搜索空间上进行优化,找(zhǎo)到最(zuì)佳模型(xíng)并估计其泛化误差(chà)。

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

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

    应(yīng)该(gāi)多久(jiǔ)重新训练一次模型(xíng)

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

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

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

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

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

    如(rú)何重新训(xùn)练模型?

    最后,但并非最不重要的一点,我们需(xū)要讨论如何(hé)重新训练模型。您用于模型再训练的方法与您决定再训练的频率直接相(xiàng)关。

    如果您打算(suàn)定期(qī)去重新训练模型,那么批量进行(háng)重新训练(liàn)就完全足够了。这种方法涉及使用工作调度程序(xù)(例如Jenkins或Kubernetes CronJobs)定期地调度模型训(xùn)练过程 。

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

    最(zuì)后,利用在线(xiàn)学习技术更新当(dāng)前正在生产的模型可能也是有(yǒu)意义的。这种方法依(yī)赖于使用当前(qián)部署的模型去“播种(zhǒng)”一个新模型。随着新数据的产生,模型(xíng)参数将使用新的训练数据进行更新。

    结论

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

    关键词:




    AI人工智能网声明:

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


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

    精选资讯(xùn)更多

    相关资讯(xùn)更多

    热门搜索

    工博士人工智能网
    九游网页版-九游(中国)
    扫描(miáo)二维码(mǎ)关注微信
    扫码反馈(kuì)

    扫一扫,反馈(kuì)当前页面(miàn)

    咨询反馈
    扫码关注(zhù)

    微信公众号

    返回顶部

    九游网页版-九游(中国)

    九游网页版-九游(中国)