最初,具有所有“無(wú)限”功能的云計(jì)算似乎消除了邊緣設(shè)備擁有任何實(shí)質(zhì)性智能的需求。然而,過(guò)去幾年出現(xiàn)了在邊緣設(shè)備中實(shí)施人工智能 (AI) 和機(jī)器學(xué)習(xí) (ML) 的趨勢(shì),以解決數(shù)據(jù)傳輸延遲、隱私和更大的設(shè)備自主性等問(wèn)題。這為在邊緣設(shè)備中構(gòu)建嵌入式系統(tǒng)帶來(lái)了一定的內(nèi)存需求。本文探討了適用于邊緣設(shè)備的某些 ML 方案以及使它們成為可能的非易失性存儲(chǔ)器要求。
為什么要在邊緣設(shè)備上使用機(jī)器學(xué)習(xí) (ML)
邊緣設(shè)備是生成 ML 數(shù)據(jù)的地方。物聯(lián)網(wǎng)、工業(yè)和消費(fèi)領(lǐng)域的應(yīng)用程序從他們自己的傳感器生成大量數(shù)據(jù),并且需要能夠根據(jù)來(lái)自人機(jī)界面 (HMI) 的命令做出快速?zèng)Q策。傳感器融合技術(shù)使在邊緣設(shè)備上獲取數(shù)據(jù)更容易、更快、更準(zhǔn)確。HMI 使人機(jī)交互更加用戶(hù)友好和自適應(yīng)。自然,在 ML 計(jì)算引擎中處理更接近其來(lái)源的數(shù)據(jù)是有意義的。邊緣計(jì)算永遠(yuǎn)不會(huì)取代云計(jì)算;但是,不必將數(shù)據(jù)傳輸?shù)皆贫?,可以更快地?xùn)練機(jī)器,并且可以大大減少與云服務(wù)器的連接帶寬。
廣泛的物聯(lián)網(wǎng)應(yīng)用程序可以從本地 AI 處理中受益。圖 1 顯示了 SensiML 的圖表,其中列出了邊緣設(shè)備上的 AI 處理示例。
當(dāng)然,在邊緣設(shè)備上實(shí)施 ML 肯定會(huì)遇到挑戰(zhàn)。例如,邊緣設(shè)備可能依賴(lài)電池,因此能量預(yù)算有限。它們也可能具有有限的計(jì)算能力和/或存儲(chǔ)空間。然而,現(xiàn)代 MCU 技術(shù)正在邊緣設(shè)備上實(shí)現(xiàn)這一點(diǎn)。如圖 2 所示,根據(jù) Barth Development 所做的研究,在過(guò)去的幾十年中,我們可以看到,雖然 MCU 功耗保持相對(duì)平穩(wěn),但晶體管數(shù)量、時(shí)鐘速度、并行內(nèi)核數(shù)量都呈上升趨勢(shì)。隨著更多高性能、低功耗 MCU 的出現(xiàn),邊緣計(jì)算可以幫助構(gòu)建智能且用戶(hù)友好的系統(tǒng)。
圖 2:過(guò)去幾年的 MCU 研究(來(lái)源:Barth Development)
機(jī)器學(xué)習(xí)的不同方案
一般來(lái)說(shuō),機(jī)器學(xué)習(xí)可以分為兩大類(lèi):監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)。監(jiān)督學(xué)習(xí)是指使用“標(biāo)記”的數(shù)據(jù)訓(xùn)練機(jī)器,這意味著每個(gè)數(shù)據(jù)樣本都包含特征和答案。通過(guò)向機(jī)器提供這些標(biāo)記數(shù)據(jù),我們正在訓(xùn)練它以找到特征和答案之間的相關(guān)性。訓(xùn)練后,當(dāng)我們?yōu)闄C(jī)器提供一組新的特征時(shí),希望它會(huì)給出我們期望的正確答案。例如,可以訓(xùn)練設(shè)備在由其視頻源(即相機(jī))捕獲的圖像中查找文本和數(shù)字。為了以非常簡(jiǎn)化的方式描述該過(guò)程,設(shè)備通過(guò)給出可能包含或不包含文本和數(shù)字的圖像以及正確答案(即“標(biāo)簽”)來(lái)進(jìn)行訓(xùn)練。訓(xùn)練結(jié)束后,
另一方面,無(wú)監(jiān)督學(xué)習(xí)是指向機(jī)器輸入未“標(biāo)記”的數(shù)據(jù)的方法,這意味著每組特征都沒(méi)有答案。無(wú)監(jiān)督學(xué)習(xí)的目標(biāo)是從所有這些數(shù)據(jù)中找到隱藏的信息,無(wú)論是對(duì)數(shù)據(jù)集進(jìn)行聚類(lèi),還是找到它們之間的關(guān)聯(lián)。無(wú)監(jiān)督學(xué)習(xí)的一個(gè)例子可能是在生產(chǎn)線(xiàn)末端執(zhí)行質(zhì)量控制,從所有其他產(chǎn)品中發(fā)現(xiàn)異常產(chǎn)品(即異常檢測(cè))。該設(shè)備沒(méi)有給出“標(biāo)記”的答案來(lái)指示哪些產(chǎn)品是異常的。通過(guò)分析每種產(chǎn)品的特征,該算法會(huì)自動(dòng)從大多數(shù)好產(chǎn)品中識(shí)別出壞產(chǎn)品,因?yàn)樵O(shè)備經(jīng)過(guò)訓(xùn)練可以看到它們之間的差異。
在本文中,我們將嘗試更深入地研究可以部署在邊緣設(shè)備中的監(jiān)督學(xué)習(xí)算法。我們將使用一些簡(jiǎn)單的數(shù)學(xué)公式來(lái)解釋兩種學(xué)習(xí)算法之間的差異。
如上所述,監(jiān)督學(xué)習(xí)將標(biāo)記的數(shù)據(jù)集饋送到正在訓(xùn)練的設(shè)備中。假設(shè)每個(gè)數(shù)據(jù)集包含許多特征 x 1 , x 2 。.. x n。接下來(lái),為每個(gè)特征分配一個(gè)系數(shù) q,并寫(xiě)下函數(shù)。這稱(chēng)為假設(shè)函數(shù) h q (x):
h q (x) = q 0 + q 1 x 1 + q 2 x 2 + q 3 x 3 … + q n x n
訓(xùn)練機(jī)器意味著找到一組適當(dāng)?shù)?q (q 0 , q 1 , q 2 , …, q n ),以使假設(shè)輸出 h q (x) 盡可能接近給定的答案(標(biāo)簽)。訓(xùn)練后,當(dāng)出現(xiàn)一組新的特征 X (x 1 , x 2 , …, x n ) 時(shí),假設(shè)函數(shù)將給出基于最優(yōu) q 集的輸出。
找到 q 的一種方法是使用帶有梯度下降的線(xiàn)性回歸。以下步驟是對(duì)該方法的簡(jiǎn)化描述:
1.選擇一個(gè)初始集合… n。然后計(jì)算假設(shè)與給定答案 Y 之間的差異。這種差異通常稱(chēng)為成本。
2.不斷向成本更小的方向轉(zhuǎn)變。每次重新計(jì)算成本。重復(fù)此步驟,直到成本不再降低。
3.如果成本不再降低,我們已經(jīng)達(dá)到了一個(gè)最優(yōu)集合,它為我們提供了所有給定樣本的最低成本。
4.如果給定一組新的X,現(xiàn)在這組可以用來(lái)預(yù)測(cè)輸出。
梯度下降這個(gè)名字來(lái)源于步驟 2 中改變 q 的方法。通過(guò)在梯度方向上更新 q,算法保證它會(huì)收斂到一個(gè)最優(yōu)值。圖 3 顯示了梯度下降以達(dá)到最小成本函數(shù) J(q 0 , q 1 ) 的圖形表示。
圖 3:梯度下降中的成本函數(shù) J 與參數(shù)集 q
如果步驟 2 中的成本計(jì)算是在所有給定的數(shù)據(jù)樣本上完成的,則該方法稱(chēng)為批量梯度下降。在每次更新 q 時(shí),算法都會(huì)計(jì)算所有訓(xùn)練數(shù)據(jù)樣本的成本。這種計(jì)算方式為如何改變 q 提供了更好的指導(dǎo)。但是,如果給定的訓(xùn)練數(shù)據(jù)樣本集很大,計(jì)算所有樣本的成本需要大量的計(jì)算能力。此外,系統(tǒng)必須在訓(xùn)練期間存儲(chǔ)所有數(shù)據(jù)樣本。
梯度下降的另一種方法是在數(shù)據(jù)樣本的子集上執(zhí)行步驟 2。這種方法稱(chēng)為隨機(jī)梯度下降。該算法在每次迭代時(shí)根據(jù)較小的數(shù)據(jù)樣本集更改 q。這種方法可能需要更多的迭代才能達(dá)到最佳 q,但它節(jié)省了大量的計(jì)算能力和潛在的時(shí)間,因?yàn)樗恍枰?jì)算整個(gè)數(shù)據(jù)樣本集的成本。
使用隨機(jī)梯度下降法,用于計(jì)算成本的最小樣本數(shù)為 1。如果 ML 算法將 q 細(xì)化為可用的新數(shù)據(jù)樣本,我們可以將此 ML 算法視為基于連續(xù)數(shù)據(jù)樣本的持續(xù)行為更新。隨著每個(gè)可用的數(shù)據(jù)樣本進(jìn)來(lái),算法計(jì)算新的 q。因此,系統(tǒng)在每一步都動(dòng)態(tài)更新假設(shè)函數(shù)。這種方法也稱(chēng)為在線(xiàn)梯度下降或在線(xiàn)機(jī)器學(xué)習(xí)。
批量梯度下降與在線(xiàn)機(jī)器學(xué)習(xí)
在批量梯度下降和在線(xiàn)機(jī)器學(xué)習(xí)之間,后者具有一定的特點(diǎn),適合在邊緣設(shè)備上使用。
1.無(wú)限數(shù)據(jù)樣本
如前所述,邊緣設(shè)備通常配備傳感器或 HMI,可以連續(xù)提供無(wú)窮無(wú)盡的數(shù)據(jù)樣本或人工反饋。因此,在線(xiàn) ML 算法可以不斷地從數(shù)據(jù)變化中學(xué)習(xí)并改進(jìn)假設(shè)。
2.計(jì)算能力
邊緣設(shè)備通常具有有限的計(jì)算能力。對(duì)大量數(shù)據(jù)樣本運(yùn)行批量梯度下降算法可能不切實(shí)際。但是,通過(guò)一次計(jì)算一個(gè)數(shù)據(jù)樣本,就像在 Online ML 中一樣,MCU 不必具有巨大的計(jì)算能力。
3.非易失性(NV)內(nèi)存
批量梯度下降算法要求系統(tǒng)存儲(chǔ)整個(gè)訓(xùn)練集,該訓(xùn)練集必須駐留在非易失性存儲(chǔ)中,而在線(xiàn) ML 算法一次計(jì)算一個(gè)傳入數(shù)據(jù)樣本。在線(xiàn) ML 算法可能會(huì)丟棄數(shù)據(jù)或僅存儲(chǔ)少量樣本以節(jié)省非易失性存儲(chǔ)。這特別適用于非易失性存儲(chǔ)器可能受限的邊緣設(shè)備。
4.適應(yīng)性
想象一下在邊緣設(shè)備上執(zhí)行語(yǔ)音識(shí)別的在線(xiàn) ML 算法。通過(guò)通過(guò)新的數(shù)據(jù)樣本不斷地訓(xùn)練算法,系統(tǒng)可以動(dòng)態(tài)地適應(yīng)特定的用戶(hù)和/或口音。
邊緣設(shè)備上機(jī)器學(xué)習(xí)的非易失性?xún)?nèi)存要求
除了 MCU,非易失性存儲(chǔ)器是設(shè)計(jì)進(jìn)行 ML 處理的邊緣設(shè)備的另一個(gè)重要因素。如果 MCU 為應(yīng)用軟件提供足夠的 e-flash,嵌入式閃存是一個(gè)明顯的選擇。然而,隨著 MCU 技術(shù)節(jié)點(diǎn)不斷縮小,e-flash 變得更加難以集成。簡(jiǎn)而言之,應(yīng)用軟件的容量超過(guò)了可用的 e-flash。在這種情況下,需要外部獨(dú)立 NV 閃存??紤]到各種 NV 閃存設(shè)備提供的可靠性、讀取吞吐量和就地執(zhí)行功能,NOR 閃存通常是邊緣系統(tǒng)設(shè)計(jì)人員的首選。
要為 ML 構(gòu)建安全可靠的邊緣設(shè)備,有許多設(shè)計(jì)考慮因素。以下是其中的一些,可幫助設(shè)計(jì)人員決定使用哪種 NV 存儲(chǔ)器(參見(jiàn)圖 4)。
1.安全啟動(dòng)
所有嵌入式系統(tǒng)都必須安全啟動(dòng)。對(duì)于邊緣設(shè)備,安全啟動(dòng)尤其重要,因?yàn)樗拷祟?lèi)訪問(wèn),因此存在潛在安全攻擊的風(fēng)險(xiǎn)。通常,對(duì)于使用 Store-N-Download (SnD) 代碼模型的設(shè)備,引導(dǎo)代碼存儲(chǔ)在非易失性存儲(chǔ)器中并下載到 RAM 以執(zhí)行。如果非易失性存儲(chǔ)器不安全,黑客很容易更換或修改引導(dǎo)代碼進(jìn)行惡意操作。因此,將引導(dǎo)代碼存儲(chǔ)在安全的非易失性存儲(chǔ)器中并在引導(dǎo)期間建立信任根是邊緣設(shè)備非常重要的考慮因素。
2.抵抗攻擊
考慮到它們的連通性,邊緣設(shè)備的攻擊面無(wú)疑是巨大的。即使是安全啟動(dòng),黑客也可能試圖通過(guò)各種攻擊方法從設(shè)備中竊取智能機(jī)密或隱私信息,例如被動(dòng)監(jiān)控、主動(dòng)重放攻擊、側(cè)信道攻擊等。使用能夠抵抗這些攻擊的非易失性存儲(chǔ)器可以大大降低了系統(tǒng)暴露的風(fēng)險(xiǎn)。
3.重要AI參數(shù)安全存儲(chǔ)
ML 算法需要內(nèi)存存儲(chǔ)參數(shù),例如上面提到的參數(shù)集。這些參數(shù)是使用大量數(shù)據(jù)樣本集運(yùn)行訓(xùn)練的結(jié)果。人工智能算法本身可能對(duì)黑客不感興趣,但最終結(jié)果往往是。如果黑客可以從存儲(chǔ)中竊取最終結(jié)果,他們可以在不經(jīng)過(guò)任何培訓(xùn)的情況下模仿人工智能系統(tǒng)。這些參數(shù),例如參數(shù)的集合,直接影響機(jī)器學(xué)習(xí)方案和系統(tǒng)的智能。因此,它們應(yīng)該存儲(chǔ)在一個(gè)安全的存儲(chǔ)空間中,黑客不會(huì)無(wú)意或有意地更改它們。提供這種安全存儲(chǔ)能力的非易失性存儲(chǔ)器將非常適合需要存儲(chǔ)敏感信息的邊緣設(shè)備。
4.吞吐量快
盡管邊緣設(shè)備可能不需要強(qiáng)大的 MCU 來(lái)運(yùn)行廣泛的 ML 算法,但它們可能仍需要快速訪問(wèn)非易失性存儲(chǔ)器以實(shí)現(xiàn)快速安全啟動(dòng)和良好的計(jì)算性能。
圖 4:使用機(jī)器學(xué)習(xí)的邊緣設(shè)備需要支持安全啟動(dòng)、抵御惡意攻擊、安全存儲(chǔ)和快速吞吐量的非易失性?xún)?nèi)存,如此處所示的 Cypress Semper Secure NOR 閃存。
在邊緣設(shè)備中實(shí)現(xiàn)智能化,使用戶(hù)數(shù)據(jù)的處理更接近其源頭,是一種工業(yè)趨勢(shì)。許多人工智能應(yīng)用程序可以部署在構(gòu)建智能和用戶(hù)友好系統(tǒng)的邊緣設(shè)備上。機(jī)器學(xué)習(xí)算法之一,在線(xiàn)機(jī)器學(xué)習(xí),不需要大量的計(jì)算能力,對(duì)變化的適應(yīng)性很強(qiáng),適用于邊緣設(shè)備。要在邊緣設(shè)備上構(gòu)建智能且安全的系統(tǒng),用戶(hù)可以選擇具有信任根能力、安全存儲(chǔ)、快速吞吐量和抵抗惡意攻擊的非易失性存儲(chǔ)器。
審核編輯:郭婷
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7440瀏覽量
163530 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8357瀏覽量
132330
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論