導(dǎo)讀
當(dāng)你把一個(gè)模型投入生產(chǎn),它就開(kāi)始退化,那這個(gè)時(shí)候,我們?cè)撛趺崔k呢。
由于意外的機(jī)器學(xué)習(xí)模型退化導(dǎo)致了幾個(gè)機(jī)器學(xué)習(xí)項(xiàng)目的失敗,我想分享一下我在機(jī)器學(xué)習(xí)模型退化方面的經(jīng)驗(yàn)。實(shí)際上,有很多關(guān)于模型創(chuàng)建和開(kāi)發(fā)階段的宣傳,而不是模型維護(hù)。
假設(shè)機(jī)器學(xué)習(xí)解決方案一旦投入生產(chǎn),無(wú)需維護(hù)就能完美運(yùn)行,這是一個(gè)錯(cuò)誤的假設(shè),是企業(yè)將其首款人工智能(AI)產(chǎn)品推向市場(chǎng)時(shí)最常見(jiàn)的錯(cuò)誤。
當(dāng)你把一個(gè)模型投入生產(chǎn),它就開(kāi)始退化
為什么機(jī)器學(xué)習(xí)模型會(huì)隨著時(shí)間退化?
你可能已經(jīng)知道,數(shù)據(jù)是成功的ML系統(tǒng)中最重要的組成部分。有一個(gè)相關(guān)的數(shù)據(jù)集為你提供準(zhǔn)確的預(yù)測(cè)是一個(gè)很好的開(kāi)始,但是這些數(shù)據(jù)提供準(zhǔn)確的預(yù)測(cè)能持續(xù)多久呢?
在所有ML項(xiàng)目中,預(yù)測(cè)數(shù)據(jù)將如何隨時(shí)間變化是關(guān)鍵。在一些項(xiàng)目中,我們低估了這一步,并且很難交付高精確度。在我看來(lái),一旦你在PoC階段之后對(duì)你的項(xiàng)目有信心,就應(yīng)該制定一個(gè)計(jì)劃來(lái)保持模型的更新。
事實(shí)上,在開(kāi)始使用它之前,你的模型的準(zhǔn)確性將處于最佳狀態(tài)。這一現(xiàn)象被稱(chēng)為概念漂移,盡管在過(guò)去的20年里學(xué)術(shù)界對(duì)其進(jìn)行了大量的研究,但在行業(yè)最佳實(shí)踐中它仍然經(jīng)常被忽略。
概念漂移:表示模型試圖預(yù)測(cè)的目標(biāo)變量的統(tǒng)計(jì)特性隨著時(shí)間以不可預(yù)見(jiàn)的方式發(fā)生變化。這導(dǎo)致了一些問(wèn)題,因?yàn)殡S著時(shí)間的推移,預(yù)測(cè)的準(zhǔn)確性會(huì)降低。
關(guān)鍵是,與計(jì)算器相比,ML系統(tǒng)確實(shí)與現(xiàn)實(shí)世界交互。如果你使用ML來(lái)預(yù)測(cè)你的商店的需求和價(jià)格,你最好考慮一下本周的天氣、日歷和你的競(jìng)爭(zhēng)對(duì)手在做什么。
在概念漂移的情況下,我們對(duì)數(shù)據(jù)的解釋隨時(shí)間而變化,而數(shù)據(jù)的一般分布則沒(méi)有變化。這導(dǎo)致最終用戶(hù)將模型預(yù)測(cè)解釋為隨著時(shí)間的推移,對(duì)相同/相似數(shù)據(jù)的預(yù)測(cè)已經(jīng)惡化。數(shù)據(jù)和概念都可能同時(shí)漂移,使問(wèn)題更加棘手。
我注意到,依賴(lài)于人類(lèi)行為的模型可能特別容易退化。顯然,風(fēng)險(xiǎn)可以根據(jù)項(xiàng)目的性質(zhì)進(jìn)行預(yù)測(cè)。在大多數(shù)情況下,必須制定定期的模型評(píng)審和再訓(xùn)練計(jì)劃。
此外,大多數(shù)模型只能捕獲反映它們所看到的訓(xùn)練數(shù)據(jù)的模式。一個(gè)好的模型捕獲了這些數(shù)據(jù)的基本部分,而忽略了不重要的部分。這創(chuàng)建了泛化的性能,但是任何模型都有一定程度的局限性。
泛化:指的是你的模型能夠適當(dāng)?shù)剡m應(yīng)新的、以前未見(jiàn)過(guò)的數(shù)據(jù),這些數(shù)據(jù)來(lái)自于用于創(chuàng)建模型的相同分布。這與過(guò)擬合的概念密切相關(guān)。如果你的模型過(guò)擬合,那么它就不能很好地泛化。
泛化性能的最佳測(cè)試是查看模型在很長(zhǎng)一段時(shí)間內(nèi)對(duì)真實(shí)數(shù)據(jù)的執(zhí)行情況。這個(gè)過(guò)程至少有兩個(gè)主要元素。
如何防止模型退化?
這聽(tīng)起來(lái)可能很明顯,但是在部署之后監(jiān)視ML性能非常重要。如果監(jiān)視所有特征聽(tīng)起來(lái)像一項(xiàng)耗時(shí)的任務(wù),那么我們可以監(jiān)視一些關(guān)鍵特征,這些特征的數(shù)據(jù)分布變化可能會(huì)嚴(yán)重影響模型結(jié)果。我強(qiáng)烈建議你在投入生產(chǎn)之前為這個(gè)過(guò)程創(chuàng)建一個(gè)策略(通過(guò)識(shí)別正確的元素)。
模型監(jiān)控是一個(gè)持續(xù)的過(guò)程
如果你觀察到模型性能下降,那么是時(shí)候重新構(gòu)造模型設(shè)計(jì)了。棘手的部分不是刷新模型和創(chuàng)建一個(gè)重新訓(xùn)練的模型,而是考慮額外的特征,這些特征可能會(huì)提高模型的性能,使其更加可靠和準(zhǔn)確。
完成上述步驟之后,就可以使用新的或修改過(guò)的一組特征和模型參數(shù)重新創(chuàng)建模型了。在這一點(diǎn)上,我們的目標(biāo)是確定一個(gè)最優(yōu)的模型,該模型能夠提供最佳的精度,這很好地概括了一些數(shù)據(jù)漂移。
我注意到,在某些情況下,模型的重新創(chuàng)建并不能提高模型的性能。在這些情況下,分析模型出錯(cuò)的例子并尋找當(dāng)前特征集之外的趨勢(shì)可以幫助識(shí)別新特征。基于這些知識(shí)創(chuàng)建新特征可以給模型提供新的學(xué)習(xí)經(jīng)驗(yàn)。
手工學(xué)習(xí)
我們經(jīng)常使用新數(shù)據(jù)來(lái)維護(hù)模型的一個(gè)解決方案是,使用我們最初用于構(gòu)建模型的相同流程來(lái)訓(xùn)練和部署我們的模型。我們稱(chēng)之為手工學(xué)習(xí)。你可以想象這個(gè)過(guò)程會(huì)很耗時(shí)。我們多久對(duì)模型進(jìn)行一次再訓(xùn)練?每周?每天嗎?答案取決于你的ML應(yīng)用。
當(dāng)我們手工對(duì)模型進(jìn)行再訓(xùn)練時(shí),我們可能會(huì)發(fā)現(xiàn)一種新的算法或一組不同的特征,可以提高精確度。事實(shí)上,定期回顧你的處理過(guò)程可能是個(gè)好主意。正如我前面提到的,你可能會(huì)找到一種不同的算法或一組新的特征來(lái)改進(jìn)你的預(yù)測(cè),而這并不是連續(xù)學(xué)習(xí)系統(tǒng)所擅長(zhǎng)的。
也許你可以每個(gè)月或者每年用之前收集的數(shù)據(jù)來(lái)更新模型。
這還可能涉及對(duì)模型進(jìn)行反向測(cè)試,以便在重新擬合靜態(tài)模型時(shí)選擇適當(dāng)數(shù)量的歷史數(shù)據(jù)。
給數(shù)據(jù)加權(quán)重
另一個(gè)解決方案可能是給數(shù)據(jù)加權(quán)重。事實(shí)上,有些算法允許你權(quán)衡輸入數(shù)據(jù)的重要性。
使用與數(shù)據(jù)年齡成反比的加權(quán)系統(tǒng)可能會(huì)很有趣,這樣會(huì)更多地關(guān)注最近的數(shù)據(jù)(權(quán)重更高),而較少關(guān)注最近的數(shù)據(jù)(權(quán)重更小)。
持續(xù)學(xué)習(xí)
我最喜歡的方法是擁有一個(gè)能夠持續(xù)評(píng)估和重新訓(xùn)練模型的自動(dòng)化系統(tǒng)。持續(xù)學(xué)習(xí)系統(tǒng)的好處是它可以完全自動(dòng)化。
一般來(lái)說(shuō),合理的模型監(jiān)控與周密的模型檢查計(jì)劃相結(jié)合,對(duì)于保持生產(chǎn)模型的準(zhǔn)確性是至關(guān)重要的。對(duì)關(guān)鍵變量進(jìn)行優(yōu)先級(jí)檢查,并為發(fā)生更改時(shí)設(shè)置警告,這將確保你不會(huì)對(duì)環(huán)境的更改感到意外,而環(huán)境的更改會(huì)破壞你的模型的有效性。
對(duì)于數(shù)據(jù)點(diǎn)具有高度獨(dú)立性的輸入變量,可以使用統(tǒng)計(jì)過(guò)程控制中使用的控制圖來(lái)檢測(cè)過(guò)程的變化。
處理模型漂移
我堅(jiān)持這一點(diǎn),但你的ML成功也取決于你計(jì)劃如何維護(hù)你訓(xùn)練有素的模型。在幾個(gè)項(xiàng)目中,我意識(shí)到缺乏模型工作經(jīng)驗(yàn)的商業(yè)領(lǐng)袖可能無(wú)法預(yù)料到這種需求。
一個(gè)產(chǎn)品化的模型包括監(jiān)視和維護(hù)
應(yīng)該定期評(píng)估新數(shù)據(jù)集上的模型性能。應(yīng)該定期對(duì)這些性能跟蹤進(jìn)行可視化和比較,以便您可以確定何時(shí)進(jìn)行干預(yù)。有幾個(gè)度量ML性能的指標(biāo)。
模型退化的原因可以被明確地發(fā)現(xiàn)和建模。可以研究、理解和利用周期性時(shí)間效應(yīng)。一旦模型收集了足夠的性能指標(biāo),數(shù)據(jù)科學(xué)團(tuán)隊(duì)就可以處理這個(gè)項(xiàng)目。假設(shè)你一直在跟蹤他們。
定期考慮性能指標(biāo)并觸發(fā)重新訓(xùn)練或重建模型的過(guò)程也是必要的,因?yàn)闆](méi)有它,你將能夠看到性能損失,但沒(méi)有適當(dāng)?shù)南到y(tǒng)來(lái)解決它。
投入&團(tuán)隊(duì)
除了技術(shù)方面,我強(qiáng)烈建議你在項(xiàng)目投入生產(chǎn)后,將最好的數(shù)據(jù)科學(xué)家和工程師留在項(xiàng)目中。與經(jīng)典的軟件項(xiàng)目不同,在部署之后,你的操作團(tuán)隊(duì)處理它,工程師繼續(xù)構(gòu)建下一個(gè)大項(xiàng)目,ML和AI系統(tǒng)中的許多技術(shù)挑戰(zhàn)是保持它們的準(zhǔn)確性。
你還需要投入資源,以保持你的客戶(hù)使用的機(jī)器學(xué)習(xí)產(chǎn)品和服務(wù)的準(zhǔn)確性。這意味著與傳統(tǒng)軟件相比,ML產(chǎn)品的運(yùn)營(yíng)邊際成本更高。
維護(hù)成本
為了維護(hù)高質(zhì)量的模型,應(yīng)該在每次數(shù)據(jù)交付時(shí)對(duì)算法進(jìn)行再訓(xùn)練。另一方面,為了優(yōu)化成本,應(yīng)該盡可能少地去做。
顯然,某些機(jī)器學(xué)習(xí)開(kāi)發(fā)實(shí)踐需要更多的技術(shù)債,因此需要比其他實(shí)踐更多的未來(lái)維護(hù)。特定于機(jī)器學(xué)習(xí)的發(fā)展債風(fēng)險(xiǎn)因素是多種多樣的。它們包括無(wú)數(shù)的概率變量、數(shù)據(jù)依賴(lài)、遞歸反饋循環(huán)、管道流程、配置設(shè)置,以及加劇機(jī)器學(xué)習(xí)算法性能不可預(yù)測(cè)性的其他因素。
這些復(fù)雜性越多,就越難以進(jìn)行有效維護(hù)所需的根源分析。
你無(wú)法完全自動(dòng)化地解決維護(hù)負(fù)擔(dān)。在任何情況下,傾向于機(jī)器學(xué)習(xí)模型都需要仔細(xì)檢查、批判性思維和手工工作,而這些只有受過(guò)高度訓(xùn)練的數(shù)據(jù)科學(xué)家才能提供。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8500瀏覽量
134450
發(fā)布評(píng)論請(qǐng)先 登錄
電機(jī)高效再制造在企業(yè)生產(chǎn)中的應(yīng)用
電子產(chǎn)品生產(chǎn)中的電路板布線(xiàn)設(shè)計(jì)

機(jī)器學(xué)習(xí)模型市場(chǎng)前景如何
AI自動(dòng)化生產(chǎn):深度學(xué)習(xí)在質(zhì)量控制中的應(yīng)用

測(cè)徑儀 測(cè)測(cè)長(zhǎng)儀是如何應(yīng)用在卷煙生產(chǎn)中的?
在生產(chǎn)中實(shí)施MES的步驟
AI大模型與深度學(xué)習(xí)的關(guān)系
AI大模型與傳統(tǒng)機(jī)器學(xué)習(xí)的區(qū)別
在生產(chǎn)階段更新bq275xx固件

構(gòu)建語(yǔ)音控制機(jī)器人 - 線(xiàn)性模型和機(jī)器學(xué)習(xí)

在生產(chǎn)制造業(yè)中,碼垛機(jī)器人發(fā)揮的重要作用
現(xiàn)代化農(nóng)業(yè)生產(chǎn)中,立柱機(jī)器人不同規(guī)格肥料碼垛

評(píng)論