實現(xiàn)機器學(xué)習(xí)開發(fā)運營一體自動化|MATLAB 和 Simulink
【ZiDongHua創(chuàng)新自科文收錄關(guān)鍵詞:MathWorks 機器學(xué)習(xí) AutoML 運營一體自動化 MATLAB Simulink】
利用 MATLAB 和 Simulink 實現(xiàn)機器學(xué)習(xí)開發(fā)運營一體自動化
隨著越來越多的組織依賴機器學(xué)習(xí)應(yīng)用來實現(xiàn)核心業(yè)務(wù)功能,許多組織正在更深入地研究這些應(yīng)用的完整生命周期。他們已將關(guān)注觸角從最初的機器學(xué)習(xí)模型開發(fā)和部署,延伸到了持續(xù)監(jiān)控和更新。輸入數(shù)據(jù)的變化可能會降低模型的預(yù)測或分類準(zhǔn)確度。但及時地進行再訓(xùn)練和模型評估,有助于構(gòu)建更好的模型,并做出更準(zhǔn)確的決策。 對于機器學(xué)習(xí)操作 (ML Ops),在持續(xù)反饋循環(huán)(圖 1)中,開發(fā)領(lǐng)域的規(guī)劃、設(shè)計、構(gòu)建和測試活動與運營領(lǐng)域的部署、操作和監(jiān)控活動息息相關(guān)。許多數(shù)據(jù)科學(xué)團隊均已開始實現(xiàn) ML Ops 周期各環(huán)節(jié)(例如部署和操作)的自動化。
圖 1. ML Ops 周期。 但是,實現(xiàn)該周期的完全自動化還需要執(zhí)行其他步驟:監(jiān)控和評估模型性能,將該評估的結(jié)果納入性能更好的模型中,然后重新部署新模型。實現(xiàn)這種自動化大有裨益,讓數(shù)據(jù)科學(xué)家們能夠花更多的時間設(shè)計有用的 ML 解決方案,而花較少的時間進行 IT 管理和處理繁瑣易錯的手動任務(wù)。 為了說明如何在 MATLAB® 和 Simu ® 中使用基于模型的設(shè)計來自動執(zhí)行 ML Ops 過程,我們實現(xiàn)了虛構(gòu)的城市交通系統(tǒng)預(yù)測性維護應(yīng)用。組織需要采用一種方法來規(guī)劃其電動巴士車隊電池的維護或更換,以免電池在途中面臨出現(xiàn)故障的風(fēng)險。 這款應(yīng)用包括一個機器學(xué)習(xí)模型,該模型使用電池荷電狀態(tài) (SOC)、電流和其他測量數(shù)據(jù)來預(yù)測電池的健康狀態(tài) (SOH)。其他組件包括一個應(yīng)用服務(wù)器,用于大規(guī)模運行機器學(xué)習(xí)模型;一個漂移檢測組件,用于將觀察到的數(shù)據(jù)與訓(xùn)練數(shù)據(jù)進行比較,以確定需要再訓(xùn)練的時間;以及一個高保真電池物理模型,可用于自動標(biāo)注觀察到的數(shù)據(jù)。 最后一個組件是高保真物理模型。對許多組織來說,這是實現(xiàn)完全自動化過程中缺失的一個環(huán)節(jié)。沒有它,就需要有人來審查觀察到的數(shù)據(jù)并應(yīng)用標(biāo)簽;有了它,這個基本步驟乃至整個 ML Ops 周期便可實現(xiàn)自動化。 ▼ 構(gòu)建模型以生成電池數(shù)據(jù)和自動標(biāo)注 在開始訓(xùn)練機器學(xué)習(xí)模型,用于預(yù)測電池的健康狀態(tài)之前,我們首先需要有數(shù)據(jù)。在一些情況下,組織可能擁有大量從運行中的真實系統(tǒng)收集的數(shù)據(jù)。而在另一些情況下,數(shù)據(jù)必須通過仿真來生成,包括用于我們的虛構(gòu)交通系統(tǒng)的數(shù)據(jù)。 為了生成用于該交通網(wǎng)絡(luò)的電池系統(tǒng)的訓(xùn)練數(shù)據(jù),我們使用 Simu 和 Simscape™ 創(chuàng)建了兩個基于物理的模型。第一個模型運用了電和熱領(lǐng)域的動態(tài)特性,可生成真實的原始傳感器測量數(shù)據(jù),包括電流、電壓、溫度和 SOC(圖 2)。第二個模型可根據(jù)電池的估計容量和內(nèi)阻(源自第一個模型生成的測量數(shù)據(jù))計算 SOH。正是因為這第二個模型,我們才能自動標(biāo)注觀察到的數(shù)據(jù),并大大減少人為干預(yù)再訓(xùn)練循環(huán)的需求。
圖 2. 基于物理的 Simu 電池模型,用于生成原始傳感器測量數(shù)據(jù)。 通過對各電池應(yīng)用獨立的老化配置,并改變第一個模型的輸入環(huán)境溫度,我們?yōu)橐粋€大型車隊創(chuàng)建了歷史數(shù)據(jù)集,該數(shù)據(jù)集適用于訓(xùn)練我們的預(yù)測性維護機器學(xué)習(xí)模型。 ▼ 構(gòu)建和部署 ML 模型 有了訓(xùn)練數(shù)據(jù)之后,我們便將注意力轉(zhuǎn)向了 ML 模型。我們使用了診斷特征設(shè)計器(點擊“閱讀原文”獲取 App)來探索原始測量數(shù)據(jù),提取多域特征,并選擇具有最佳狀態(tài)指標(biāo)的特征集。鑒于我們的目標(biāo)是實現(xiàn)整個周期自動化,我們也需要實現(xiàn)模型選擇和訓(xùn)練自動化。為此,我們創(chuàng)建了一個稱為 AutoML 的組件。該組件通過 Statistics and Machine Learning Toolbox™ 內(nèi)置在 MATLAB 中,專用于根據(jù)一組給定的訓(xùn)練數(shù)據(jù)自動尋找最佳機器學(xué)習(xí)模型和最佳超參數(shù)。AutoML 組件也是從以下周期開始的:基于原始訓(xùn)練數(shù)據(jù)和我們的特征集生成初始機器學(xué)習(xí)模型。 除了支持向量機,AutoML 組件還用于訓(xùn)練和評估線性回歸模型、高斯過程回歸模型、提升決策樹集成、隨機森林,以及全連接前饋神經(jīng)網(wǎng)絡(luò)(圖 3)。AutoML 組件使用 MATLAB Parallel Server™,通過同時訓(xùn)練和評估多個模型來加速這一過程。
<p style="margin: 8px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; clear: both; min-height: 1em; color: rgb(34, 34, 34); font-family: system-ui, -apple-system, MacSystemFont, " helvetica="" neue",="" "pingfang="" sc",="" "hiragino="" sans="" gb",="" "microsoft="" yahei="" ui",="" yahei",="" arial,="" sans-serif;="" font-size:="" 17px;="" font-style:="" normal;="" font-variant-ligatures:="" font-variant-caps:="" font-weight:="" 400;="" letter-spacing:="" 0.544px;="" orphans:="" 2;="" text-indent:="" 0px;="" text-transform:="" none;="" white-space:="" widows:="" word-spacing:="" -webkit-text-stroke-width:="" background-color:="" rgb(255,="" 255,="" 255);="" text-decoration-thickness:="" initial;="" text-decoration-style:="" text-decoration-color:="" text-align:="" center;"="">
圖 3. 動畫顯示 AutoML 進程在評估各種模型和超參數(shù)選項時生成的結(jié)果。 當(dāng) AutoML 進程完成后,我們便使用 MATLAB Production Server™ 將最佳模型部署到了我們的本地生產(chǎn)環(huán)境中。 ▼ 識別并處理數(shù)據(jù)漂移 在許多機器學(xué)習(xí)問題中,都存在著一種隱式假設(shè),那就是用于訓(xùn)練模型的數(shù)據(jù)完全代表著整個特征空間的底層分布。換句話說,假設(shè)數(shù)據(jù)分布不變。實際上,情況并非總是如此。例如,在我們的電動巴士應(yīng)用中,我們可能已經(jīng)基于車輛將在一定溫度范圍內(nèi)運行這一假設(shè)訓(xùn)練了我們的模型。但在實際生產(chǎn)環(huán)境中,我們發(fā)現(xiàn),巴士經(jīng)常以高于這一范圍的溫度運行。數(shù)據(jù)的這種變化稱為漂移。隨著漂移的增加,模型預(yù)測的準(zhǔn)確度往往會降低。因此,數(shù)據(jù)科學(xué)家經(jīng)常需要檢測數(shù)據(jù)隨時間的推移而發(fā)生的變化并做出反應(yīng),這通常是通過訓(xùn)練新模型來實現(xiàn)的。 這里,我們應(yīng)當(dāng)區(qū)分概念漂移和數(shù)據(jù)漂移。對于機器學(xué)習(xí),概念漂移是指觀察到的特征和標(biāo)簽或響應(yīng)的聯(lián)合概率隨時間的推移而發(fā)生的變化。在生產(chǎn)環(huán)境中,將概念漂移用于機器學(xué)習(xí)模型可能相當(dāng)困難,因為特征值和響應(yīng)值需要同時已知。因此,許多組織都關(guān)注的是另一個最佳選擇,即數(shù)據(jù)漂移,也就是說僅限觀察到的特征而非標(biāo)簽的分布變化。這就是我們所采用的方法。 我們開發(fā)了一個用于檢測漂移的 MATLAB 應(yīng)用,可將新觀察到的數(shù)據(jù)中的值與模型訓(xùn)練集中的值進行比較。 在生產(chǎn)環(huán)境中,該應(yīng)用從 Apache® Kafka 流中近乎實時地讀取觀察到的數(shù)據(jù),并使用 MATLAB 函數(shù)進行電池健康預(yù)測,該函數(shù)使用我們的機器學(xué)習(xí)模型處理觀察到的數(shù)據(jù)(圖 4)。這一 MATLAB 函數(shù)是我們使用 Streaming Data work for MATLAB Production Server 框架開發(fā)的,后者使我們能夠輕松地從處理文件中的歷史數(shù)據(jù)轉(zhuǎn)為處理 Kafka 流中的實時數(shù)據(jù)。該框架通過一系列迭代來處理流數(shù)據(jù),因為并非整個流都納入內(nèi)存中。每次迭代分為四個步驟:從流中讀取一批觀察到的數(shù)據(jù),加載模型,做以預(yù)測并將其寫入輸出流,然后根據(jù)需要保存下一次迭代所需的任何數(shù)據(jù)。每批數(shù)據(jù)的大小要跨越足夠長的時間間隔,以確保提取的特征所捕獲的電池特性足以用于實現(xiàn)有效的 SOH 預(yù)測。
圖 4. 使用數(shù)據(jù)流的預(yù)測性維護模型。 值得一提的是,即使漂移檢測應(yīng)用確定觀察到的數(shù)據(jù)已發(fā)生了重大變化,這也不一定就意味著機器學(xué)習(xí)模型已經(jīng)過時。該應(yīng)用通過在整個基于物理的 SOH 模型中傳播新數(shù)據(jù)來獲得新觀察到的數(shù)據(jù)的響應(yīng)值(或標(biāo)簽)。在獲得這些值(或標(biāo)簽)之前,它無法確定模型是否過時。此時,該應(yīng)用可以將來自基于物理的模型的響應(yīng)值與來自機器學(xué)習(xí)模型的響應(yīng)值進行比較;如果這些值發(fā)生顯著變化,則應(yīng)使用新數(shù)據(jù)調(diào)用 AutoML 組件,并自動創(chuàng)建針對當(dāng)前來自車隊的數(shù)據(jù)進行了優(yōu)化的新機器學(xué)習(xí)模型。 您一定會問,既然我們可以先通過仿真來估計電池的健康狀態(tài),為什么還需要使用機器學(xué)習(xí)模型來預(yù)測呢?答案是,ML 模型可以近乎實時地生成預(yù)測結(jié)果,其速度可能比使用基于物理的仿真快得多。 ▼ 可擴展可廣泛適用的架構(gòu) 我們已將用于實現(xiàn) ML Ops 自動化的架構(gòu)設(shè)計為可水平擴展。預(yù)測和監(jiān)控組件都在 MATLAB Production Server 上運行,而模型訓(xùn)練在 MATLAB Parallel Server 上完成(圖 5)。該架構(gòu)也具有廣泛的適用性。雖然我們主要以電動巴士的預(yù)測性維護和漂移檢測為例,但該架構(gòu)可以輕松地適用于其他應(yīng)用和用例。例如,基于物理的 Simu 模型可以用在 MATLAB 中開發(fā)的數(shù)值模型代替。同樣,我們所用的許多現(xiàn)成組件,例如用于數(shù)據(jù)流傳輸?shù)?Apache Kafka,以及用于控制板框架的 Grafana,都可以用其他云原生服務(wù)代替。
圖 5. 用于實現(xiàn) ML Ops 自動化的水平可擴展架構(gòu)。 使用現(xiàn)成組件讓我們能夠?qū)W⒂诩軜?gòu),而不是實現(xiàn)細(xì)節(jié),就好像完全自動化的 ML Ops 周期使數(shù)據(jù)科學(xué)家能夠?qū)W⒂跈C器學(xué)習(xí)解決方案設(shè)計,而不是 IT 管理細(xì)節(jié)。
◆◆◆◆
微信聯(lián)盟:機器學(xué)習(xí)微信群、AutoML微信群、運營一體自動化微信群、MATLAB微信群、Simulink微信群,各細(xì)分行業(yè)微信群:點擊這里進入。
鴻達(dá)安視:水文水利在線監(jiān)測儀器、智慧農(nóng)業(yè)在線監(jiān)測儀器 查看各品牌在細(xì)分領(lǐng)域的定位宣傳語


評論排行