耿相珍 曹銀杰 劉明 胡衛生



摘 ?要: 神經網絡都是在后端服務器上進行數據處理與識別,針對服務器壓力日益增加的問題,提出基于稀疏化神經網絡在微控制器芯片上實現數據處理與前端識別。微控制器芯片不依賴操作系統,Arm FuSa RTS保證了微控制器的高穩定性和低功耗。利用CMSIS?NN在微控制器芯片上搭建與服務器上相同的稀疏化卷積神經網絡(CNN)模型,然后把服務器上訓練的經驗值移植到微控制芯片上。經實驗對比在微控制器和服務器上稀疏化CNN的識別準確率,結果顯示準確率基本保持一致。因此在微控制芯片上搭建稀疏化神經網絡可有效解決網絡帶寬和服務器壓力過大等問題。
關鍵詞: 稀疏化神經網絡; 微控制器芯片; 模型搭建; 經驗值移植; 模型壓縮; 操作系統
中圖分類號: TN711?34; TP39 ? ? ? ? ? ? ? ? ? ?文獻標識碼: A ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)23?0134?05
Abstract: Neural networks are all used for data processing and identification on the back?end server. In order to solve the problem that the pressure of the server is increasing day by day, the realization of data processing and front?end recognition on microcontroller chip are proposed in this paper on the basis of sparsification neural network. The microcontroller chip does not depend on the operating system and the Arm FuSa RTS (run?time system for functional safety applications) guarantees high stability and low power consumption of the microcontroller. With CMSIS?NN, the sparsification convolutional neural network (CNN) model being the same as that on the server is built on the microcontroller chip. The experience value trained on the server is transplanted to the micro?control chip. The experiment result indicates this method can get the recognition accuracy as same as that of the sparsification CNN on the microcontroller and the server. Therefore, building a sparsification neural network on the micro?control chip can effectively solve the problems of network bandwidth and server pressure.
Keywords: sparsification neural network; microcontroller chip; model establishment; empirical value transplant; model compression; operating system
0 ?引 ?言
隨著物聯網(IoT)在市場應用的迅速擴散,預計在2035年IoT在各領域的市場規模將達到1萬億[1]。包括溫度、濕度、氣壓、噪聲、GPS和音頻視頻等各類收集數據的傳感器構成的IoT邊緣設備,然后將采集的數據與服務器進行通信。目前,傳感器采集的數據在服務器上進行分析處理實現了廣泛的應用[2],例如醫療保健、工業自動化和交通監控等。但隨著IoT網絡節點的極速增加,不僅消耗大量網絡帶寬,還極大增加了服務器的壓力以及IoT應用的延遲。微控制器作為高能效、易使用的處理器,在物聯網領域占據著重要的地位[3]。若將數據采集和信息處理的工作在微控制器上完成,則減少了數據通信的壓力,降低了IoT應用的延遲。
為了使人工智能與計算能在嵌入式設備上更好地應用,2019年STM32峰會上提出了STM32MP1系列產品,該產品集成了雙Arm Cortex?A7核和 Cortex?M4核架構產品。A核性能高,專用于開源操作系統,主要處理復雜任務及大量數據運算;M核專用于實時及低功耗任務處理。STM32MP1系列產品屬于消費類電子產品,雖然體積小、性能高,但A核具有操作系統(Linux/Android),程序運行于操作系統之上,功耗與安全還不能保證。不同于依賴操作系統的移動終端設備,微控制器——Cortex?M系列芯片不依賴操作系統,功耗極低[4]。近期,Arm為Cortex?M推出了Arm FuSa RTS(Run?Time System for Functional Safety Applications)。這套嵌入式組件為Cortex?M在各場景的應用提供了最為安全的保障。嵌入式開發工具和Arm FuSa RTS大大簡化了軟件應用的開發與安全認證。微控制器可用于軍工、安防等高機密領域,具有較高的穩定性。
3.3 ?模型壓縮——模型稀疏化
Cortex?M作為微控制器不依賴操作系統,具有極高的穩定性和安全性,但Cortex?M3的CPU的FLASH僅有1 024 KB,外擴NAND FLASH也只有512 MB。由于CNN需要進行大量的矩陣卷積運算,而且為提高識別效率,往往會增加網絡模型的層數,網絡模型各層中大量的參數和權值的存儲也受限于前端嵌入式設備的內存。而神經網絡模型通常是過參數化的,權值參數存在大量的冗余,也就是說不需要那么多參數就可以表達出模型特征。因此,本文選用一種神經網絡權值稀疏化算法對網絡模型進行裁剪。
稀疏化神經網絡流程如圖4所示。首先對搭建的神經網絡進行訓練,根據利用降維矩陣[DLm]對已訓練好的網絡的每一層權值進行處理,連接較弱的權值將被丟棄,連接強的權值保留。根據神經元間的相關性系數和稀疏度計算降維矩陣[6]。當每一層[Lm]被稀疏化后,由網絡[Nm-1]結構和權值初始化新的網絡模型[Nm]。判斷該網絡模型是否收斂。若不收斂,利用降維矩陣更新權重,然后重新對網絡進行稀疏。若網絡模型達到收斂,就可以輸出該網絡模型。由此經過一次次的重新訓練得到越來越少連接的模型序列[{N1,N2,…,Nm}],[Nm]即為最后得到的稀疏神經網絡。
根據相關系數和稀疏度可計算降維矩陣,根據圖4的稀疏過程流程圖可得到稀疏化CNN。
4 ?實驗結果分析
4.1 ?實驗平臺
本文利用Python編程語言在PyCharm平臺上編寫CNN的程序。利用LFW(Labeled Faces in the Wild Home)和YaleB兩類人臉數據庫進行實驗測試。YaleB人臉數據庫的部分圖片如圖5所示,YaleB人臉數據庫包含28個人在9種不同姿勢和64種不同參數下的照片,滿足實驗要求。LFW數據集作為最具權威的人臉識別數據集之一,屬于無約束自然場景數據集。實驗采用三種不同的網絡模型對兩種數據庫進行識別測試,然后對比同一數據集下三種不同模型稀疏前與稀疏后以及在微控制器上的識別準確率。
實驗采用的嵌入式開發板為STM32F767IGT開發板如圖6所示,該開發板使用Cortex?M3核,通過Keil ?μVision5軟件編譯器使用C語言編程搭建與服務器上相同的稀疏化CNN模型,然后下載到STM32F767IGT開發板上測試識別準確率。在外擴NAND FLASH也只有512 MB的情況下,經實驗,稀疏化后參數大小都在200 MB以內,可以在STM32F767IGT開發板上進行神經網絡的識別。
4.2 ?實驗結果分析
經實驗測試,YaleB數據集經過“改進版AlexNet網絡結構”在服務器上稀疏之前的準確率和損失如圖7所示。隨著訓練過程的進行,訓練準確率逐漸升高并且損失率逐漸降低趨于0,當迭代次數達到1 300次左右時,訓練準確率趨于穩定。稀疏后的卷積神經網絡的準確率如圖8所示,同樣在1 300次時趨于收斂,并且準確率與稀疏前基本一致。經實驗證明,稀疏前的權重值達到856 MB,稀疏后權重值僅為130 MB,稀疏率為15%左右,大量冗余權值的減少對準確率基本沒有影響。
LFW和YaleB數據庫在不同網絡結構下的識別準確率如表2和表3所示。
ArcFace網絡模型的識別率已達到99.8%,在識別效果幾近極致的情況下,對比其稀疏前、稀疏化后(服務器上)和在微控制器上的識別準確率。在同一數據庫、同一種網絡結構下,網絡模型稀疏前與稀疏后的識別準確率相差不大,說明對網絡模型稀疏化并不會對識別準確率有很大影響。由于服務器訓練出來的權值是浮點格式,因此需要使用ARM的量化腳本將權重值定點量化為定點格式。經實驗可得出,在服務器上的稀疏化CNN與在微控制器上的稀疏化CNN的識別準確率有些許誤差,但誤差控制在0.2%以內。由于采用完全相同的網絡模型,稀疏化神經網絡模型在服務器與微控制器Cortex?M系列開發板上運行時,識別準確率基本保持一致。
5 ?結 ?論
本文提出了基于稀疏化卷積神經網絡在微控制器芯片上的應用,采用微控制器Cortex?M作為識別前端,在不依賴操作系統的STM32F767微控制芯片上完成人臉識別實驗,具備低成本、低功耗、實時穩定的優點,極大促進了分布式計算的應用,大大降低了后端服務器的壓力。在一些網絡模型對人臉識別效果已達到近乎完美的情況下,在微控制器芯片上部署相同的網絡模型,不僅保證了識別準確率,也節省了大量網絡帶寬,大大降低了服務器的壓力。
參考文獻
[1] LAI L, SUDA N, CHANDRA V. CMSIS?NN: efficient neural network kernels for Arm Cortex?M CPUs [EB/OL]. [2018?01?19]. https://www.researchgate.net/publication/322652280.
[2] 王永坤,羅萱,金耀輝.基于私有云和物理機的混合型大數據平臺設計及實現[J].計算機工程與科學,2018,40(2):191?199.
[3] ZHANG Y, SUDA N, LAI L, et al. Hello edge: keyword spotting on microcontrollers [EB/OL]. [2017?11?19]. https://www.researchgate.net/publication/321180613.
[4] 李鵬,鄧于,雷明東,等.低功耗嵌入式電子信息采集系統設計[J].現代電子技術,2018,41(15):101?104.
[5] ANJOMSHOA F, KANTARCI B, EROL?KANTARCI M, et al. A mobile platform for sociability?based continuous identification [C]// 2016 IEEE 21st International Workshop on Computer Aided Modelling and Design of Communication Links and Networks (CAMAD). Toronto, ON, Canada: IEEE, 2016: 149?151.
[6] CHENG Gong, ZHOU Peicheng, HAN Junwei. Duplex metric learning for image set classification [J]. IEEE transactions on image processing, 2017, 27(1): 281?292.
[7] SUN Yi, WANG Xiaogang, TANG Xiaoou. Sparsifying neural network connections for face recognition [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA: IEEE, 2016: 4856?4864.
[8] SCHMIDHUBER J. Deep learning in neural networks: an overview [J]. Neural networks, 2015, 61: 85?117.
[9] ANTIPOV G, BERRANI S?A, DUGELAY J?L. Minimalistic CNN?based ensemble model for gender prediction from face images [J]. Pattern recognition letters, 2016, 70: 59?65.
[10] LIU Weibo, WANG Zidong, LIU Xiaohui, et al. A survey of deep neural network architectures and their applications [J]. Neurocomputing, 2017, 234: 11?26.
[11] LATHA P, GANESAN L, ANNADURAI S. Face recognition using neural networks [J]. Signal processing: an international journal, 2009, 3(5): 153?160.
[12] ANDRYCHOWICZ M, DENIL M, COLMENAREJO S G, et al. Learning to learn by gradient descent by gradient descent [C]// Advances in Neural Information Processing Systems 29: Annual Conference on Neural Information Processing Systems 2016. Barcelona, Spain: [s.n.], 2016: 3981?3989.