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

評論