如何在單片機(jī)上實(shí)現(xiàn)邊緣的人工智能
越來(lái)越多的人工智能(AI)在互聯(lián)網(wǎng)上的東西設(shè)備中創(chuàng)造智能的設(shè)備,各種應(yīng)用正受益于這些智能設(shè)備。他們學(xué)習(xí)數(shù)據(jù),在沒(méi)有人為干預(yù)的情況下做出自主決策,導(dǎo)致產(chǎn)品與環(huán)境進(jìn)行更合乎邏輯、更像人類的互動(dòng)。
人工智能和微處理器的結(jié)合為單片機(jī)開(kāi)辟了新的市場(chǎng)。它使越來(lái)越多的新的應(yīng)用程序和用例能夠使用簡(jiǎn)單的單片機(jī)和人工智能加速來(lái)促進(jìn)智能控制。這些由AI啟動(dòng)的單片機(jī)提供了一種獨(dú)特的DSP計(jì)算和機(jī)器學(xué)習(xí)能力(ML)來(lái)進(jìn)行推理,目前正被用于各種各樣的應(yīng)用,如關(guān)鍵字識(shí)別、傳感器融合、振動(dòng)分析和語(yǔ)音識(shí)別。高性能的單片機(jī)能夠在視覺(jué)和成像方面提供更復(fù)雜的應(yīng)用,如面部識(shí)別、指紋分析和自主機(jī)器人。
人工智能技術(shù)
下面是一些能夠使用iot設(shè)備的人工智能技術(shù):
機(jī)器學(xué)習(xí) :機(jī)器學(xué)習(xí)算法基于代表性數(shù)據(jù)建立模型,使設(shè)備能夠在沒(méi)有人為干預(yù)的情況下自動(dòng)識(shí)別模式。ML供應(yīng)商提供了訓(xùn)練模型所需的算法、API和工具,這些模型可以被構(gòu)建到嵌入式系統(tǒng)中。然后,這些嵌入式系統(tǒng)使用預(yù)先訓(xùn)練的模型來(lái)驅(qū)動(dòng)基于新輸入數(shù)據(jù)的推論或預(yù)測(cè)。例如傳感器中心,關(guān)鍵詞識(shí)別,預(yù)測(cè)維護(hù)和分類。
深入學(xué)習(xí) 深度學(xué)習(xí)是一種機(jī)器學(xué)習(xí),通過(guò)使用神經(jīng)網(wǎng)絡(luò)的許多層來(lái)從復(fù)雜的輸入數(shù)據(jù)中提取更高層次的特性和見(jiàn)解來(lái)訓(xùn)練系統(tǒng)。深度學(xué)習(xí)與非常大、多樣和復(fù)雜的輸入數(shù)據(jù)一起工作,并使系統(tǒng)能夠迭代學(xué)習(xí),隨著每一步的進(jìn)行改進(jìn)結(jié)果。運(yùn)用深入學(xué)習(xí)的應(yīng)用實(shí)例有圖像處理、客戶服務(wù)的聊天機(jī)器人和面部識(shí)別。
自然語(yǔ)言處理(NLP) :NLP是人工智能的一個(gè)分支,處理系統(tǒng)與人類之間使用自然語(yǔ)言的互動(dòng)。NLP幫助系統(tǒng)理解和解釋人類語(yǔ)言(文本或語(yǔ)音),并在此基礎(chǔ)上做出決策。例如語(yǔ)音識(shí)別系統(tǒng)、機(jī)器翻譯和預(yù)測(cè)打字.
計(jì)算機(jī)視覺(jué) :機(jī)器/計(jì)算機(jī)視覺(jué)是一個(gè)人工智能領(lǐng)域,培訓(xùn)機(jī)器收集、解釋和理解圖像數(shù)據(jù),并根據(jù)這些數(shù)據(jù)采取行動(dòng)。機(jī)器從相機(jī)上收集數(shù)字圖像/視頻,使用深入學(xué)習(xí)的模型和圖像分析工具,以精確地識(shí)別和分類物體,并根據(jù)它們"看到"的東西采取行動(dòng)。例如制造裝配線故障檢測(cè)、醫(yī)療診斷、零售店的面部識(shí)別和無(wú)人駕駛汽車測(cè)試。
母嬰健康評(píng)估計(jì)劃
過(guò)去,人工智能是具有強(qiáng)大CPU核心、大內(nèi)存資源和用于分析的云連接的MPS和GPS的權(quán)限。不過(guò),近年來(lái),隨著智能化程度的日益提高,我們開(kāi)始看到在嵌入式AOT應(yīng)用程序中使用單片機(jī)。移動(dòng)到邊緣是由延遲和成本因素驅(qū)動(dòng)的,涉及到將計(jì)算移動(dòng)到更接近數(shù)據(jù)的位置。基于單片機(jī)的iot設(shè)備上的人工智能能夠?qū)崟r(shí)決策和更快地響應(yīng)事件,具有帶寬需求較低、功率較低、延遲時(shí)間較低、成本較低和安全性較高的優(yōu)點(diǎn)。由于最近的單片機(jī)具有較高的計(jì)算能力,以及薄神經(jīng)網(wǎng)絡(luò)(NN)框架的可用性,而這些框架更適合于在這些終端設(shè)備中使用的資源受限的單片機(jī)。
神經(jīng)網(wǎng)絡(luò)是一個(gè)節(jié)點(diǎn)的集合,被安排在一個(gè)層中,接收上一層的輸入,并生成一個(gè)輸出,該輸出是從輸入的加權(quán)和偏置和中計(jì)算出來(lái)的。這個(gè)輸出沿著所有的輸出連接傳遞到下一層。在訓(xùn)練過(guò)程中,訓(xùn)練數(shù)據(jù)被輸入到網(wǎng)絡(luò)的第一個(gè)或輸入層,每個(gè)層的輸出被傳遞到下一個(gè)。最后一層或輸出層生成模型的預(yù)測(cè)值,這些預(yù)測(cè)值與評(píng)估模型錯(cuò)誤的已知預(yù)期值進(jìn)行比較。訓(xùn)練過(guò)程涉及到在每次迭代中使用一個(gè)叫做反傳播的過(guò)程來(lái)完善或調(diào)整網(wǎng)絡(luò)每個(gè)層的權(quán)重和偏差,直到網(wǎng)絡(luò)的輸出與預(yù)期值密切相關(guān)。換句話說(shuō),網(wǎng)絡(luò)從輸入數(shù)據(jù)集中反復(fù)"學(xué)習(xí)",并逐步提高輸出預(yù)測(cè)的準(zhǔn)確性。
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練需要非常高的計(jì)算性能和內(nèi)存,通常在云中進(jìn)行。經(jīng)過(guò)訓(xùn)練,該預(yù)訓(xùn)練的NN模型嵌入到單片機(jī)中,并作為基于訓(xùn)練的新輸入數(shù)據(jù)的推理引擎。
這種推理生成需要比模型的訓(xùn)練低得多的計(jì)算性能,因此適合于單片機(jī)。這種預(yù)先訓(xùn)練的NN模型的權(quán)重是固定的,可以放在閃存,從而減少SRAM的需求量,使其適合于更多的資源受限的單片機(jī)。
關(guān)于婦幼保健單位的實(shí)施
在單片機(jī)上實(shí)施AOOT涉及到幾個(gè)步驟。最常見(jiàn)的方法是使用現(xiàn)有的神經(jīng)網(wǎng)絡(luò)(NN)框架模型之一,如卡菲或張力流巖,適合于基于單片機(jī)的終端設(shè)備解決方案。用于機(jī)器學(xué)習(xí)的NN模型的培訓(xùn)是由人工智能專家使用人工智能供應(yīng)商提供的工具在云端進(jìn)行的。利用AI供應(yīng)商和單片機(jī)制造商的工具,對(duì)單片機(jī)進(jìn)行了NN模型的優(yōu)化和集成。采用預(yù)先訓(xùn)練的NN模型對(duì)單片機(jī)進(jìn)行了推斷。
流程的第一步是完全脫機(jī)完成,從終端設(shè)備或應(yīng)用程序捕獲大量數(shù)據(jù),然后用于培訓(xùn)NN模型。模型的拓?fù)浣Y(jié)構(gòu)由AI開(kāi)發(fā)人員定義,以充分利用可用數(shù)據(jù)并提供該應(yīng)用程序所需的輸出。對(duì)NN模型的訓(xùn)練是通過(guò)迭代地將數(shù)據(jù)集傳遞到模型中來(lái)完成的,目的是持續(xù)地減少模型輸出時(shí)的錯(cuò)誤。國(guó)家網(wǎng)絡(luò)框架中有一些工具可以在這個(gè)過(guò)程中提供幫助。
在第二步中,這些經(jīng)過(guò)培訓(xùn)的模型被轉(zhuǎn)換成適合于單片機(jī)的格式,這些模型被優(yōu)化用于某些功能,如關(guān)鍵字識(shí)別或語(yǔ)音識(shí)別。這個(gè)過(guò)程的第一步是使用AI轉(zhuǎn)換工具將它轉(zhuǎn)換為平面緩沖文件。這可以選擇性地通過(guò)量化器運(yùn)行,以減少尺寸和優(yōu)化它的單片機(jī)。然后將該平面緩沖區(qū)文件轉(zhuǎn)換為C代碼,并將其作為運(yùn)行時(shí)可執(zhí)行文件傳輸?shù)侥繕?biāo)單片機(jī)。
這個(gè)單片機(jī),配備了預(yù)先訓(xùn)練的嵌入式人工智能模型,現(xiàn)在可以部署在終端設(shè)備。當(dāng)新數(shù)據(jù)輸入時(shí),它將通過(guò)模型運(yùn)行,并在培訓(xùn)的基礎(chǔ)上生成一個(gè)推理。當(dāng)新的數(shù)據(jù)類出現(xiàn)時(shí),NN模型可以被送回云端進(jìn)行再培訓(xùn),新的再培訓(xùn)模型可以在單片機(jī)上編程,可能通過(guò)OTA(空)固件升級(jí)。
可以用兩種不同的方式來(lái)架構(gòu)基于mcu的AI解決方案。為了討論這個(gè)問(wèn)題,我們假設(shè)在目標(biāo)單片機(jī)中使用ARM皮質(zhì)M核。
在第一種方法中,將轉(zhuǎn)換的NN模型在皮層-MCPU核心上執(zhí)行,并使用CMS-NN庫(kù)進(jìn)行加速。這是一個(gè)簡(jiǎn)單的配置,可以處理沒(méi)有任何額外的硬件加速度,適合于更簡(jiǎn)單的AI應(yīng)用程序,如關(guān)鍵字定位,振動(dòng)分析和傳感器樞紐。
一個(gè)更復(fù)雜和更高性能的選擇包括一個(gè)NN加速器或微神經(jīng)處理單元(U-NSP)硬件在單片機(jī)。這些U-NPS在資源受限的iot終端設(shè)備中加速機(jī)器學(xué)習(xí),并可能支持壓縮,從而降低模型的功率和尺寸。它們支持能夠完全執(zhí)行音頻處理、語(yǔ)音識(shí)別、圖像分類和對(duì)象檢測(cè)的大多數(shù)公共NN網(wǎng)絡(luò)的操作員。不受u-n-n支持的網(wǎng)絡(luò)可以回到主CPU核心,并由cms-nn庫(kù)加速。在此方法中,NN模型被執(zhí)行在UNP上。
這些方法只展示了在基于單片機(jī)的設(shè)備中集成AI的幾種方法。隨著單片機(jī)將性能邊界推到更高的層次,更接近于來(lái)自MPPS的預(yù)期,我們希望開(kāi)始看到包括輕量級(jí)學(xué)習(xí)算法和推理在內(nèi)的完整的AI功能,直接建立在單片機(jī)上。
在邊緣的人工智能是未來(lái)
未來(lái),關(guān)于資源受限的單片機(jī)系統(tǒng)的人工智能的實(shí)施將呈指數(shù)級(jí)增長(zhǎng),隨著單片機(jī)系統(tǒng)推進(jìn)性能界限,模糊了單片機(jī)和MPS之間的界線,越來(lái)越多的適合于資源受限設(shè)備的小的NN模型開(kāi)始出現(xiàn),我們將繼續(xù)看到新的應(yīng)用程序和用例出現(xiàn)。
將來(lái),隨著單片機(jī)性能的提高,除了推理之外,我們可能會(huì)看到輕量級(jí)學(xué)習(xí)算法的實(shí)現(xiàn),直接在單片機(jī)上運(yùn)行。這將為單片機(jī)制造商開(kāi)辟新的市場(chǎng)和應(yīng)用,并將成為它們的一個(gè)重大投資領(lǐng)域。