米兰官方网页版-米兰MiLan(中国)







  • 咨询热线:021-80392549

    米兰官方网页版-米兰MiLan(中国) QQ在线 米兰官方网页版-米兰MiLan(中国) 企业微信
    米兰官方网页版-米兰MiLan(中国)
    米兰官方网页版-米兰MiLan(中国) 资讯(xùn) > 人工智能 > 正文

    一(yī)份关于机(jī)器学习“模型再训练”的终极指南

    2020/01/03370

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

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

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

    在本文中(zhōng),笔者想对模型漂移(yí)下定义,并(bìng)讨(tǎo)论(lùn)如(rú)何去识别和跟踪(zōng)模型漂(piāo)移。然后(hòu),我将描(miáo)述如(rú)何重(chóng)新(xīn)训练模型,来减轻漂移对(duì)预测性能的影响,并对应多久重新训练一次模型做出建议。最后,我(wǒ)将介绍启用模型(xíng)重新训练(liàn)的几(jǐ)种方法。

    portant;" />

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

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

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

    如何跟(gēn)踪模型漂移?

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

    模型性能降级

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

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

    ·预测已存储,但是您无法访问基本事(shì)实标签。

    ·预测和标签均可(kě)用,但(dàn)不能结合在一起。

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

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

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

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

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

    可能值(zhí)的(de)范围

    值直方图(tú)

    该功能是否接(jiē)受NULL,如果是(shì),则预期的NULL数量

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

    检查特(tè)征之间的关联

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

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

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

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

    检查目标分布

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

    模型再训练到底是什么(me)意思?

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

    在(zài)将(jiāng)模型部署到(dào)生(shēng)产数据之(zhī)前(qián),科学家(jiā)需要经过严(yán)格的模型验(yàn)证过(guò)程,其(qí)中(zhōng)包括:

    汇编数据集–收集来自(zì)不同(tóng)来源(例如不同数据(jù)库)的数据集(jí)。

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

    模型(xíng)选择–比较(jiào)不同(tóng)的(de)学习算法。

    错误估计–在搜索(suǒ)空间(jiān)上进行(háng)优化,找(zhǎo)到最佳模型并估计其(qí)泛化误(wù)差。

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

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

    应该多久重新训(xùn)练一次模型

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

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

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

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

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

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

    最后,但(dàn)并非最不重要(yào)的一点,我们(men)需要讨论如(rú)何重新训练(liàn)模型。您用于模型再训练的方法与您决定再训练的频(pín)率直接相(xiàng)关。

    如(rú)果您打算定期去重新训练(liàn)模型,那么(me)批(pī)量进(jìn)行重新训(xùn)练就完全足(zú)够了。这种方(fāng)法涉及使用工作调度程序(例(lì)如Jenkins或Kubernetes CronJobs)定期地调度模型训练过程(chéng) 。

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

    最后,利用在线学(xué)习技术更新(xīn)当前(qián)正在生产的模型可能也是有意义的(de)。这种方法依赖(lài)于使用当前部署的模型(xíng)去(qù)“播种”一个新模型。随着新数据的产生,模型参数(shù)将使用新的训练数据进行更新。

    结论(lùn)

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

    关键词:




    AI人工智能网声明:

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


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

    精选(xuǎn)资讯(xùn)更多

    相(xiàng)关资(zī)讯更(gèng)多

    热门搜索

    工博(bó)士人工智能网
    米兰官方网页版-米兰MiLan(中国)
    扫描二维码关(guān)注(zhù)微信(xìn)
    扫(sǎo)码(mǎ)反馈

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

    咨询反(fǎn)馈
    扫码关注

    微信公众号

    返回顶部

    米兰官方网页版-米兰MiLan(中国)

    米兰官方网页版-米兰MiLan(中国)