李欣致,董勝波,*,崔向陽,劉志哲,郭廣浩
(1.北京遙感設(shè)備研究所,北京100854; 2.航天科工網(wǎng)絡(luò)信息發(fā)展有限公司,北京100048)
近年以來科學(xué)研究和市場表明,深度學(xué)習(xí)(Deep Learning,DL)[1]不僅在傳統(tǒng)的語音識(shí)別、圖像識(shí)別、搜索/推薦引擎、計(jì)算廣告等領(lǐng)域證明了其劃時(shí)代的價(jià)值,也引爆了整個(gè)人工智能(Artificial Intelligence,AI)生態(tài)向更大的領(lǐng)域延伸。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)(Machine Learning,ML)領(lǐng)域中一個(gè)重要研究方向。深度卷積網(wǎng)絡(luò)現(xiàn)已成為大規(guī)模圖像識(shí)別的首選框架。由于深度學(xué)習(xí)的訓(xùn)練(Training)和推斷(Inference)均需要大量的計(jì)算,AI界正在面臨前所未有的計(jì)算能力挑戰(zhàn)。傳統(tǒng)的CPU處理器雖然具有強(qiáng)大的控制能力和通用性來處理不同的數(shù)據(jù)類型,但其需要邏輯判斷、分支跳轉(zhuǎn)以及中斷等操作作為支撐,內(nèi)部結(jié)構(gòu)復(fù)雜且運(yùn)算單元相對(duì)較少,不適合大規(guī)模并行數(shù)據(jù)運(yùn)算,采用CPU處理器實(shí)現(xiàn)深度學(xué)習(xí)算法不能滿足算法實(shí)時(shí)性要求。相比與CPU,GPU[2]具有大量運(yùn)算單元,專門執(zhí)行復(fù)雜的數(shù)學(xué)運(yùn)算,對(duì)象為類型統(tǒng)一且無依賴的大規(guī)模數(shù)據(jù)。但是GPU沒有專門實(shí)現(xiàn)神經(jīng)元單元的電路,使用單個(gè)GPU或者集成多個(gè)GPU并行工作的處理效率均低于具有同等硬件資源的定制硬件加速電路。與GPU 和CPU相比,F(xiàn)PGA[3]性能更高、能耗更低,可采用FPGA實(shí)現(xiàn)定制深度學(xué)習(xí)硬件加速電路。但是FPGA作為“萬能芯片”,需要預(yù)先布置大量門陣列以滿足用戶需求,以面積換速度,使用大量的門電路陣列,消耗更多FPGA內(nèi)核資源;且FPGA缺少內(nèi)存和控制器帶來的存儲(chǔ)和讀取操作,雖然速度得到提升,但是運(yùn)算量受到限制,進(jìn)而制約了其性能。
AI[4]芯片從廣義上定義為能夠運(yùn)行AI算法的芯片。AI芯片作為推動(dòng)AI技術(shù)不斷進(jìn)步的硬件基礎(chǔ),隨著市場需求的不斷增長,各個(gè)領(lǐng)域不斷涌現(xiàn)出針對(duì)智能應(yīng)用的新穎設(shè)計(jì)算法和創(chuàng)新的架構(gòu)體系。
從現(xiàn)有的市場應(yīng)用場景角度分析,AI芯片目前主要分為兩大方向:一個(gè)由數(shù)據(jù)驅(qū)動(dòng)的云端芯片;另一個(gè)是供消費(fèi)者終端使用的終端芯片。從功能角度分析,AI芯片主要完成訓(xùn)練和推理2個(gè)任務(wù)。目前,AI芯片的主要應(yīng)用場景集中在云端和終端。云端AI芯片同時(shí)具備訓(xùn)練和推理2個(gè)功能。訓(xùn)練主要功能是對(duì)網(wǎng)絡(luò)模型采用大量標(biāo)注好的數(shù)據(jù)樣本進(jìn)行訓(xùn)練,得到網(wǎng)絡(luò)參數(shù),該過程對(duì)計(jì)算的性能和處理精度有極高的要求,且需要一定的通用性以保證能夠完成多樣的學(xué)習(xí)任務(wù);推理主要功能是使用訓(xùn)練過程中建立的網(wǎng)絡(luò)模型對(duì)新的數(shù)據(jù)集進(jìn)行識(shí)別或分類,沒有反向傳播(Back Propagation,BP)[5]功能。相對(duì)于云端AI芯片,在計(jì)算精度、處理性能和通用性方面,終端AI芯片要求較低。但是,在用戶體驗(yàn)方面,終端AI芯片需要不斷優(yōu)化,因?yàn)榻K端AI芯片是直接將推理結(jié)果反饋給用戶。目前訓(xùn)練和推理功能主要由云端AI芯片完成。但隨著技術(shù)發(fā)展和需求改變,市場應(yīng)用開始逐步向終端AI芯片轉(zhuǎn)移?,F(xiàn)有需要具備推理能力設(shè)備的主流場景包括智能手機(jī)(Smartphone,SP)、高級(jí)駕駛輔助系統(tǒng)(Advanced Driving Assistant System,ADAS)[6]、計(jì)算機(jī)視覺設(shè)備(Computer Vision,CV)[7]、虛擬現(xiàn)實(shí)設(shè)備(Virtual Reality,VR)[8]、語音交互設(shè)備(Voice User Device,VUD)以及機(jī)器人(Robot)。
目前,大部分終端AI芯片的性能都依賴于在芯片外前期訓(xùn)練過程中的大樣本數(shù)據(jù)庫,優(yōu)質(zhì)的大數(shù)據(jù)量對(duì)終端AI芯片處理能力起著決定性的作用,且所使用的每一層的參數(shù)均在訓(xùn)練過程中產(chǎn)生。當(dāng)樣本量有限時(shí),存在訓(xùn)練時(shí)使用的實(shí)驗(yàn)樣本和真實(shí)數(shù)據(jù)的分布差異大,導(dǎo)致推理的識(shí)別率降低。如何在小樣本背景下,基于高實(shí)時(shí)性、低功耗的深度學(xué)習(xí)終端AI芯片框架,對(duì)神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行局部優(yōu)化以提高用戶體驗(yàn),提高終端普適性和準(zhǔn)確率是本文研究的重點(diǎn)。
本文針對(duì)上述問題,在樣本有限情況下,對(duì)僅有推理的終端AI芯片進(jìn)行了研究。使用反卷積特征可視化方法定位識(shí)別錯(cuò)誤樣本的卷積層(Convolutional Layer),根據(jù)高層不變性特征調(diào)整局部特征點(diǎn)的相關(guān)網(wǎng)絡(luò)層參數(shù),利用終端AI芯片高性能處理能力,對(duì)神經(jīng)網(wǎng)絡(luò)模型參數(shù)進(jìn)行快速迭代反饋優(yōu)化,以提高識(shí)別準(zhǔn)確度。本文使用Kaggle數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)測(cè)試,搭建了5種常用深度學(xué)習(xí)模型。從實(shí)驗(yàn)結(jié)果可以得到,可視化反饋AI芯片能夠在不重新訓(xùn)練數(shù)據(jù)情況下優(yōu)化網(wǎng)絡(luò)模型參數(shù),有效提高了終端AI芯片的普適性和識(shí)別準(zhǔn)確度。在此基礎(chǔ)上,本文還提出了一種基于AI芯片的可視化反饋AI處理器設(shè)計(jì)架構(gòu),該設(shè)計(jì)架構(gòu)的處理效率顯著,明顯優(yōu)于CPU、GPU和FPGA。
可視化卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[9]模型是對(duì)CNN卷積核的探索解釋,這里的可視化是指可視化CNN模型中的卷積層。CNN算法基于多層感知機(jī)(Multilayer Perceptron,MLP)[10],并在此引入了2個(gè)重要的運(yùn)算:卷積和池化。在CNN基礎(chǔ)上發(fā)展了很多高效的深度學(xué)習(xí)算法,如 AlexNet[11]、VGGNet[12]、GoogleNet[13]、ResNet[14]、SeNet[15]和YOLOv3[16]等網(wǎng)絡(luò)結(jié)構(gòu)??梢暬惴ǜ鶕?jù)網(wǎng)絡(luò)模型可分為兩大類:一類是基于非監(jiān)督模型可視化,這類方法不需要BP算法,是對(duì)卷積層進(jìn)行可視化,該類方法直接將圖片在已有模型中進(jìn)行一次前向傳播,對(duì)某個(gè)卷積核響應(yīng)最大的中間結(jié)果進(jìn)行可視化;另一類方法是基于監(jiān)督模型可視化,根據(jù)BP結(jié)果,對(duì)分類模型或圖像特定類顯示可視化,以達(dá)到優(yōu)化圖像作用。
只具有推理功能的終端AI芯片不具備BP算法,無法直接優(yōu)化深度卷積網(wǎng)絡(luò)的模型參數(shù)。本文采用基于非監(jiān)督模型可視化算法,對(duì)特征層進(jìn)行反卷積處理,對(duì)導(dǎo)致識(shí)別錯(cuò)誤的卷積核進(jìn)行局部調(diào)整參數(shù),替代BP功能,達(dá)到優(yōu)化模型,進(jìn)而識(shí)別該類圖像目的。
非監(jiān)督可視算法以ZFNet[17]提出的反卷積算法為代表。2014年,CNN可視化開山之作[14]首次系統(tǒng)化地對(duì)AlexNet進(jìn)行了可視化,并根據(jù)可視化結(jié)果改進(jìn)了AlexNet。文獻(xiàn)[14]提出了一種新的可視化技術(shù),揭示了模型中任意層的特征層與輸入之間的響應(yīng)關(guān)系,應(yīng)用于非監(jiān)督模型。該文獻(xiàn)使用了反卷積網(wǎng)絡(luò)處理方法,將激活值反向處理映射回輸入層像素空間,通過這種方式可以展示出每一層對(duì)特征映射圖(Feature Map)中對(duì)一個(gè)給定激活值的影響。一個(gè)反卷積網(wǎng)絡(luò)(Deconvolutional Network,deconvnet)[18]可以被看成是一個(gè)卷積網(wǎng)絡(luò)模型,這個(gè)模型同樣有卷積處理的組件(池化和激活),只是采用了相反的過程,將特征信息反向映射回像素層。
反卷積可視化處理流程如圖1所示。反卷積可視化處理目的是用以驗(yàn)證神經(jīng)網(wǎng)絡(luò)各個(gè)層所提取到的特征信息。以各層處理后得到的特征圖結(jié)果作為輸入,對(duì)特征圖結(jié)果進(jìn)行反卷積處理,映射到像素層,得到該層結(jié)果。為檢驗(yàn)一個(gè)給定CNN的激活,本文就將該激活的特征層后接一個(gè)反卷積網(wǎng)絡(luò),然后進(jìn)行反池化、反激活、反卷積處理。重復(fù)上述過程直到原始輸入層。
圖1 反卷積可視化處理流程Fig.1 Deconvolution visualization process flow
在卷積神經(jīng)網(wǎng)絡(luò)中,max-pooling操作過程不可逆,但可以通過一系列switch變量來記錄池化過程中最大激活值的坐標(biāo)位置。反池化是近似處理,只記錄池化過程中最大激活值所在的位置坐標(biāo)信息,其余位置值設(shè)置為0。
反激活處理過程采用了和激活過程一致的ReLU函數(shù)。這是由于CNN使用ReLU以確保每層輸出的激活值都是正數(shù),因此反向過程的輸出特征圖也需要為正值,說明激活過程和反激活過程沒有差別,同樣采用了ReLU函數(shù)。
卷積過程使用學(xué)習(xí)到的過濾器對(duì)特征映射圖進(jìn)行卷積,為近似反轉(zhuǎn)這個(gè)過程,反卷積使用該卷積核的轉(zhuǎn)置來進(jìn)行卷積操作。
該方法被用于可視化非監(jiān)督深度體系結(jié)構(gòu),結(jié)合目前的無訓(xùn)練的終端AI芯片易于實(shí)現(xiàn)。反激活和反卷積算法可直接使用AI芯片的激活和卷積功能,反池化算法對(duì)整體可視化過程影響較小,暫不設(shè)計(jì)進(jìn)芯片。其中,反卷積需要卷積核轉(zhuǎn)置完成,在硬件AI芯片處理時(shí)可以先使用軟件對(duì)圖像進(jìn)行轉(zhuǎn)置處理,然后調(diào)用芯片的卷積功能完成反卷積運(yùn)算。
反卷積可視化反饋系統(tǒng)可在具有卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的終端AI芯片上實(shí)現(xiàn),無需修改硬件架構(gòu),可有效增加終端AI芯片的適用性。
圖2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Convolutional neural network structure
CNN是深度學(xué)習(xí)代表算法之一,包含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)包括卷積層(Convolutional Layer)和池化層(Pooling Layer)。如圖2所示,卷積網(wǎng)絡(luò)通常有一個(gè)輸入層,多個(gè)卷積和池化層,一個(gè)或2個(gè)全連接層,和一個(gè)輸出層的結(jié)構(gòu)組成。筆者將整個(gè)結(jié)構(gòu)分為兩部分理解:輸入層和卷積池化層為特征表示器,全連接層和輸出層可以看作一個(gè)分類器。例如輸入一只狗的圖像,特征表示器將圖像的原始像素映射為眼睛、耳朵、鼻子、毛發(fā)等高級(jí)特征,再使用分類器對(duì)高級(jí)特征進(jìn)行分類。主要處理流程如圖2所示。
AI系統(tǒng)通常涉及訓(xùn)練和推理2個(gè)過程:訓(xùn)練過程通常需要大量標(biāo)簽樣本數(shù)據(jù)作為輸入訓(xùn)練出復(fù)雜的深度神經(jīng)網(wǎng)絡(luò)模型,并通過反向傳播來不斷優(yōu)化網(wǎng)絡(luò)參數(shù),以最小化推理過程誤差;推理過程是使用訓(xùn)練好的網(wǎng)絡(luò)模型,對(duì)新的數(shù)據(jù)進(jìn)行“推斷”,如交通監(jiān)控設(shè)備通過后臺(tái)的神經(jīng)網(wǎng)絡(luò)模型,判斷行駛車輛是否是可疑車輛。雖然推理過程運(yùn)算量小于訓(xùn)練過程,但仍設(shè)計(jì)大量計(jì)算。
如圖3所示,根據(jù)應(yīng)用場景,現(xiàn)有芯片主要分為兩大類:第1類是同時(shí)具有訓(xùn)練和推理的云端芯片,第2類是只具有推理功能的終端芯片。隨著AI應(yīng)用的普及且需求量大,帶有輕量級(jí)訓(xùn)練的終端芯片是必然的發(fā)展趨勢(shì)。
圖3 AI芯片云端和終端區(qū)別Fig.3 Difference between AI chip cloud and terminal
AI的發(fā)展高度依賴海量數(shù)據(jù),優(yōu)質(zhì)的大數(shù)據(jù)量數(shù)據(jù)庫對(duì)終端芯片處理能力起著決定性的作用,且所使用的每一層的參數(shù)均在訓(xùn)練過程中產(chǎn)生。但在很多應(yīng)用的特定場景下無法獲取大量可用數(shù)據(jù),比如航拍目標(biāo)基地、遙感衛(wèi)星獲取艦船、心腦血管堵塞醫(yī)學(xué)影像等。如何在只有某類小樣本情況下,通過在終端芯片上進(jìn)行反饋參數(shù)優(yōu)化以提高用戶體驗(yàn)是本文研究的重點(diǎn)。本文針對(duì)上述問題,對(duì)僅有推理的終端芯片提出一套解決方案。
不可訓(xùn)練的離線終端AI芯片沒有BP功能,無法對(duì)神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行直接優(yōu)化調(diào)整。在小樣本情況下,存在訓(xùn)練過程中缺失,但在推理中出現(xiàn)的樣本。此時(shí),使用訓(xùn)練過程得到的參數(shù),在僅有推理的離線終端AI芯片判斷出錯(cuò)的可能性很大。對(duì)于這種問題,目前沒有更好的算法可以解決。那么,是否可以通過人工協(xié)助處理,對(duì)神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化,以提高系統(tǒng)的分類準(zhǔn)確度?
本文對(duì)此進(jìn)行探索,并提出一種解決方案:利用基于非監(jiān)督模型可視化算法,對(duì)深度學(xué)習(xí)每層卷積圖層進(jìn)行反卷積可視化處理,人工輔助定位誤差樣本,對(duì)影響結(jié)果最大的相關(guān)網(wǎng)絡(luò)層進(jìn)行參數(shù)調(diào)整,從而對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化處理,到達(dá)提高分類準(zhǔn)確度目的。算法實(shí)現(xiàn)流程如圖4所示,主要步驟如下:
步驟1終端芯片卷積、激活、池化處理。
如圖5所示,使用有推理離線終端AI芯片對(duì)圖像進(jìn)行深度卷積、激活和池化處理,獲得所有深度下的卷積層、激活層和池化層。
步驟2反卷積層可視化。
如圖6所示,對(duì)每一層卷積層進(jìn)行反卷積處理,通反激活和反卷積,得到每一層反卷積層,對(duì)卷積層進(jìn)行可視化處理。其中,反激活函數(shù)使用原ReLU算法,可直接使用芯片完成相關(guān)操作;反卷積是將原二維卷積核進(jìn)行了轉(zhuǎn)置,可以先對(duì)圖像進(jìn)行轉(zhuǎn)置,然后在現(xiàn)有芯片上實(shí)現(xiàn)處理。芯片沒有反池化功能,經(jīng)試驗(yàn)該功能影響較小,只進(jìn)行反激活和反卷積處理。
步驟3人工協(xié)助調(diào)整參數(shù)優(yōu)化。
圖4 算法實(shí)現(xiàn)流程圖Fig.4 Algorithm implementation flow chart
圖5 對(duì)圖像進(jìn)行快速卷積、激活和池化處理Fig.5 Fast convolution,activation and pooling process of image
圖6 對(duì)圖像進(jìn)行反激活和反卷積處理Fig.6 Deactivate and deconvolve process of image
當(dāng)樣本量有限,終端AI芯片無法準(zhǔn)確識(shí)別出目標(biāo)時(shí),需要對(duì)卷積核進(jìn)行參數(shù)調(diào)整處理。提取該卷積層對(duì)應(yīng)參數(shù),根據(jù)特征的幾何不變性和光度不變性以及尺度無關(guān)特性對(duì)卷積核參數(shù)進(jìn)行反復(fù)迭代調(diào)整。根據(jù)ZFNet[17]分析可知,以AlexNet為例,該網(wǎng)絡(luò)結(jié)構(gòu)有5層卷積層,神經(jīng)網(wǎng)絡(luò)從第1、2層卷積層會(huì)學(xué)習(xí)到圖像的一些基本特征信息,包括顏色、線條、邊緣等;第3層卷積層開始能夠?qū)W習(xí)到更為豐富的紋理特征;第4、5層學(xué)到的是具有辨別性的關(guān)鍵特征。所以,通常卷積網(wǎng)絡(luò)的后幾層卷積層提取出的是關(guān)鍵特征。由于沒有BP功能,無法確定卷積核參數(shù)變化方向,但可以通過人工輔助,先隨機(jī)大幅度調(diào)參,根據(jù)反卷積可視化結(jié)果確認(rèn)趨勢(shì)后,再自動(dòng)進(jìn)行小幅度調(diào)參。例如卷積核是11×11大小,有121個(gè)數(shù)值,先隨機(jī)100組對(duì)121個(gè)數(shù)值進(jìn)行±0.1,通過可視化反卷積層對(duì)圖像進(jìn)行判斷,確認(rèn)變化趨勢(shì)后,選出5組進(jìn)行局部自動(dòng)調(diào)參,以0.01或-0.01進(jìn)行調(diào)整,利用硬件快速計(jì)算優(yōu)勢(shì)多輪迭代,直到識(shí)別出正確結(jié)果為止。且通過可視化反卷積圖像,提供可視化反卷積層和對(duì)應(yīng)的每一層參數(shù),定位影響結(jié)果最大的卷積層。
綜上,該方法通過對(duì)卷積層進(jìn)行可視化,人為輔助調(diào)整卷積核參數(shù),在一定情況下可達(dá)到參數(shù)優(yōu)化效果,見圖7,0~250為像素值。但由于沒有BP功能,無法對(duì)誤差進(jìn)行逆向傳播,可能會(huì)導(dǎo)致調(diào)整后權(quán)值僅適用于該張圖像,但在其他圖像中會(huì)仍出現(xiàn)識(shí)別錯(cuò)誤問題。這是后面需要解決的技術(shù)難點(diǎn),如使用可訓(xùn)練的終端AI芯片,或軟件算法先對(duì)問題樣本同類特征點(diǎn)進(jìn)行分類,進(jìn)行人工輔助類樣本擴(kuò)充。
圖7 卷積核優(yōu)化前后反卷積圖像和識(shí)別結(jié)果Fig.7 Deconvolution image and recognition results before and after convolution kernel optimization
本文基于終端AI芯片,提出一種可視化反饋AI處理器架構(gòu),如圖8所示,終端AI處理器作為協(xié)處理器,用于提高圖像處理、識(shí)別的速度和精度,同時(shí)降低功耗。終端AI處理器中包含以下內(nèi)容:一是緩存器,輸入、輸出、權(quán)重?cái)?shù)據(jù)存儲(chǔ)的3組緩存器,其中權(quán)重?cái)?shù)據(jù)存儲(chǔ)包含原卷積核權(quán)重、反卷積核權(quán)重核和優(yōu)化卷積核權(quán)重3組數(shù)據(jù);二是控制器,終端AI包含2個(gè)控制器,控制器1用于時(shí)序與總線控制,控制器2用于參數(shù)反饋調(diào)整;三是智能計(jì)算核心部分,包含卷積單元、激活單元、池化單元、反激活單元、反卷積單元和參數(shù)調(diào)整單元,其中卷積單元用于提取圖像特征,激活池化單元用于壓縮數(shù)據(jù),反激活和反卷積單元用于反卷積可視化圖像,最后根據(jù)反卷積單元,控制器控制參數(shù)調(diào)整單元對(duì)卷積核參數(shù)進(jìn)行調(diào)整,迭代處理。研究重點(diǎn)是利用硬件高性能處理能力對(duì)參數(shù)反復(fù)快速迭代,結(jié)合反卷積可視化功能對(duì)卷積核權(quán)重參數(shù)進(jìn)行優(yōu)化,最終達(dá)到識(shí)別出目標(biāo)的目的。
終端AI處理器處理流程如圖9所示,具體步驟如下:
步驟1正向卷積處理得到識(shí)別結(jié)果。
對(duì)輸入待識(shí)別圖像進(jìn)行多輪卷積、激活和池化處理,最后通過全連接層輸出識(shí)別結(jié)果。當(dāng)結(jié)果識(shí)別正確時(shí)開始識(shí)別下一張圖,識(shí)別錯(cuò)誤時(shí),進(jìn)行反卷積處理。
本色語文,是針對(duì)語文教學(xué)的種種偏頗認(rèn)識(shí)和違背語文教學(xué)基本規(guī)律的種種異化行為提出的系統(tǒng)的教學(xué)主張,該成果獲江蘇省首屆基礎(chǔ)教育成果獎(jiǎng)特等獎(jiǎng)和國家教學(xué)成果獎(jiǎng)。語文共生教學(xué),是立足于母語教學(xué)的基本規(guī)律,運(yùn)用共生理論,從豐富的教學(xué)實(shí)踐中總結(jié)出來的,能體現(xiàn)母語教育規(guī)律和本色語文教學(xué)主張,具有原創(chuàng)性和推廣價(jià)值的教學(xué)方法。前者是主張,后者是方法;前者主要是理性思考,后者主要是實(shí)踐操作;前者側(cè)重承繼,后者著力創(chuàng)新。
圖8 可視化反饋AI處理器Fig.8 Visual feedback AI processor
步驟2反卷積處理得到可視化圖像。
對(duì)識(shí)別錯(cuò)誤輸出,從最后一層卷積圖像開始,先將圖像進(jìn)行裝置,然后逐層反卷積處理,得到多層反卷積可視圖像,如AlexNet網(wǎng)絡(luò),有5層卷積層,經(jīng)過反卷積處理后,最終得到5組反卷積圖像。
步驟3卷積核參數(shù)優(yōu)化。
卷積核參數(shù)優(yōu)化需要用到BP功能,利用梯度信息對(duì)參數(shù)進(jìn)行優(yōu)化。但對(duì)于不具BP功能的終端AI芯片,無法通過這種方式對(duì)卷積核權(quán)重參數(shù)進(jìn)行優(yōu)化。結(jié)合反卷積可視化,利用硬件快速計(jì)算能力,選出影響較大的反卷積層對(duì)應(yīng)的卷積核進(jìn)行局部參數(shù)自動(dòng)調(diào)整,反復(fù)迭代嘗試,直到識(shí)別出正確結(jié)果為止。然后將新卷積核參數(shù)更新進(jìn)卷積單元,并保留上次卷積核權(quán)重參數(shù)。
通過上述步驟,終端AI處理器可以利用反卷積可視化圖像和硬件快速處理優(yōu)勢(shì),對(duì)沒有BP的深度學(xué)習(xí)框架下的卷積核權(quán)重進(jìn)行局部優(yōu)化參數(shù)處理。避免了花費(fèi)大量時(shí)間重新訓(xùn)練網(wǎng)絡(luò)參數(shù),提供了一種對(duì)深度學(xué)習(xí)模型下人工參與的解決方案,增強(qiáng)了終端AI芯片的普適性和魯棒性。
本文提出的架構(gòu),相比于CPU、GPU和FPGA,在卷積神經(jīng)網(wǎng)絡(luò)模型里,更具有高效處理能力和靈活可塑性。所提出的可視化反饋處理器架構(gòu),是基于卷積神經(jīng)網(wǎng)絡(luò)算法的框架,包含6個(gè)核心卷積單元、激活單元、池化單元、反激活單元、反卷積單元和參數(shù)調(diào)整單元,每個(gè)單元內(nèi)部的參數(shù)靈活可配,每個(gè)單元之間的順序和重復(fù)性可以調(diào)整,并通過片內(nèi)緩存區(qū)對(duì)數(shù)據(jù)進(jìn)行交互。這種設(shè)計(jì)方式不僅在每單元對(duì)不同功能進(jìn)行了硬件加速封裝,而且使得每個(gè)運(yùn)算單元都有獨(dú)立高速處理能力,各個(gè)硬件設(shè)計(jì)單元靈活可配置,能夠兼容市面上大部分CNN模型算法框架,如AlexNet、VGGNet等。
圖9 AI芯片反卷積可視化硬件處理流程Fig.9 AI chip deconvolution visualization hardware processing flow
由于深度學(xué)習(xí)的數(shù)據(jù)量和計(jì)算量均較為龐大,嵌入式人工終端AI處理器的設(shè)計(jì)需要同具體算法高度契合,以保證最終處理器產(chǎn)品的高性能、低功耗等指標(biāo)。對(duì)于解決特定問題而設(shè)計(jì)的AI算法,需要經(jīng)過通用平臺(tái)和硬件環(huán)境進(jìn)行多次算法迭代,最終形成準(zhǔn)確度高、可行性強(qiáng)的算法數(shù)學(xué)模型。此后需要對(duì)數(shù)學(xué)模型進(jìn)行建模分析、提煉基于此分析的工程化模型,即可實(shí)行性方案。最終,對(duì)該方案進(jìn)行芯片前端設(shè)計(jì),并通過仿真驗(yàn)證該芯片設(shè)計(jì)所能實(shí)現(xiàn)的性能和計(jì)算精度;與此同時(shí),通過數(shù)據(jù)復(fù)用、可重構(gòu)計(jì)算等新型設(shè)計(jì)方法,進(jìn)一步提升芯片的整體性能和算法的執(zhí)行效率。
如圖10所示,本文實(shí)驗(yàn)在TensorFlow平臺(tái)上搭建了準(zhǔn)確度高、可行性強(qiáng)的算法數(shù)據(jù)模型。然后對(duì)該模型進(jìn)行前端設(shè)計(jì),并進(jìn)行仿真驗(yàn)證。如圖10所示,本文在TensorFlow上進(jìn)行訓(xùn)練,分別搭建了AlexNet、ResNet18、ResNet50、ResNet101和YOlO3五種模型。ResNet18、ResNet50、Res-Net101由ResNet演變而來。使用Kaggle數(shù)據(jù)集,對(duì)12 500張貓和12 500張狗的數(shù)據(jù)集進(jìn)行深度學(xué)習(xí)模型訓(xùn)練,為了充分利用測(cè)試圖像數(shù)據(jù)信息,對(duì)訓(xùn)練集數(shù)據(jù)訓(xùn)練30次。然后使用Verilog語言完成可視化反饋處理器設(shè)計(jì),并進(jìn)行仿真處理,將訓(xùn)練好的參數(shù)存入權(quán)重緩存,然后對(duì)1 000張圖像測(cè)試集進(jìn)行識(shí)別,對(duì)識(shí)別錯(cuò)誤的圖像進(jìn)行可視化反饋卷積核優(yōu)化處理。
圖10 驗(yàn)證平臺(tái)流程Fig.10 Verification platform process
實(shí)驗(yàn)結(jié)果如表1所示,可視化反饋終端AI實(shí)現(xiàn)了AlexNet(5層卷積層)、ResNet18(17層卷積層)、ResNet50(49層卷積層)、ResNet101(100層卷積層)和YOLO3(53層卷積層)5種模型。測(cè)試CPU處理器是Intel E5-2680主頻2.4 GHz雙核處理器,GPU顯卡是NVIDIA GeForce GTX 1080Ti主頻1.54 GHz,F(xiàn)PGA使用TI的ARM11。表中展示了每種模型下的實(shí)驗(yàn)結(jié)果對(duì)比,其中AlexNet、ResNet18、ResNet50和ResNet101的圖像測(cè)試幅寬是244×244,YOLO3的圖像測(cè)試幅寬是416×416;優(yōu)化前識(shí)別率是優(yōu)化卷積核參數(shù)前的識(shí)別率;優(yōu)化卷積核參數(shù)后的識(shí)別率不把當(dāng)前這張圖重新識(shí)別正確計(jì)算在內(nèi);平均處理時(shí)間是在當(dāng)前網(wǎng)絡(luò)模型下識(shí)別一張圖結(jié)果的處理時(shí)間,分別在CPU、GPU、FPGA和本文架構(gòu)上進(jìn)行測(cè)試;平均優(yōu)化參數(shù)時(shí)間是當(dāng)前網(wǎng)絡(luò)模型下識(shí)別錯(cuò)誤時(shí),使用可視化反饋參數(shù)優(yōu)化功能下識(shí)別正確一張圖的平均時(shí)間,分別在CPU、GPU、FPGA和本文架構(gòu)上進(jìn)行測(cè)試。
根據(jù)實(shí)驗(yàn)結(jié)果可以分析出,卷積核優(yōu)化后識(shí)別率有一定的提升,但增幅不大,主要原因是因?yàn)闃颖居邢?,使得調(diào)整后的權(quán)值模型適用范圍有限,可能僅適用于該圖像,在其他圖像中仍然無法正確識(shí)別。該問題需要進(jìn)一步探討和解決,比如可在有輕量級(jí)訓(xùn)練終端芯片上,根據(jù)高層特征不變性擴(kuò)展樣本,能識(shí)別出這一類圖像集。對(duì)比CPU、GPU和FPGA 3種架構(gòu),本文架構(gòu)的計(jì)算效率明顯更高,平均處理效率是CPU 的678倍,GPU的14倍,F(xiàn)PGA的2倍。其中,本文架構(gòu)設(shè)計(jì)和FPGA效率相近,但在計(jì)算優(yōu)化參數(shù)時(shí)本文架構(gòu)的處理效率是其7.6倍,這是由于FPGA受限于并運(yùn)算。相比之下,本文架構(gòu)的處理效率優(yōu)勢(shì)明顯。但優(yōu)化過程運(yùn)算量大,使用時(shí)間平均是識(shí)別過程的23000倍。
表1 不同模型實(shí)驗(yàn)結(jié)果對(duì)比Table 1 Comparison of experimental results among different models
本文提出一種基于終端AI芯片的可視化反饋系統(tǒng)架構(gòu)方法,針對(duì)小樣本情況下,對(duì)僅有推理功能的終端AI芯片進(jìn)行了研究,在識(shí)別錯(cuò)誤的情況下,對(duì)錯(cuò)誤圖像的各個(gè)卷積層進(jìn)行反卷積可視化,利用硬件芯片快速計(jì)算優(yōu)勢(shì),對(duì)卷積核權(quán)重參數(shù)進(jìn)行優(yōu)化處理,達(dá)到可識(shí)別圖像目的。實(shí)驗(yàn)驗(yàn)證表明:
1)所提方法可適性強(qiáng),可用于所有具備深度學(xué)習(xí)功能的終端AI芯片,不受限于深度學(xué)習(xí)反向傳播功能。
2)所提方法處理效率高,對(duì)比CPU、GPU和FPGA 3種典型架構(gòu),本文設(shè)計(jì)架構(gòu)具有高效處理能力和靈活可塑性。
3)所提方法提高了終端AI芯片的普適性以及識(shí)別準(zhǔn)確度,在無BP的終端AI芯片上,可以通過該方法對(duì)深度學(xué)習(xí)網(wǎng)絡(luò)模型參數(shù)進(jìn)行優(yōu)化,在不重新訓(xùn)練樣本情況下提高了整體識(shí)別率。
4)樣本過于單一情況下,存在一定風(fēng)險(xiǎn)使得優(yōu)化后的網(wǎng)絡(luò)卷積核參數(shù)僅適用于該圖像,而其他圖像仍可能識(shí)別錯(cuò)誤。且優(yōu)化過程運(yùn)算量大,使用時(shí)間是識(shí)別過程的23 000倍。
基于目前的工作,后續(xù)可以開展進(jìn)一步研究:一是進(jìn)一步優(yōu)化網(wǎng)絡(luò)參數(shù),考慮使用生成式對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)[19]對(duì)識(shí)別出錯(cuò)的樣本進(jìn)行擴(kuò)展,增加網(wǎng)絡(luò)模型強(qiáng)健性;二是優(yōu)化算法處理性能,研究新的深度學(xué)習(xí)可解釋算法,結(jié)合終端AI芯片特性,對(duì)調(diào)整參數(shù)的效率進(jìn)行優(yōu)化加速處理。