【ZiDongHua創(chuàng)新自科文收錄關(guān)鍵詞:MathWorks   機(jī)器學(xué)習(xí)   AutoML  運(yùn)營一體自動化  MATLAB Simulink】

利用 MATLAB 和 Simulink 實(shí)現(xiàn)機(jī)器學(xué)習(xí)開發(fā)運(yùn)營一體自動化

隨著越來越多的組織依賴機(jī)器學(xué)習(xí)應(yīng)用來實(shí)現(xiàn)核心業(yè)務(wù)功能,許多組織正在更深入地研究這些應(yīng)用的完整生命周期。他們已將關(guān)注觸角從最初的機(jī)器學(xué)習(xí)模型開發(fā)和部署,延伸到了持續(xù)監(jiān)控和更新。輸入數(shù)據(jù)的變化可能會降低模型的預(yù)測或分類準(zhǔn)確度。但及時(shí)地進(jìn)行再訓(xùn)練和模型評估,有助于構(gòu)建更好的模型,并做出更準(zhǔn)確的決策。 對于機(jī)器學(xué)習(xí)操作 (ML Ops),在持續(xù)反饋循環(huán)(圖 1)中,開發(fā)領(lǐng)域的規(guī)劃、設(shè)計(jì)、構(gòu)建和測試活動與運(yùn)營領(lǐng)域的部署、操作和監(jiān)控活動息息相關(guān)。許多數(shù)據(jù)科學(xué)團(tuán)隊(duì)均已開始實(shí)現(xiàn) ML Ops 周期各環(huán)節(jié)(例如部署和操作)的自動化。

圖 1. ML Ops 周期。 但是,實(shí)現(xiàn)該周期的完全自動化還需要執(zhí)行其他步驟:監(jiān)控和評估模型性能,將該評估的結(jié)果納入性能更好的模型中,然后重新部署新模型。實(shí)現(xiàn)這種自動化大有裨益,讓數(shù)據(jù)科學(xué)家們能夠花更多的時(shí)間設(shè)計(jì)有用的 ML 解決方案,而花較少的時(shí)間進(jìn)行 IT 管理和處理繁瑣易錯(cuò)的手動任務(wù)。 為了說明如何在 MATLAB® 和 Simu ® 中使用基于模型的設(shè)計(jì)來自動執(zhí)行 ML Ops 過程,我們實(shí)現(xiàn)了虛構(gòu)的城市交通系統(tǒng)預(yù)測性維護(hù)應(yīng)用。組織需要采用一種方法來規(guī)劃其電動巴士車隊(duì)電池的維護(hù)或更換,以免電池在途中面臨出現(xiàn)故障的風(fēng)險(xiǎn)。 這款應(yīng)用包括一個(gè)機(jī)器學(xué)習(xí)模型,該模型使用電池荷電狀態(tài) (SOC)、電流和其他測量數(shù)據(jù)來預(yù)測電池的健康狀態(tài) (SOH)。其他組件包括一個(gè)應(yīng)用服務(wù)器,用于大規(guī)模運(yùn)行機(jī)器學(xué)習(xí)模型;一個(gè)漂移檢測組件,用于將觀察到的數(shù)據(jù)與訓(xùn)練數(shù)據(jù)進(jìn)行比較,以確定需要再訓(xùn)練的時(shí)間;以及一個(gè)高保真電池物理模型,可用于自動標(biāo)注觀察到的數(shù)據(jù)。 最后一個(gè)組件是高保真物理模型。對許多組織來說,這是實(shí)現(xiàn)完全自動化過程中缺失的一個(gè)環(huán)節(jié)。沒有它,就需要有人來審查觀察到的數(shù)據(jù)并應(yīng)用標(biāo)簽;有了它,這個(gè)基本步驟乃至整個(gè) ML Ops 周期便可實(shí)現(xiàn)自動化。 ▼ 構(gòu)建模型以生成電池?cái)?shù)據(jù)和自動標(biāo)注 在開始訓(xùn)練機(jī)器學(xué)習(xí)模型,用于預(yù)測電池的健康狀態(tài)之前,我們首先需要有數(shù)據(jù)。在一些情況下,組織可能擁有大量從運(yùn)行中的真實(shí)系統(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)建了兩個(gè)基于物理的模型。第一個(gè)模型運(yùn)用了電和熱領(lǐng)域的動態(tài)特性,可生成真實(shí)的原始傳感器測量數(shù)據(jù),包括電流、電壓、溫度和 SOC(圖 2)。第二個(gè)模型可根據(jù)電池的估計(jì)容量和內(nèi)阻(源自第一個(gè)模型生成的測量數(shù)據(jù))計(jì)算 SOH。正是因?yàn)檫@第二個(gè)模型,我們才能自動標(biāo)注觀察到的數(shù)據(jù),并大大減少人為干預(yù)再訓(xùn)練循環(huán)的需求。

圖 2. 基于物理的 Simu 電池模型,用于生成原始傳感器測量數(shù)據(jù)。 通過對各電池應(yīng)用獨(dú)立的老化配置,并改變第一個(gè)模型的輸入環(huán)境溫度,我們?yōu)橐粋€(gè)大型車隊(duì)創(chuàng)建了歷史數(shù)據(jù)集,該數(shù)據(jù)集適用于訓(xùn)練我們的預(yù)測性維護(hù)機(jī)器學(xué)習(xí)模型。 ▼ 構(gòu)建和部署 ML 模型 有了訓(xùn)練數(shù)據(jù)之后,我們便將注意力轉(zhuǎn)向了 ML 模型。我們使用了診斷特征設(shè)計(jì)器(點(diǎn)擊“閱讀原文”獲取 App)來探索原始測量數(shù)據(jù),提取多域特征,并選擇具有最佳狀態(tài)指標(biāo)的特征集。鑒于我們的目標(biāo)是實(shí)現(xiàn)整個(gè)周期自動化,我們也需要實(shí)現(xiàn)模型選擇和訓(xùn)練自動化。為此,我們創(chuàng)建了一個(gè)稱為 AutoML 的組件。該組件通過 Statistics and Machine Learning Toolbox™ 內(nèi)置在 MATLAB 中,專用于根據(jù)一組給定的訓(xùn)練數(shù)據(jù)自動尋找最佳機(jī)器學(xué)習(xí)模型和最佳超參數(shù)。AutoML 組件也是從以下周期開始的:基于原始訓(xùn)練數(shù)據(jù)和我們的特征集生成初始機(jī)器學(xué)習(xí)模型。 除了支持向量機(jī),AutoML 組件還用于訓(xùn)練和評估線性回歸模型、高斯過程回歸模型、提升決策樹集成、隨機(jī)森林,以及全連接前饋神經(jīng)網(wǎng)絡(luò)(圖 3)。AutoML 組件使用 MATLAB Parallel Server™,通過同時(shí)訓(xùn)練和評估多個(gè)模型來加速這一過程。

 

 

 

 

<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 進(jìn)程在評估各種模型和超參數(shù)選項(xiàng)時(shí)生成的結(jié)果。 當(dāng) AutoML 進(jìn)程完成后,我們便使用 MATLAB Production Server™ 將最佳模型部署到了我們的本地生產(chǎn)環(huán)境中。 ▼ 識別并處理數(shù)據(jù)漂移 在許多機(jī)器學(xué)習(xí)問題中,都存在著一種隱式假設(shè),那就是用于訓(xùn)練模型的數(shù)據(jù)完全代表著整個(gè)特征空間的底層分布。換句話說,假設(shè)數(shù)據(jù)分布不變。實(shí)際上,情況并非總是如此。例如,在我們的電動巴士應(yīng)用中,我們可能已經(jīng)基于車輛將在一定溫度范圍內(nèi)運(yùn)行這一假設(shè)訓(xùn)練了我們的模型。但在實(shí)際生產(chǎn)環(huán)境中,我們發(fā)現(xiàn),巴士經(jīng)常以高于這一范圍的溫度運(yùn)行。數(shù)據(jù)的這種變化稱為漂移。隨著漂移的增加,模型預(yù)測的準(zhǔn)確度往往會降低。因此,數(shù)據(jù)科學(xué)家經(jīng)常需要檢測數(shù)據(jù)隨時(shí)間的推移而發(fā)生的變化并做出反應(yīng),這通常是通過訓(xùn)練新模型來實(shí)現(xiàn)的。 這里,我們應(yīng)當(dāng)區(qū)分概念漂移和數(shù)據(jù)漂移。對于機(jī)器學(xué)習(xí),概念漂移是指觀察到的特征和標(biāo)簽或響應(yīng)的聯(lián)合概率隨時(shí)間的推移而發(fā)生的變化。在生產(chǎn)環(huán)境中,將概念漂移用于機(jī)器學(xué)習(xí)模型可能相當(dāng)困難,因?yàn)樘卣髦岛晚憫?yīng)值需要同時(shí)已知。因此,許多組織都關(guān)注的是另一個(gè)最佳選擇,即數(shù)據(jù)漂移,也就是說僅限觀察到的特征而非標(biāo)簽的分布變化。這就是我們所采用的方法。 我們開發(fā)了一個(gè)用于檢測漂移的 MATLAB 應(yīng)用,可將新觀察到的數(shù)據(jù)中的值與模型訓(xùn)練集中的值進(jìn)行比較。 在生產(chǎn)環(huán)境中,該應(yīng)用從 Apache® Kafka 流中近乎實(shí)時(shí)地讀取觀察到的數(shù)據(jù),并使用 MATLAB 函數(shù)進(jìn)行電池健康預(yù)測,該函數(shù)使用我們的機(jī)器學(xué)習(xí)模型處理觀察到的數(shù)據(jù)(圖 4)。這一 MATLAB 函數(shù)是我們使用 Streaming Data work for MATLAB Production Server 框架開發(fā)的,后者使我們能夠輕松地從處理文件中的歷史數(shù)據(jù)轉(zhuǎn)為處理 Kafka 流中的實(shí)時(shí)數(shù)據(jù)。該框架通過一系列迭代來處理流數(shù)據(jù),因?yàn)椴⒎钦麄€(gè)流都納入內(nèi)存中。每次迭代分為四個(gè)步驟:從流中讀取一批觀察到的數(shù)據(jù),加載模型,做以預(yù)測并將其寫入輸出流,然后根據(jù)需要保存下一次迭代所需的任何數(shù)據(jù)。每批數(shù)據(jù)的大小要跨越足夠長的時(shí)間間隔,以確保提取的特征所捕獲的電池特性足以用于實(shí)現(xiàn)有效的 SOH 預(yù)測。

圖 4. 使用數(shù)據(jù)流的預(yù)測性維護(hù)模型。 值得一提的是,即使漂移檢測應(yīng)用確定觀察到的數(shù)據(jù)已發(fā)生了重大變化,這也不一定就意味著機(jī)器學(xué)習(xí)模型已經(jīng)過時(shí)。該應(yīng)用通過在整個(gè)基于物理的 SOH 模型中傳播新數(shù)據(jù)來獲得新觀察到的數(shù)據(jù)的響應(yīng)值(或標(biāo)簽)。在獲得這些值(或標(biāo)簽)之前,它無法確定模型是否過時(shí)。此時(shí),該應(yīng)用可以將來自基于物理的模型的響應(yīng)值與來自機(jī)器學(xué)習(xí)模型的響應(yīng)值進(jìn)行比較;如果這些值發(fā)生顯著變化,則應(yīng)使用新數(shù)據(jù)調(diào)用 AutoML 組件,并自動創(chuàng)建針對當(dāng)前來自車隊(duì)的數(shù)據(jù)進(jìn)行了優(yōu)化的新機(jī)器學(xué)習(xí)模型。 您一定會問,既然我們可以先通過仿真來估計(jì)電池的健康狀態(tài),為什么還需要使用機(jī)器學(xué)習(xí)模型來預(yù)測呢?答案是,ML 模型可以近乎實(shí)時(shí)地生成預(yù)測結(jié)果,其速度可能比使用基于物理的仿真快得多。 ▼ 可擴(kuò)展可廣泛適用的架構(gòu) 我們已將用于實(shí)現(xiàn) ML Ops 自動化的架構(gòu)設(shè)計(jì)為可水平擴(kuò)展。預(yù)測和監(jiān)控組件都在 MATLAB Production Server 上運(yùn)行,而模型訓(xùn)練在 MATLAB Parallel Server 上完成(圖 5)。該架構(gòu)也具有廣泛的適用性。雖然我們主要以電動巴士的預(yù)測性維護(hù)和漂移檢測為例,但該架構(gòu)可以輕松地適用于其他應(yīng)用和用例。例如,基于物理的 Simu 模型可以用在 MATLAB 中開發(fā)的數(shù)值模型代替。同樣,我們所用的許多現(xiàn)成組件,例如用于數(shù)據(jù)流傳輸?shù)?Apache Kafka,以及用于控制板框架的 Grafana,都可以用其他云原生服務(wù)代替。

圖 5. 用于實(shí)現(xiàn) ML Ops 自動化的水平可擴(kuò)展架構(gòu)。 使用現(xiàn)成組件讓我們能夠?qū)W⒂诩軜?gòu),而不是實(shí)現(xiàn)細(xì)節(jié),就好像完全自動化的 ML Ops 周期使數(shù)據(jù)科學(xué)家能夠?qū)W⒂跈C(jī)器學(xué)習(xí)解決方案設(shè)計(jì),而不是 IT 管理細(xì)節(jié)。

◆◆◆◆