機(jī)器學(xué)習(xí)已經(jīng)從一個(gè)有趣的研究課題迅速發(fā)展成為一個(gè)廣泛應(yīng)用的有效解決方案。其明顯的有效性迅速提高了來自AI理論家社區(qū)之外不斷增長的開發(fā)人員群體的興趣。在某些方面,機(jī)器學(xué)習(xí)開發(fā)能力正在發(fā)展到一個(gè)廣泛可用的水平,與其他建立在堅(jiān)實(shí)理論基礎(chǔ)上的技術(shù)一樣。開發(fā)一個(gè)有用的、高精度的機(jī)器學(xué)習(xí)應(yīng)用程序絕非易事。盡管如此,不斷增長的機(jī)器學(xué)習(xí)生態(tài)系統(tǒng)極大地減少了對(duì)底層算法深入理解的需求,并使越來越多的嵌入式開發(fā)人員對(duì)機(jī)器學(xué)習(xí)開發(fā)更感興趣,而不是對(duì)理論更感興趣。本文試圖重點(diǎn)介紹神經(jīng)網(wǎng)絡(luò)模型開發(fā)中使用的一些關(guān)鍵概念和方法,這本身就是一個(gè)極其多樣化的領(lǐng)域,也是嵌入式開發(fā)人員可以使用的一種實(shí)用機(jī)器學(xué)習(xí)方法。
與機(jī)器學(xué)習(xí)一樣,任何基于深度理論的方法都遵循從研究到工程的熟悉遷移模式。不久前,希望實(shí)現(xiàn)三相交流感應(yīng)電動(dòng)機(jī)精確控制的開發(fā)人員需要通過他們自己對(duì)相關(guān)微分方程組的解決方案來工作。如今,開發(fā)人員可以使用庫快速實(shí)現(xiàn)高級(jí)運(yùn)動(dòng)控制系統(tǒng),這些庫使用非常先進(jìn)的技術(shù)(如磁場定向控制、空間矢量調(diào)制、梯形控制等)打包完整的電機(jī)控制解決方案。除非面臨特殊要求,否則開發(fā)人員可以部署復(fù)雜的電機(jī)控制解決方案,而無需深入了解底層算法或其特定的數(shù)學(xué)方法。運(yùn)動(dòng)控制研究人員繼續(xù)用新的理論技術(shù)發(fā)展這門學(xué)科,但嵌入式開發(fā)人員可以開發(fā)有用的應(yīng)用程序,依靠庫來抽象底層方法。
在某些方面,機(jī)器學(xué)習(xí)也達(dá)到了類似的階段。雖然機(jī)器學(xué)習(xí)算法研究和機(jī)器學(xué)習(xí)特定硬件的進(jìn)步繼續(xù)取得巨大的進(jìn)步,但如果對(duì)其相關(guān)要求和當(dāng)前限制有適當(dāng)?shù)牧私?,這些算法的應(yīng)用已經(jīng)發(fā)展成為一種實(shí)用的工程方法。在這種情況下,機(jī)器學(xué)習(xí)可以產(chǎn)生有用的結(jié)果,需要的高級(jí)線性代數(shù)專業(yè)知識(shí)少于對(duì)目標(biāo)應(yīng)用程序數(shù)據(jù)的可觀理解,并且愿意接受一種比傳統(tǒng)軟件開發(fā)更具實(shí)驗(yàn)性的開發(fā)方法。對(duì)機(jī)器學(xué)習(xí)基礎(chǔ)感興趣的嵌入式開發(fā)人員會(huì)發(fā)現(xiàn)他們對(duì)細(xì)節(jié)的興趣完全滿足了。然而,那些幾乎沒有時(shí)間或興趣探索理論的人將發(fā)現(xiàn)一個(gè)不斷增長的機(jī)器學(xué)習(xí)生態(tài)系統(tǒng),它有望簡化有用的機(jī)器學(xué)習(xí)應(yīng)用程序的開發(fā)。
機(jī)器學(xué)習(xí)方法
工程師可以找到優(yōu)化的庫來支持廣泛的機(jī)器學(xué)習(xí),包括無監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí)和監(jiān)督學(xué)習(xí)。
無監(jiān)督學(xué)習(xí)可以揭示大量數(shù)據(jù)中的模式,但這種方法不能專門將這些模式標(biāo)記為屬于特定數(shù)據(jù)類別。但這些技術(shù)可能在諸如物聯(lián)網(wǎng)等應(yīng)用中被證明是重要的,以揭示數(shù)據(jù)集中的異常值或表明存在偏離數(shù)據(jù)趨勢(shì)的情況。例如,在工業(yè)應(yīng)用中,一組機(jī)器的傳感器讀數(shù)在統(tǒng)計(jì)上顯著偏離標(biāo)準(zhǔn)值,可能會(huì)作為該組機(jī)器潛在故障的指標(biāo)。類似地,在大規(guī)模分布式應(yīng)用程序(如物聯(lián)網(wǎng)應(yīng)用程序)中,如果大量偏離測量的性能參數(shù),可能會(huì)暴露出被黑客攻擊的設(shè)備,這些設(shè)備在數(shù)百或數(shù)千臺(tái)設(shè)備的網(wǎng)絡(luò)中運(yùn)行正常。
強(qiáng)化學(xué)習(xí)為應(yīng)用程序提供了一種通過實(shí)驗(yàn)進(jìn)行有效學(xué)習(xí)的方法,使用正反饋(獎(jiǎng)勵(lì))學(xué)習(xí)對(duì)事件的成功響應(yīng)。例如,檢測來自一組機(jī)器的異常傳感器讀數(shù)的強(qiáng)化學(xué)習(xí)系統(tǒng)可能會(huì)嘗試通過采取不同的措施,例如增加冷卻液流量、降低室溫、降低機(jī)器負(fù)載等,將這些讀數(shù)恢復(fù)到正常值。在了解了哪些操作導(dǎo)致成功后,嵌入式開發(fā)人員可以在下次系統(tǒng)看到相同的異常讀數(shù)時(shí)更快地執(zhí)行相同的操作。強(qiáng)化學(xué)習(xí)可能會(huì)在大規(guī)模復(fù)雜應(yīng)用(如物聯(lián)網(wǎng))中得到越來越多的應(yīng)用,因?yàn)樵谶@些應(yīng)用中,無法經(jīng)濟(jì)高效地預(yù)測所有已實(shí)現(xiàn)的運(yùn)行狀態(tài)。
監(jiān)督學(xué)習(xí)方法消除了與識(shí)別哪一組輸入對(duì)應(yīng)于哪一特定狀態(tài)(或?qū)ο?相關(guān)的猜測。在這種方法中,開發(fā)人員明確地標(biāo)識(shí)與特定對(duì)象、狀態(tài)或條件相對(duì)應(yīng)的輸入值或特征的組合。在假設(shè)的機(jī)器示例中,工程師將通過一組n個(gè)特征x來表示感興趣的問題,例如,不同的傳感器輸入、機(jī)器運(yùn)行時(shí)間、上次服務(wù)日期、機(jī)器壽命和其他可測量值。根據(jù)他們的專業(yè)知識(shí),工程師然后創(chuàng)建一個(gè)訓(xùn)練數(shù)據(jù)集–這些特征向量(x1
x2…Xn)的多個(gè)實(shí)例,每個(gè)實(shí)例都有n個(gè)與已知輸出狀態(tài)相關(guān)的觀測值,或標(biāo)簽y:
(X)11,x12、…X1N)?y1
(X)21,x22、…X2N)?y2
(X)31,x32、…X3n)?y3
…
給定這個(gè)訓(xùn)練集,已知測量的特征值和相應(yīng)的標(biāo)簽之間的關(guān)系,嵌入式開發(fā)人員訓(xùn)練一個(gè)模型(方程組),能夠產(chǎn)生預(yù)期的標(biāo)簽。yk對(duì)于每個(gè)特征向量(x1K
x2K…XNK
)在訓(xùn)練場。在這個(gè)訓(xùn)練過程中,訓(xùn)練算法采用迭代的方法,通過調(diào)整構(gòu)成模型的方程組的參數(shù),將預(yù)測的標(biāo)簽和實(shí)際的標(biāo)簽之間的差異降到最小。每一次通過訓(xùn)練集,稱為紀(jì)元,都會(huì)產(chǎn)生一組新的參數(shù),一組與這些參數(shù)相關(guān)聯(lián)的新的預(yù)測標(biāo)簽,以及相關(guān)的差異或損失。