開發(fā)機(jī)器學(xué)習(xí)項(xiàng)目的五個(gè)步驟 — 掌握要點(diǎn),應(yīng)用并不困難!
邊緣機(jī)器學(xué)習(xí)具有許多優(yōu)勢(shì)。 然而,由于開發(fā)方法與標(biāo)準(zhǔn)程序設(shè)計(jì)方法截然不同,許多機(jī)器學(xué)習(xí)開發(fā)者可能會(huì)擔(dān)心自己難以駕馭。
其實(shí),完全沒有必要擔(dān)心。一旦熟悉了步驟,并掌握了機(jī)器學(xué)習(xí)項(xiàng)目的要點(diǎn),就能夠開發(fā)具有價(jià)值的機(jī)器學(xué)習(xí)應(yīng)用。此外,意法半導(dǎo)體(STMicroelectronics;ST)提供解決方案,以促進(jìn)邊緣機(jī)器學(xué)習(xí)得到廣泛應(yīng)用發(fā)揮全部潛力。本文描述機(jī)器學(xué)習(xí)項(xiàng)目的必要開發(fā)步驟,并介紹了ST MEMS傳感器內(nèi)嵌機(jī)器學(xué)習(xí)核心(MLC)的優(yōu)勢(shì)。
圖一 : 嵌入式ST傳感器的機(jī)器學(xué)習(xí)核心
首先,針對(duì)機(jī)器學(xué)習(xí)模型--判定樹(Decision Tree),該模型與MLC一起內(nèi)嵌在ST MEMS中。
當(dāng)用戶想要在嵌入式系統(tǒng)中使用機(jī)器學(xué)習(xí)或深度學(xué)習(xí)功能時(shí),通??砂凑找韵挛鍌€(gè)步驟進(jìn)行開發(fā)(圖二)。
圖二 : AI項(xiàng)目開發(fā)的五個(gè)步驟
在步驟1中,開發(fā)者需要收集機(jī)器學(xué)習(xí)所需的數(shù)據(jù)。該數(shù)據(jù)集的一部分(訓(xùn)練集)將用于訓(xùn)練模型,另一部分(測(cè)試集)將用于評(píng)估所構(gòu)建模型的性能。機(jī)器學(xué)習(xí)的數(shù)據(jù)集中典型的拆分比率為:訓(xùn)練集80%,測(cè)試集20%。
在步驟2中,需要對(duì)數(shù)據(jù)進(jìn)行標(biāo)注。開發(fā)者需要將收集到的數(shù)據(jù)標(biāo)注類別(例如「跑步」、「散步」、「靜止」等);而判定樹是一種基于開發(fā)者所決定的分類模型。
分類則是指根據(jù)重要的屬性對(duì)數(shù)據(jù)進(jìn)行分類:這種屬性在機(jī)器學(xué)習(xí)領(lǐng)域被稱為「類別」。
接下來,在步驟3中,使用預(yù)先準(zhǔn)備的數(shù)據(jù)集訓(xùn)練機(jī)器學(xué)習(xí)模型。該任務(wù)亦稱為「fitting」。訓(xùn)練結(jié)果的準(zhǔn)確性在很大程度上取決于訓(xùn)練集的內(nèi)容和數(shù)量。
在步驟4,將訓(xùn)練過的機(jī)器學(xué)習(xí)模型嵌入到系統(tǒng)中。用戶可以利用Pythonlibrary直接運(yùn)行模型。 對(duì)于在MCU等組件上運(yùn)行的機(jī)器學(xué)習(xí)算法,開發(fā)者可以在執(zhí)行之前將該library轉(zhuǎn)換為C程序。 而針對(duì)MEMS MLC等硬件連接型解決方案,開發(fā)者可以在執(zhí)行之前使用專用軟件UNICO-GUI將library轉(zhuǎn)換為register setting。
最后步驟5,驗(yàn)證機(jī)器學(xué)習(xí)模型。 如果驗(yàn)證結(jié)果與預(yù)期的結(jié)果不能匹配,則開發(fā)者必須審視上述步驟中需要改進(jìn)的部分,以及如何改進(jìn)。
模擬人類在進(jìn)行分類的思維方式-判定樹
在機(jī)器學(xué)習(xí)興起之前,判定樹模型就已經(jīng)用于數(shù)據(jù)分類。例如雜志上的性格測(cè)試 - 在測(cè)試中,您需要依照順序回答多個(gè)問題(順序是依照每個(gè)問題的分支而決定的),之后再根據(jù)結(jié)果推斷測(cè)試者的性格。這是一個(gè)典型的判定樹范例。為了創(chuàng)造一個(gè)機(jī)器學(xué)習(xí)分類模型,需要在每個(gè)階段組合多個(gè)檢查點(diǎn)(稱為decision node)。
在另一個(gè)例子中,一位經(jīng)驗(yàn)豐富的房地產(chǎn)經(jīng)紀(jì)人評(píng)估來訪客戶是否會(huì)根據(jù)如下圖所示的判定樹購買房產(chǎn):他將到達(dá)一個(gè)最終節(jié)點(diǎn)(或稱leaf),并根據(jù)每個(gè)node的條件做出最終決定。
圖三 : 判定樹范例(以房地產(chǎn)業(yè)者為例)
在開發(fā)判定樹之前,必須通過分類算法確定三個(gè)要點(diǎn),即要解決的問題、分類過程中感興趣的參數(shù)(特征值,即input),以及要尋找的最終答案(即output)。 在房地產(chǎn)經(jīng)紀(jì)人的例子中,問題是預(yù)測(cè)客戶是否會(huì)購買房產(chǎn)。 答案是客戶是否會(huì)購買房產(chǎn)。
總之,特征處理是獲得準(zhǔn)確答案的關(guān)鍵。 在這種情況下,特征可以包括客戶的收入、房產(chǎn)的價(jià)格、房間的數(shù)量,以及是否有停車位等等。得到的答案很大程度上取決于特征值、特征的順序,以及分類閾值(用于區(qū)分?jǐn)?shù)據(jù)的thresholds)。為了創(chuàng)造機(jī)器學(xué)習(xí)判定樹,開發(fā)者必須先定義需要的特征和閾值。接著可以透過反復(fù)學(xué)習(xí)來改善判定樹的結(jié)構(gòu)以獲得更準(zhǔn)確的答案,進(jìn)而優(yōu)化每個(gè)node的特征選擇順序和分類閾值。
判定樹方法看起來像是傳統(tǒng)的「if-then-else」方法,那不同之處在哪呢?
關(guān)鍵在于所使用的特征、決策節(jié)點(diǎn)的位置、閾值和判定樹的結(jié)構(gòu)不是由設(shè)計(jì)人員事先決定的,而是模型根據(jù)數(shù)據(jù)集學(xué)習(xí)而來。 事實(shí)上,若依據(jù)米蘭、東京或上海的房地產(chǎn)數(shù)據(jù)集訓(xùn)練模型(例如,房地產(chǎn)模型)時(shí),可能會(huì)得到不同的結(jié)果。
走過AI邊緣裝置的過渡期-在內(nèi)建MLC的ST MEMS傳感器上運(yùn)行嵌入式判定樹。
ST提供了LSM6DSOX、LSM6DSO32X、LSM6DSRX和ISM330DHCX(這些裝置將MEMS傳感器與3軸加速度計(jì)、3軸陀螺儀和MLC整合),以及IIS2ICLX(整合了超高精度2軸加速度傳感器和MLC)。
因應(yīng)機(jī)器學(xué)習(xí)分類的需求,我們進(jìn)行了硬件邏輯優(yōu)化且具備出色的傳感器規(guī)格(圖三),內(nèi)建MLC的MEMS動(dòng)作傳感器為使用者提供具有低功耗和較高實(shí)時(shí)精度的個(gè)人化嵌入式判定樹(圖三)。 MLC可以執(zhí)行高達(dá)32個(gè)特征值的判定樹。 意法半導(dǎo)體也提供了開發(fā)環(huán)境,以便開發(fā)者輕松開發(fā)在MLC中運(yùn)行的判定樹。
開發(fā)者可以在機(jī)器學(xué)習(xí)常用平臺(tái)(如Weka、RapidMiner、MATLAB和Python(圖四))上進(jìn)行開發(fā)。 盡管這些平臺(tái)相當(dāng)靈活且多功能,開發(fā)者仍需具備足夠的知識(shí)和技能才能妥善開發(fā)適合該應(yīng)用的判定樹。
圖四 : MEMS MCL訓(xùn)練流程
為此,意法半導(dǎo)體針對(duì)ST MEMS傳感器開發(fā)板提供了Unico-GUI軟件,其中包含多種特征,便于輕松開發(fā)判定樹并載入至MLC。 Unico-GUI用戶能夠輕松、直觀地收集數(shù)據(jù),并透過簡(jiǎn)單易用的GUI來訓(xùn)練、驗(yàn)證模型。
意法半導(dǎo)體推出高度通用、配備多種傳感器的開發(fā)板,可滿足廣泛的硬件規(guī)格需求(圖5)。 開發(fā)板配備支持MLC的MEMS動(dòng)作傳感器,并具有支持無線連接、可由電池供電、可在SD卡上存儲(chǔ)數(shù)據(jù)等特點(diǎn),具有高度通用性,可用于廣泛的應(yīng)用(包括汽車、工業(yè)用儀表和消費(fèi)性電子裝置)。 意法半導(dǎo)體更提供AlgoBuilderSuite PC軟件,該軟件(搭配使用Unicleo)提供GUI,可以輕松在開發(fā)板上操作,并進(jìn)行數(shù)據(jù)搜集。 有了AlgoBuilderSuite,開發(fā)者可以輕松、直觀地對(duì)傳感器進(jìn)行程序設(shè)計(jì),且無需編寫撰寫任何程序。
圖五 : 數(shù)據(jù)收集 – ST軟件與硬件工具
本文引用地址:http://www.eepw.com.cn/article/202112/430173.htm