- Advertisement -
首頁 標籤 NN

NN

- Advertisment -

機器學習邁向物聯網終端 神經網路加值MCU邊緣智慧

基於各方考量,如延遲、耗電量、成本、網路頻寬、可靠性、隱私與安全等,機器學習(ML)演算法正朝物聯網(IoT)終端的應用發展。因此,廠商對於開發類神經網路(NN)解決方案,並將它們部署在微控制器系統這類低功率終端裝置的興趣與日俱增。為促成這類部署,Arm提出CMSIS-NN。這是一種經優化的軟體核心開放原始碼函式庫,可極大化其產品Cortex-M核心的NN效能,而且只需使用最小的經常性記憶體。本文進一步提出NN架構探索的方法,以CIFAR-10數據集的影像檔分類為例,開發適用在條件受限的裝置模型。 MCU降低運算延遲 演算法提升NN準確性 聯網裝置或物聯網過去幾年內快速擴展,到2035年,各區市場的聯網裝置總數預測將達到1兆個。這些物聯網終端裝置通常包含數個可以搜集數據的感測器,包括音訊、視訊、溫度、溼度、GPS位置與加速度等。通常大多數感測器搜集到的數據由雲端的分析工具進行處理,以便運作各式的應用,如工業監控、家庭自動化與健康照護。不過隨著物聯網節點數目增加,對網路的頻寬帶來相當的負擔,同時也增加物聯網應用的延遲性。此外,對雲端的依賴也造成在網路連線不穩定或有限的區域,部署物聯網應用相當具有挑戰性。這個問題的解決方案之一是終端運算,這種運算在數據的源頭、也就是物聯網的終端節點進行,因此可以降低延遲,並節省數據通訊消耗的能源。 類神經網路架構的解決方案,針對如影像分類、語音辨識與自然語言處理等複雜的機器學習應用,已經展現出與人類一樣水準的準確性。有鑑於運算的複雜性與資源的需求,NN的執行絕大多數都局限於高效能的伺服器CPU,或專用硬體(如GPU或加速器)的雲端運算,但會讓物聯網應用增加延遲。而如果在數據的源頭(通常是微控制器)立即進行分類,可以降低整體的延遲以及物聯網終端與雲端間數據通訊的能源消耗。不過在微控制器部署NN,有下列挑戰: ・有限的記憶體使用量:微控制器系統通常只有10幾到100多KB的可用記憶體。整個類神經網路模型,包括輸入/輸出、權重與啟動,都必須在如此小的記憶體上限內運行。 ・有限的運算資源:許多分類任務都有不斷線啟動與即時的要求,這會限制每個類神經網路推論的總運算次數。 這些挑戰可以從裝置與演算法的角度加以應對。一方面在執行類神經網路工作負載時,可以靠優化低階運算核心來達成更佳的效能與更小的記憶體使用量,並藉此提升這些微控制器的機器學習能力,協助微控制器處理更大型與更複雜的NN。另一方面,類神經網路可以靠NN架構的探索設計與優化目標硬體平台。此方法可以在固定的記憶體與運算配置上限內,提升NN的品質,也就是準確性。 下一個段落中,筆者提出CMSIS-NN的概念。CMSIS-NN是大量的高效類神經網路核心,開發目的是讓鎖定智慧物聯網終端裝置的Arm Cortex-M處理器核心上的類神經網路,極大化效能並極小化記憶體的使用量。架構在CMSIS-NN核心基礎上的類神經網路推論,可以達成4.6倍的Runtime/數據傳輸量提升,以及4.9倍的能源效率提升。文章的第三個段落則以使用CIFAR-10數據集的影像分類應用為例,針對微控制器記憶體/運算限制,提出搜尋類神經網路架構的技巧。 CMSIS-NN提升核心Runtime/傳輸量 CMSIS-NN類神經網路核心的總覽(圖1),核心編碼包含兩個部分:NNFunctions與NNSupportFunction。NNFunctions包含實作常見的類神經網路層類型的函數,如卷積、深度可分離卷積結構、全連接(也就是內積)、池化與啟動。這些函數可以讓應用程式碼使用,以實作類神經網路的推論應用。核心API則刻意保持簡單,以便針對TensorFlow、Caffe或PyTorch等所有機器學習框架輕鬆重新鎖定。NNSupportFunctions包含公用的程式函數,例如NNFunctions使用的數據轉換與激勵函數表。應用程式碼也可使用這些函數來建構更複雜的NN模組,如長短期記憶(LSTM)或閘控再流裝置(GRU)單元。 圖1 CMSIS-NN類神經網路核心總覽 對於某些核心,如全連接與卷積的核心,本文會實作不同版本的核心函數。提供一個針對所有網路層參數不必改變就可以通用的基本版本。同時也實作包括進一步優化技巧的其它版本,它們可能具有變形輸入,或是對網路層參數有某些限制。 固定點量化 研究顯示,即便是低精密度定點表示法,NN的運作依然良好。固定點量化可以協助避免進行昂貴的浮點運算,並降低儲存權重與啟動的記憶體使用量,這對資源受限的平台極為關鍵。儘管不同網路或網路層的精密度需求可能不同,CPU很難運行帶有不同位元寬度的資料類型,因此筆者的團隊開發了同時支援8位元與16位元數據的核心。 核心採用跟CMSIS-DSP裡使用的資料類型格式相同,也就是把q7_t當作int8、把q15_t當作int16,並把q31_t當作int32。執行量化時,假定固定點格式具有兩次方的定標。量化格式以Qm.n代表,而代表值是A×2-n,其中的A是整數值而n是Qm.n的一部分,代表該數字針對分數部分使用的位元數,也就是顯示數基點的所在地。跳過偏差用的定標因素,並把它以參數輸出至核心;因為是二次方定標的關係,定標的實作按位元移位操作。 在NN的運算期間,代表不同數據,也就是輸入、權重、偏差與輸出的固定點可能不同。bias_shift與out_shift這兩個輸入參數,則為用來替運算調整不同數據的定標。 下列方程式可以用來估算移動值: 其中的ninput、nweight、nbias 與 noutput,分別是輸入、權重、偏差與輸出中的分數的位元數。 軟體核心優化 這個段落突顯了在CMSIS-NN裡已進行的優化工作,以提升效能並降低記憶體的使用量。 1.矩陣乘法:矩陣乘法是類神經網路中最重要的運算核心。這個工作的實作,是使用CMSIS-DSP內的mat_mult核心。如圖2所示,矩陣乘法核心是以2×2核心實作,與CMSIS的實作類似。因此可以允許部分數據再次使用,也可以節省載入指令的總筆數。累積是使用q31_t資料類型完成,而兩個運算單元都屬於q15_t資料類型。筆者使用相對應的偏差值,讓累加器初始化。運算的執行則是使用專用的SIMD MAC指令_SMLAD。 圖2 具有2×2核心的矩陣乘法的內迴圈。每個迴圈運算兩行與兩列點乘積結果,也就是產生四個輸出 2.卷積:卷積網路層藉由在輸入特徵映射中運算過濾器權重與小型接受區域之間的點乘積,擷取新的特徵映射。通常來說,CPU架構的卷積實作可以解構成輸入紀錄、擴展(也就是im2col與Image-to-column)以及矩陣乘法操作。im2col是把類影像的輸入轉化成「行」,而「行」則代表每個卷積過濾器需要的數據。圖3即為im2col的一個範例。 圖3 具3×3核心、填充1與步數2的im2col的2D影像範例 im2col主要的挑戰之一是記憶體使用量的增加,因為輸入影像中的畫素在im2col輸出矩陣中重複。為了紓解記憶體使用量問題、同時維持im2col的效能優點,卷積核心實作了部分的im2col。核心一次只會擴展兩行,這已經足夠從矩陣乘法核心取得大幅的效能提升,同時把記憶體負擔維持在最小。影像數據格式也會影響卷積的效能,特別是im2col的效率。兩種最常見的影像數據格式是頻道為第一的CHW(頻道-高度-寬度),與頻道為最後的HWC(高度-寬度-頻道)。維度的順序則與數據步數的順序一樣。在HWC格式中,頻道的數據以步數1儲存,沿著橫向寬度的數據則是以頻道數的步數儲存;沿著縱向高度的數據,則以(頻道數×影像寬度)步數儲存。 只要權重與影像的維度順序一樣,數據的布局對於矩陣乘法的運作就沒有影響,im2col只會與寬度及高度的維度一起運作。HWC式樣的布局可以促成高效率的數據移動,因為每個畫素的數據(也就是同樣的x與y位置)是連續地儲存,並且可以用SIMD指令有效率地進行複製。為了驗證這一點,筆者實作CHW與HWC版本,並比較它們在Arm Cortex-M7的Runtime。圖4顯示了實作結果,把HWC輸入固定為16×16×16,並很快輸出頻道數目。當輸出頻道值為零時,代表軟體只執行im2col,並沒有進行任何矩陣乘法的運作。與CHW布局相比,HWC擁有較短的im2col Runtime,但矩陣乘法效能卻相同。因此,本文用HWC數據布局來實作卷積核心。 圖4 CHW與HWC數據布局卷積執行時間的比較。兩種布局都有同樣的矩陣乘法runtime,但HWC的im2col runtime比較短 CMSIS-NN結果 測試卷積神經網路(CNN)的CMSIS-NN核心,CNN則利用CIFAR-10數據集進行訓練。數據集包含6萬個32×32的彩色影像,並分為十個輸出類別。網路拓撲是基於Caffe內提供的內建範例,具有三個卷積網路層與一個完全連結的網路層。所有網路層的權重與激勵數據都量化成q7_t格式。Runtime則是用具有一顆時脈216MHz的Arm Cortex-M7核心的意法半導體(ST)NUCLEO-F746ZG Mbed開發板進行測量。 整個影像分類中的每個影像,大約花費99.1微秒(相當於每秒10.1張影像)。CPU在這個網路運行的運算吞吐量,大約是每秒249百萬運算(MOps)。預先量化的網路針對CIFAR-10測試集達成80.3%的準確率。用Arm Cortex-M7核心運行的8位元量化網路,則達成79.9%的準確率。使用CMSIS-NN核心的最大記憶體使用量約為133KB,此時用部分的im2col來實作卷積以節省記憶體。接下來則進行矩陣乘法。少了部分im2col的記憶體使用量,大約為332 KB,此時神經網路無法在開發板上使用。為了量化CMSIS-NN核心對既有解決方案帶來的優點,選擇使用一個1D卷積函數(來自CMSIS-DSP的arm_conv)、類Caffe池化與ReLU,實作一個基準線版本。 針對CNN應用,表1總結基準線函數與CMSIS-NN核心的比較結果。與基準線函數相比,CMSIS-NN核心的Runtime與吞吐量分別提升2.6倍與5.4倍,節能方面的提升也與吞吐量的提升相近。 硬體條件限制NN模型 這個段落裡,比較使用影像分類應用為範例,說明為部署應用的硬體平台,也就是微控制器選擇正確類神經網路架構的重要性。為此,需要先瞭解微控制器的硬體限制。微控制器通常包含處理器核心、一個當成主記憶體的靜態隨機存取記憶體(SRAM),以及用來儲存編碼與數據的嵌入式快閃記憶體。表2顯示具有Arm Cortex-M核心的一些市售微處理器開發板,它們擁有不同的運算與記憶體容量。 微處理器系統中的記憶體數量,會限制系統可運行的類神經網路模型的大小。除了記憶體限制,類神經網路的龐大運算需求也會為在微控制器上運行NN,帶來另一個關鍵限制:為了維持低耗電,通常都以低時脈運行。因此,必須選擇對的NN架構,來配合部署NN模型的硬體在記憶體與運算上的限制。為了評估在不同硬體限制條件下神經網路的準確性,筆者選擇三個不同尺寸的系統配置,並導出每個配置需要的類神經網路需求(表3)。假定每秒標稱可進行10個影像的分類推論(也就是每秒10幀),以便導出神經網路的需求。 影像分類用神經網路架構 1.卷積神經網路:CNN是電腦視覺應用最受歡迎的類神經網路架構。CNN包含多個依規格化散布的卷積網路層、池化與非線性激勵網路層。卷積網路層將輸入的影像解構到不同的特徵映射,從初始網路層中如邊緣、線條與曲線等低階特徵,到後面網路層的高階/抽象特徵。當代最頂尖的CNN包含100多個到1,000多個這種卷積網路層,而最後擷取的特徵則由完全連結的分類網路層分類至輸出類別。卷積運作是CNN最關鍵的運作,並且非常耗時,有超過九成的時間都花在卷積網路層上。 2.近期的高效NN架構:為了降低CNN的運算複雜性,有人提議用深度可分離卷積網路層當成標準卷積運作的高效率替代品。也有人提出利用2-D深度卷積接著1-D逐點卷積,取代標準的3-D卷積,並提出名為MobileNets的高效率NN類別。ShuffleNets利用混合 頻道上的深度卷積以及群組軟體1×1的卷積,來提升緊湊模型的準確性。MobileNets-V2藉由增加捷徑連接進一步提升效率,並協助深度網路的收斂。整體來說,已經有許多高效率的神經網路架構提案,可以用來開發符合特定硬體預算的NN模型。 硬體條件受限的NN模型的搜尋 筆者使用具捷徑連接的MobileNet架構,它類似讓硬體條件受限的類神經模型,進行搜尋的ResNet模型裡的架構。網路層的數量、每層網路層的特徵數量、卷積過濾器的維度與步數,被當成這次搜尋的超參數。訓練這些超參數的所有組合相當耗時,並且不太實際。因此需要反覆執行超參數的竭盡式搜尋、計算模型的記憶體/運算需求,並且只訓練能配合硬體預算限制的模型。隨後從之前的集用場選擇超參數,以縮小搜尋空間,並繼續下一更新的模型搜尋。圖5為超參數搜尋的範例,這個範例顯示準確性、運算的數量,以及每個模型的參數。 圖5 利用CIFAR-10數據集進行影像分類的類神經網路超參數搜尋vs以泡泡尺寸顯示的運算及參數數量 經過幾個更新後,表4顯示於硬體條件限制內具有最高準確性的模型。請留意,由於這並不是對所有超參數進行的極盡式搜尋,因此在搜尋期間可能會漏掉一些符合硬體條件限制、且準確度極高的類神經網路模型。結果顯示這些模型擴大規模沒有問題,且針對不同的硬體預算,準確性在不同層級出現飽合。例如,針對200KB與每秒20百萬次運算的記憶體/運算預算,模型的準確性大約在85%左右飽合,並且受到硬體的運算能力限制。瞭解類神經網路的準確性是否受運算或記憶體資源限制,對於硬體平台選擇的各種利弊得失,可提供關鍵的洞察。 強化神經網路效能 機器學習演算法已證實可以實現一些人類能力等級的效能,所執行的複雜認知任務。在全新高效類神經網路架構與優化的NN軟體協助下,這些演算法正慢慢地朝物聯網的終端移動,以便類神經網路在這些終端裝置高效運作。在微控制器裝置常見的記憶體/運算限制下,提出執行NN模型搜尋的技巧,並使用影像分類為例,進一步提出優化CMSIS-NN內的NN核心的方法,以便在最小的記憶體使用量下,極大化Cortex-M核心的神經網路效能。 (本文作者Naveen Suda為Arm主任工程師;Danny Loh為Arm機器學習總監)
0

恩智浦發表Glow神經網路編譯器 實現邊緣機器學習

恩智浦半導體(NXP)宣布eIQ機器學習(ML)軟體對Glow神經網路(Neural Network, NN)編譯器的支援功能,針對恩智浦的i.MX RT跨界微控制器,帶來能夠實現占用較低記憶體並提供更高效能的神經網路編譯器應用。Glow編譯器由Facebook開發,能夠整合特定目標的最佳化,恩智浦利用這種能力,使用適用於Arm Cortex-M核心和Cadence Tensilica HiFi 4 DSP的神經網路運算元庫(NN Operator Libraries),最大程度地提升i.MX RT685以及i.MX RT1050和RT1060的推論效能。此外,此功能已整合至恩智浦的eIQ機器學習軟體開發環境中,於恩智浦的MCUXpresso軟體開發套件(Software Development Kit, SDK)中免費提供。 2018年5月,率先開發PyTorch的Facebook導入Glow(Graph Lowering神經網路編譯器),作為開源社區(Open Source Community)專案,其目的是藉由最佳化提高一系列硬體平台上的神經網路效能。作為神經網路編譯器,Glow能在尚未最佳化的神經網路的基礎上,生成高度最佳化的代碼。此特點有別於典型的神經網路模型處理(Neural Network Model Processing),後者採用即時編譯,因此需要更高的效能,並增加記憶體消耗。像Glow這樣直接運作最佳化的代碼可以顯著降低處理與記憶體要求。恩智浦也在Glow開源社區中扮演著積極角色,幫助推廣和普及Glow的新功能。 恩智浦針對機器學習的邊緣智慧環境解決方案是一個全面的工具包(Toolkit),提供開發人員需要的建構模組,幫助他們高效地在邊緣裝置中實現機器學習。Glow整合到eIQ軟體後,機器學習開發人員將擁有全面的高效能框架,可在包含i.MX RT跨界微控制器和i.MX 8應用處理器在內的恩智浦邊緣處理解決方案上進行擴展。客戶擁有更強大的工具,能夠在i.MX...
0

將AI引入MCU ST神經網路開發工具箱亮相 

人工智慧(AI)應用無所不在,為因應龐大商機,除了處理器、數位訊號處理器(DSP)、繪圖晶片業者皆開始強化對神經網路(NN)、機器學習或深度學習等演算法支援之外,微控制器(MCU)供應商也來分一杯羹,期能讓MCU也能具備基本的AI運算能力。例如意法半導體(ST)近日便擴展旗下STM32微控制器開發生態系統「STM32CubeMX」,增加AI功能,使STM32CubeMX軟體工具擴展包「STM32Cube.AI」可生成優化代碼,在STM32微控制器上運行神經網路。 意法半導體微控制器和數位積體電路產品部總裁Claude Dardanne表示,AI技術使用經過訓練的人工神經網路對運動和振動感測器、環境感測器、麥克風和圖像感測器的資料訊號進行分類,比傳統的手工訊號處理方法更加快速、高效。該公司所推出的新型神經網路開發工具箱,正在將AI引入基於微控制器的智慧邊緣和節點設備,以及物聯網、智慧樓宇、工業和醫療應用中的嵌入式設備。 據悉,該工具支持Caffe、Keras(帶有TensorFlow後台)、Lasagne、ConvnetJS框架和Keil、IAR、System Workbench等IDE開發環境。 開發人員可以用STM32Cube.AI將預先訓練的神經網路轉成可在STM32 微控制器上運行的C代碼,調用經過優化的函式程式庫;而STM32Cube.AI附帶即用型軟體功能包「FP-AI-SENSING1」,提供支援基於神經網路的端到端運動(人類活動識別)和音訊(音訊場景分類)應用代碼示例。該功能包利用ST的SensorTile參考板在訓練之前捕獲和標記感測器資料,然後,電路板運行優化神經網路的推論,也可在ST BLE Sensor mobile app移動應用程式上立即使用這些代碼示例。 ST指出,在2019年1月8~12日,於美國拉斯維加斯所舉辦的世界消費電子展(CES)期間,該公司將會使用STM32微控制器展示STM32Cube.AI開發應用程式;而未來ST合作夥伴計畫和STM32 AI/ML社區的合作夥伴也會為開發者提供支援服務。
0

AI輔助晶片設計話題熱 IC設計產業挑戰/機會並呈

利用人工智慧技術來加快晶片設計流程,是最近兩、三年來在EDA工具業界相當熱門的話題。特別是在布局繞線(P&R)與模擬(Simulation)階段,人工智慧技術已展現出相當大的應用潛力。  在此基礎之上,美國國防部旗下的DARPA希望更進一步,利用人工智慧實現全自動化的晶片設計(Push Button IC Design)。然而,這無疑是個相當遠大的目標。通常DARPA發起的先進研究計畫,都是十年磨一劍的專案,過程中失敗的機率也不低,但倘若能做出成果,對產業的顛覆性卻是不容小覷的。 從自駕車到全自動IC設計 DARPA挑戰科技極限 益華電腦(Cadence)資深副總裁暨客製化IC/PCB設計總經理Tom Beckley(圖1)指出,DARPA所推動的研究,通常都是挑戰當代科技極限的專案,其所舉辦的Grand Challenge競賽就是其中之一。 圖1 Cadence資深副總裁Tom Beckley指出,全自動設計是DARPA對半導體產業提出的下一個Grand Challenge。 2004年的DARPA Grand Challenge就以自動駕駛技術為主題,舉辦了第一屆自駕車挑戰賽,要求參賽隊伍用自動駕駛技術,完成從加州到內華達州,全程約150英里的賽事。結果第一屆參賽者沒有任何一支隊伍跑完全程,即便是跑得最遠的參賽隊伍,也只跑了7英里。2005年這項賽事捲土重來,賽事路線稍有變動,但大多數隊伍的表現都遠比前一屆更好,其中更有五支隊伍跑完全程132英里。 為了參與這項競賽所發展出來的技術,成為目前自駕車發展的基礎,未來更可能徹底改變人類社會的交通運輸。但從第一屆Grand Challenge到現在已經過了十多年,自駕車距離全面上路,還是有一段不小的距離。這就是DARPA計畫的特色--高度前瞻、高風險,但倘若能成功,將會對產業甚至整個社會造成顛覆性的變革。 拉回到半導體領域,DARPA這次對半導體產業提出的挑戰,全名為電子復興運動(Electronics Resurgence Initiative, ERI)。該計畫廣邀學術界、商用產業與軍事產業中獲選的成員共同參與,目的是將複雜又昂貴的SoC設計門檻壓低。 在EDA工具的輔助下,很多晶片設計流程已經進入自動化時代,但由於製程技術不斷進步,使得單一晶片得以整合更多功能,因此SoC設計變得越來越複雜,在SoC上執行的軟體也是如此。因此,兩相抵銷之下,SoC設計的成本還是一飛衝天,而且開發團隊的規模只增不減。這使得先進SoC的開發變成少數大型跨國公司的專利,而且只有少數市場規模夠大的應用,才能吸引業者開發這種先進SoC。 這個趨勢對小型晶片公司與美國國防部這種利基型客戶是不利的。以國防應用來說,許多系統設備也需要使用先進SoC,但由於國防航太產業的需求規模不夠大,因此開發費用很難攤提。  在ERI計畫之下,又分成電子資產智慧設計(Intelligent Design of Electronic Assets, IDEA)跟Posh開放原始碼硬體計畫(Posh Open Source Hardware, POSH)兩個子計畫,各有其研究團隊(表1)。   線路布局全面自動化 ERI的終極目標是創造出一個以軟體為基礎,完全自動化的實體線路布局產生器跟開放原始碼矽智財(IP)生態系,能在24小時內完成一次設計循環,進而讓客製化商用SoC跟符合國防部規格要求的軍用SoC均能大量、快速產出。 為了達成這個目標,IDEA團隊必須創造出一個無人介入(No Human...
0
- Advertisement -
- Advertisement -

最新文章

- Advertisement -

熱門文章

- Advertisement -

編輯推薦

- Advertisement -