耿相珍 曹銀杰 劉明 胡衛(wèi)生
摘 ?要: 神經(jīng)網(wǎng)絡(luò)都是在后端服務(wù)器上進(jìn)行數(shù)據(jù)處理與識(shí)別,針對(duì)服務(wù)器壓力日益增加的問(wèn)題,提出基于稀疏化神經(jīng)網(wǎng)絡(luò)在微控制器芯片上實(shí)現(xiàn)數(shù)據(jù)處理與前端識(shí)別。微控制器芯片不依賴操作系統(tǒng),Arm FuSa RTS保證了微控制器的高穩(wěn)定性和低功耗。利用CMSIS?NN在微控制器芯片上搭建與服務(wù)器上相同的稀疏化卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型,然后把服務(wù)器上訓(xùn)練的經(jīng)驗(yàn)值移植到微控制芯片上。經(jīng)實(shí)驗(yàn)對(duì)比在微控制器和服務(wù)器上稀疏化CNN的識(shí)別準(zhǔn)確率,結(jié)果顯示準(zhǔn)確率基本保持一致。因此在微控制芯片上搭建稀疏化神經(jīng)網(wǎng)絡(luò)可有效解決網(wǎng)絡(luò)帶寬和服務(wù)器壓力過(guò)大等問(wèn)題。
關(guān)鍵詞: 稀疏化神經(jīng)網(wǎng)絡(luò); 微控制器芯片; 模型搭建; 經(jīng)驗(yàn)值移植; 模型壓縮; 操作系統(tǒng)
中圖分類號(hào): TN711?34; TP39 ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? ? ?文章編號(hào): 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 ?引 ?言
隨著物聯(lián)網(wǎng)(IoT)在市場(chǎng)應(yīng)用的迅速擴(kuò)散,預(yù)計(jì)在2035年IoT在各領(lǐng)域的市場(chǎng)規(guī)模將達(dá)到1萬(wàn)億[1]。包括溫度、濕度、氣壓、噪聲、GPS和音頻視頻等各類收集數(shù)據(jù)的傳感器構(gòu)成的IoT邊緣設(shè)備,然后將采集的數(shù)據(jù)與服務(wù)器進(jìn)行通信。目前,傳感器采集的數(shù)據(jù)在服務(wù)器上進(jìn)行分析處理實(shí)現(xiàn)了廣泛的應(yīng)用[2],例如醫(yī)療保健、工業(yè)自動(dòng)化和交通監(jiān)控等。但隨著IoT網(wǎng)絡(luò)節(jié)點(diǎn)的極速增加,不僅消耗大量網(wǎng)絡(luò)帶寬,還極大增加了服務(wù)器的壓力以及IoT應(yīng)用的延遲。微控制器作為高能效、易使用的處理器,在物聯(lián)網(wǎng)領(lǐng)域占據(jù)著重要的地位[3]。若將數(shù)據(jù)采集和信息處理的工作在微控制器上完成,則減少了數(shù)據(jù)通信的壓力,降低了IoT應(yīng)用的延遲。
為了使人工智能與計(jì)算能在嵌入式設(shè)備上更好地應(yīng)用,2019年STM32峰會(huì)上提出了STM32MP1系列產(chǎn)品,該產(chǎn)品集成了雙Arm Cortex?A7核和 Cortex?M4核架構(gòu)產(chǎn)品。A核性能高,專用于開(kāi)源操作系統(tǒng),主要處理復(fù)雜任務(wù)及大量數(shù)據(jù)運(yùn)算;M核專用于實(shí)時(shí)及低功耗任務(wù)處理。STM32MP1系列產(chǎn)品屬于消費(fèi)類電子產(chǎn)品,雖然體積小、性能高,但A核具有操作系統(tǒng)(Linux/Android),程序運(yùn)行于操作系統(tǒng)之上,功耗與安全還不能保證。不同于依賴操作系統(tǒng)的移動(dòng)終端設(shè)備,微控制器——Cortex?M系列芯片不依賴操作系統(tǒng),功耗極低[4]。近期,Arm為Cortex?M推出了Arm FuSa RTS(Run?Time System for Functional Safety Applications)。這套嵌入式組件為Cortex?M在各場(chǎng)景的應(yīng)用提供了最為安全的保障。嵌入式開(kāi)發(fā)工具和Arm FuSa RTS大大簡(jiǎn)化了軟件應(yīng)用的開(kāi)發(fā)與安全認(rèn)證。微控制器可用于軍工、安防等高機(jī)密領(lǐng)域,具有較高的穩(wěn)定性。
3.3 ?模型壓縮——模型稀疏化
Cortex?M作為微控制器不依賴操作系統(tǒng),具有極高的穩(wěn)定性和安全性,但Cortex?M3的CPU的FLASH僅有1 024 KB,外擴(kuò)NAND FLASH也只有512 MB。由于CNN需要進(jìn)行大量的矩陣卷積運(yùn)算,而且為提高識(shí)別效率,往往會(huì)增加網(wǎng)絡(luò)模型的層數(shù),網(wǎng)絡(luò)模型各層中大量的參數(shù)和權(quán)值的存儲(chǔ)也受限于前端嵌入式設(shè)備的內(nèi)存。而神經(jīng)網(wǎng)絡(luò)模型通常是過(guò)參數(shù)化的,權(quán)值參數(shù)存在大量的冗余,也就是說(shuō)不需要那么多參數(shù)就可以表達(dá)出模型特征。因此,本文選用一種神經(jīng)網(wǎng)絡(luò)權(quán)值稀疏化算法對(duì)網(wǎng)絡(luò)模型進(jìn)行裁剪。
稀疏化神經(jīng)網(wǎng)絡(luò)流程如圖4所示。首先對(duì)搭建的神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,根據(jù)利用降維矩陣[DLm]對(duì)已訓(xùn)練好的網(wǎng)絡(luò)的每一層權(quán)值進(jìn)行處理,連接較弱的權(quán)值將被丟棄,連接強(qiáng)的權(quán)值保留。根據(jù)神經(jīng)元間的相關(guān)性系數(shù)和稀疏度計(jì)算降維矩陣[6]。當(dāng)每一層[Lm]被稀疏化后,由網(wǎng)絡(luò)[Nm-1]結(jié)構(gòu)和權(quán)值初始化新的網(wǎng)絡(luò)模型[Nm]。判斷該網(wǎng)絡(luò)模型是否收斂。若不收斂,利用降維矩陣更新權(quán)重,然后重新對(duì)網(wǎng)絡(luò)進(jìn)行稀疏。若網(wǎng)絡(luò)模型達(dá)到收斂,就可以輸出該網(wǎng)絡(luò)模型。由此經(jīng)過(guò)一次次的重新訓(xùn)練得到越來(lái)越少連接的模型序列[{N1,N2,…,Nm}],[Nm]即為最后得到的稀疏神經(jīng)網(wǎng)絡(luò)。
根據(jù)相關(guān)系數(shù)和稀疏度可計(jì)算降維矩陣,根據(jù)圖4的稀疏過(guò)程流程圖可得到稀疏化CNN。
4 ?實(shí)驗(yàn)結(jié)果分析
4.1 ?實(shí)驗(yàn)平臺(tái)
本文利用Python編程語(yǔ)言在PyCharm平臺(tái)上編寫CNN的程序。利用LFW(Labeled Faces in the Wild Home)和YaleB兩類人臉數(shù)據(jù)庫(kù)進(jìn)行實(shí)驗(yàn)測(cè)試。YaleB人臉數(shù)據(jù)庫(kù)的部分圖片如圖5所示,YaleB人臉數(shù)據(jù)庫(kù)包含28個(gè)人在9種不同姿勢(shì)和64種不同參數(shù)下的照片,滿足實(shí)驗(yàn)要求。LFW數(shù)據(jù)集作為最具權(quán)威的人臉識(shí)別數(shù)據(jù)集之一,屬于無(wú)約束自然場(chǎng)景數(shù)據(jù)集。實(shí)驗(yàn)采用三種不同的網(wǎng)絡(luò)模型對(duì)兩種數(shù)據(jù)庫(kù)進(jìn)行識(shí)別測(cè)試,然后對(duì)比同一數(shù)據(jù)集下三種不同模型稀疏前與稀疏后以及在微控制器上的識(shí)別準(zhǔn)確率。
實(shí)驗(yàn)采用的嵌入式開(kāi)發(fā)板為STM32F767IGT開(kāi)發(fā)板如圖6所示,該開(kāi)發(fā)板使用Cortex?M3核,通過(guò)Keil ?μVision5軟件編譯器使用C語(yǔ)言編程搭建與服務(wù)器上相同的稀疏化CNN模型,然后下載到STM32F767IGT開(kāi)發(fā)板上測(cè)試識(shí)別準(zhǔn)確率。在外擴(kuò)NAND FLASH也只有512 MB的情況下,經(jīng)實(shí)驗(yàn),稀疏化后參數(shù)大小都在200 MB以內(nèi),可以在STM32F767IGT開(kāi)發(fā)板上進(jìn)行神經(jīng)網(wǎng)絡(luò)的識(shí)別。
4.2 ?實(shí)驗(yàn)結(jié)果分析
經(jīng)實(shí)驗(yàn)測(cè)試,YaleB數(shù)據(jù)集經(jīng)過(guò)“改進(jìn)版AlexNet網(wǎng)絡(luò)結(jié)構(gòu)”在服務(wù)器上稀疏之前的準(zhǔn)確率和損失如圖7所示。隨著訓(xùn)練過(guò)程的進(jìn)行,訓(xùn)練準(zhǔn)確率逐漸升高并且損失率逐漸降低趨于0,當(dāng)?shù)螖?shù)達(dá)到1 300次左右時(shí),訓(xùn)練準(zhǔn)確率趨于穩(wěn)定。稀疏后的卷積神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確率如圖8所示,同樣在1 300次時(shí)趨于收斂,并且準(zhǔn)確率與稀疏前基本一致。經(jīng)實(shí)驗(yàn)證明,稀疏前的權(quán)重值達(dá)到856 MB,稀疏后權(quán)重值僅為130 MB,稀疏率為15%左右,大量冗余權(quán)值的減少對(duì)準(zhǔn)確率基本沒(méi)有影響。
LFW和YaleB數(shù)據(jù)庫(kù)在不同網(wǎng)絡(luò)結(jié)構(gòu)下的識(shí)別準(zhǔn)確率如表2和表3所示。
ArcFace網(wǎng)絡(luò)模型的識(shí)別率已達(dá)到99.8%,在識(shí)別效果幾近極致的情況下,對(duì)比其稀疏前、稀疏化后(服務(wù)器上)和在微控制器上的識(shí)別準(zhǔn)確率。在同一數(shù)據(jù)庫(kù)、同一種網(wǎng)絡(luò)結(jié)構(gòu)下,網(wǎng)絡(luò)模型稀疏前與稀疏后的識(shí)別準(zhǔn)確率相差不大,說(shuō)明對(duì)網(wǎng)絡(luò)模型稀疏化并不會(huì)對(duì)識(shí)別準(zhǔn)確率有很大影響。由于服務(wù)器訓(xùn)練出來(lái)的權(quán)值是浮點(diǎn)格式,因此需要使用ARM的量化腳本將權(quán)重值定點(diǎn)量化為定點(diǎn)格式。經(jīng)實(shí)驗(yàn)可得出,在服務(wù)器上的稀疏化CNN與在微控制器上的稀疏化CNN的識(shí)別準(zhǔn)確率有些許誤差,但誤差控制在0.2%以內(nèi)。由于采用完全相同的網(wǎng)絡(luò)模型,稀疏化神經(jīng)網(wǎng)絡(luò)模型在服務(wù)器與微控制器Cortex?M系列開(kāi)發(fā)板上運(yùn)行時(shí),識(shí)別準(zhǔn)確率基本保持一致。
5 ?結(jié) ?論
本文提出了基于稀疏化卷積神經(jīng)網(wǎng)絡(luò)在微控制器芯片上的應(yīng)用,采用微控制器Cortex?M作為識(shí)別前端,在不依賴操作系統(tǒng)的STM32F767微控制芯片上完成人臉識(shí)別實(shí)驗(yàn),具備低成本、低功耗、實(shí)時(shí)穩(wěn)定的優(yōu)點(diǎn),極大促進(jìn)了分布式計(jì)算的應(yīng)用,大大降低了后端服務(wù)器的壓力。在一些網(wǎng)絡(luò)模型對(duì)人臉識(shí)別效果已達(dá)到近乎完美的情況下,在微控制器芯片上部署相同的網(wǎng)絡(luò)模型,不僅保證了識(shí)別準(zhǔn)確率,也節(jié)省了大量網(wǎng)絡(luò)帶寬,大大降低了服務(wù)器的壓力。
參考文獻(xiàn)
[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ī)的混合型大數(shù)據(jù)平臺(tái)設(shè)計(jì)及實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),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] 李鵬,鄧于,雷明東,等.低功耗嵌入式電子信息采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),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.