劉佳琦,楊 璐,王龍志
(1天津理工大學(xué) 天津市先進(jìn)機(jī)電系統(tǒng)設(shè)計(jì)與智能控制重點(diǎn)實(shí)驗(yàn)室,天津300384;2天津理工大學(xué)機(jī)電工程國(guó)家級(jí)實(shí)驗(yàn)教學(xué)示范中心,天津300384;3奧特貝睿(天津)科技有限公司,天津300300)
知識(shí)蒸餾是深度學(xué)習(xí)領(lǐng)域一項(xiàng)重要的模型壓縮技術(shù)。傳統(tǒng)的蒸餾學(xué)習(xí)思想是通過(guò)提前訓(xùn)練好的大網(wǎng)絡(luò)對(duì)輕量網(wǎng)絡(luò)進(jìn)行知識(shí)傳遞,從而使輕量網(wǎng)絡(luò)能達(dá)到大網(wǎng)絡(luò)的表達(dá)能力,實(shí)現(xiàn)知識(shí)遷移。基于傳統(tǒng)蒸餾學(xué)習(xí)的模型訓(xùn)練主要分為兩個(gè)步驟:首先充分訓(xùn)練一個(gè)結(jié)構(gòu)復(fù)雜、學(xué)習(xí)能力強(qiáng)的教師網(wǎng)絡(luò),使其具有優(yōu)秀的表達(dá)能力;其次在教師網(wǎng)絡(luò)的基礎(chǔ)上設(shè)計(jì)一個(gè)結(jié)構(gòu)簡(jiǎn)單、參數(shù)量小的學(xué)生網(wǎng)絡(luò),使用教師網(wǎng)絡(luò)的特征約束作為軟標(biāo)簽進(jìn)行監(jiān)督,使學(xué)生網(wǎng)絡(luò)通過(guò)軟標(biāo)簽對(duì)真實(shí)標(biāo)簽輔助訓(xùn)練,逐漸逼近教師網(wǎng)絡(luò)的表達(dá)水平。從模型推理方面分析,教師網(wǎng)絡(luò)只在訓(xùn)練階段對(duì)學(xué)生網(wǎng)絡(luò)起到約束作用,不參與學(xué)生網(wǎng)絡(luò)的獨(dú)立推理過(guò)程的計(jì)算與部署,因此知識(shí)蒸餾在神經(jīng)網(wǎng)絡(luò)模型輕量化領(lǐng)域有著重要的意義。
由于傳統(tǒng)蒸餾學(xué)習(xí)中的教師網(wǎng)絡(luò)對(duì)學(xué)生網(wǎng)絡(luò)的知識(shí)傳遞是單向的,難以從學(xué)生網(wǎng)絡(luò)的學(xué)習(xí)狀態(tài)中得到反饋信息,來(lái)對(duì)訓(xùn)練過(guò)程進(jìn)行優(yōu)化調(diào)整,從而對(duì)學(xué)生網(wǎng)絡(luò)的訓(xùn)練產(chǎn)生負(fù)影響;其次,采取教師網(wǎng)絡(luò)產(chǎn)生軟標(biāo)簽結(jié)合真實(shí)標(biāo)簽進(jìn)行監(jiān)督的形式,當(dāng)軟標(biāo)簽權(quán)重過(guò)高時(shí),學(xué)生網(wǎng)絡(luò)會(huì)過(guò)于模仿教師網(wǎng)絡(luò),從而限制學(xué)生網(wǎng)絡(luò)的特征表達(dá)能力;由于針對(duì)不同困難程度的數(shù)據(jù)集任務(wù),所需要的教師網(wǎng)絡(luò)的軟標(biāo)簽監(jiān)督權(quán)重也有所不同,因此增加了訓(xùn)練過(guò)程的難度。
近年來(lái),人們嘗試將網(wǎng)絡(luò)自身的特征作為軟標(biāo)簽,不需要訓(xùn)練教師網(wǎng)絡(luò),實(shí)現(xiàn)了輕量網(wǎng)絡(luò)模型自身的監(jiān)督優(yōu)化。SAD嘗試使用兩個(gè)相鄰層級(jí)間的上下文信息,使得淺層特征學(xué)習(xí)高層特征,從而實(shí)現(xiàn)網(wǎng)絡(luò)性能的整體提升。但是,以相鄰層級(jí)信息進(jìn)行約束不能對(duì)上下文信息進(jìn)行充分的利用。本文借鑒了Densenet對(duì)Resnet的優(yōu)化改進(jìn)思想,使得上下文特征信息可以在整個(gè)網(wǎng)絡(luò)中被充分利用,進(jìn)而保證每一層級(jí)學(xué)習(xí)的特征約束,都能作用到網(wǎng)絡(luò)之后的所有層級(jí)。
綜上所述,針對(duì)已有研究工作的不足本文提出了一種自適應(yīng)多級(jí)注意力蒸餾學(xué)習(xí)方法(MAD)。該方法使用網(wǎng)絡(luò)自身的高層特征對(duì)淺層逐級(jí)進(jìn)行約束,以自身的深層單元來(lái)約束淺層單元,以此實(shí)現(xiàn)模型知識(shí)由深層向淺層的傳遞。在充分利用上下文信息的基礎(chǔ)上,對(duì)各層級(jí)間的表達(dá)能力進(jìn)行提升。
知識(shí)蒸餾的提出,是為了實(shí)現(xiàn)知識(shí)遷移。Hinton[1]系統(tǒng)的詮釋了知識(shí)蒸餾的概念,并以教師網(wǎng)絡(luò)的輸出作為軟標(biāo)簽來(lái)監(jiān)督學(xué)生網(wǎng)絡(luò)訓(xùn)練,從而驗(yàn)證了知識(shí)遷移的可行性。在后續(xù)的大量研究中,探究了提高知識(shí)遷移效率的方法。FITNETS[2]提出添加教師網(wǎng)絡(luò)中間層的特征,作為學(xué)生網(wǎng)絡(luò)學(xué)習(xí)的軟標(biāo)簽,使得學(xué)生網(wǎng)絡(luò)在關(guān)注教師模型輸出的同時(shí),實(shí)現(xiàn)了中間層的特征約束。文獻(xiàn)[3]認(rèn)為硬標(biāo)簽會(huì)導(dǎo)致模型在訓(xùn)練過(guò)程中發(fā)生過(guò)擬合,而使用軟標(biāo)簽更能提高模型的泛化能力,在訓(xùn)練任務(wù)中選擇幾個(gè)具有最高置信度分?jǐn)?shù)的類(lèi),可以作為軟標(biāo)簽來(lái)計(jì)算損失。為了更好的表征神經(jīng)網(wǎng)絡(luò)中間層的特征,文獻(xiàn)[4-5]認(rèn)為,可以?xún)?yōu)化中間層特征的表征編碼方式;文獻(xiàn)[6]認(rèn)為,神經(jīng)網(wǎng)絡(luò)層與層之間的特征關(guān)系更能作為特征提取能力的指標(biāo),因此讓學(xué)生網(wǎng)絡(luò)學(xué)習(xí)到教師網(wǎng)絡(luò)的層級(jí)之間的特征關(guān)系更為重要;文獻(xiàn)[7]認(rèn)為,以特征圖作為軟標(biāo)簽進(jìn)行傳遞效果不佳,提出使用注意力圖代替特征圖,最小化教師網(wǎng)絡(luò)與學(xué)生網(wǎng)絡(luò)之間注意力圖的歐氏距離,可以獲得更好的效果;文獻(xiàn)[8]中認(rèn)為,基于激活的注意力蒸餾會(huì)產(chǎn)生明顯的性能提高,而基于梯度的注意力蒸餾提升相對(duì)較小。
語(yǔ)義分割屬于像素級(jí)別的分類(lèi)任務(wù),通過(guò)對(duì)每個(gè)像素進(jìn)行密集的預(yù)測(cè)來(lái)實(shí)現(xiàn)細(xì)粒度的推理。語(yǔ)義分割體系結(jié)構(gòu)被廣泛認(rèn)為是編解碼結(jié)構(gòu)(Encoder-Decoder)。其中編碼器通常為特征提取網(wǎng)絡(luò),典型的編 碼 特 征 提 取 網(wǎng) 絡(luò) 有:Resnet[9]、GoogleNet[10]、VGGNet[11]。解碼器將編碼器學(xué)習(xí)提取到的語(yǔ)義特征投影到像素空間上得到密集的分類(lèi)。
FCN[12]作為經(jīng)典的編解碼語(yǔ)義分割結(jié)構(gòu),取得了矚目的成就,使用反卷積對(duì)卷積特征進(jìn)行上采樣,對(duì)每個(gè)像素類(lèi)別進(jìn)行預(yù)測(cè),實(shí)現(xiàn)圖像語(yǔ)義分割。U-Net[13]在FCN的基礎(chǔ)上,通過(guò)加入更多的底層特征,實(shí)現(xiàn)了對(duì)小物體細(xì)節(jié)分割質(zhì)量的提升,PSPNet[14]通過(guò)利用空間金字塔池化模塊進(jìn)行編碼,實(shí)現(xiàn)了對(duì)多尺度信息進(jìn)行特征融合。同時(shí),DeepLab_V3[15]在DeepLab_V2[16]的基礎(chǔ)上,對(duì)空間金字塔模塊進(jìn)行改進(jìn),取得了分割精確性的提升。ENet[17]使用下卷積層并行池化層來(lái)進(jìn)行下采樣,解碼階段使用空洞卷積,在獲得大感受野的同時(shí)獲得豐富的上下文信息。ERFNet[18]在ENet的基礎(chǔ)上進(jìn)行改進(jìn),使用非對(duì)稱(chēng)卷積,實(shí)現(xiàn)了網(wǎng)絡(luò)準(zhǔn)確性與實(shí)時(shí)性的提升。
將卷積神經(jīng)網(wǎng)絡(luò)劃分為幾個(gè)單元,使得前一單元可以從后續(xù)的各個(gè)單元中提取有用的上下文信息。本文以ERFNet網(wǎng)絡(luò)結(jié)構(gòu)為例,將網(wǎng)絡(luò)的Encoder部分拆分成6個(gè)單元,如圖1所示,以自身的深層單元來(lái)約束淺層單元,以實(shí)現(xiàn)模型知識(shí)由深層向淺層的傳遞,提高淺層的表達(dá)能力,從而提升模型整體的表達(dá)能力。
圖1 MAD算法結(jié)構(gòu)圖Fig.1 Structure of MAD algorithm
對(duì)于一個(gè)共有L個(gè)單元的網(wǎng)絡(luò),如圖2所示,共包含N級(jí)蒸餾。將各級(jí)蒸餾中每個(gè)分支進(jìn)行加和,各級(jí)蒸餾損失函數(shù)如下:
圖2 多級(jí)注意力蒸餾示意圖Fig.2 Multi-Res Distillation
式中,n為蒸餾級(jí)別,i代表了當(dāng)前級(jí)別下的序數(shù)。
將總蒸餾損失函數(shù)設(shè)為各級(jí)蒸餾加權(quán)損失之和,計(jì)算公式如下:
式中,an為一個(gè)自適應(yīng)的權(quán)重系數(shù),與初設(shè)的單元數(shù)量有關(guān)。設(shè)定相鄰層級(jí)蒸餾可獲得高權(quán)重,蒸餾層級(jí)跨度越大獲得權(quán)重越低,因此自適應(yīng)權(quán)重系數(shù)αn為:
如公式(5)所示,通過(guò)計(jì)算加權(quán)的分割損失與蒸餾損失,可得到總的損失函數(shù)。本文使用一個(gè)權(quán)重系數(shù)β來(lái)平衡分割損失與蒸餾損失對(duì)最終任務(wù)的影響。(權(quán)重系數(shù)β將在3.3節(jié)進(jìn)行討論)
所有蒸餾部分只在訓(xùn)練期間進(jìn)行計(jì)算,因此在測(cè)試推理過(guò)程中不增加計(jì)算量。
注意力圖主要可以分為兩類(lèi):基于激活的注意力圖與基于梯度的注意力圖。文獻(xiàn)[7]的研究發(fā)現(xiàn),基于激活的注意力蒸餾可顯著提高性能;基于梯度的注意力蒸餾,提升效果不明顯。因此,本文使用基于激活的注意力蒸餾方法。
為了定義一個(gè)空間注意力映射,可以將隱藏神經(jīng)元激活的絕對(duì)值,作為該神經(jīng)元相對(duì)于輸入的注意力。因此,通過(guò)計(jì)算這些值在通道維度上的統(tǒng)計(jì),來(lái)構(gòu)建空間注意力圖。生成注意力圖時(shí),在特征經(jīng)過(guò)softmax操作之前,使用雙線性上采樣,使不同層輸出的特征圖尺寸保持統(tǒng)一。注意力圖生成過(guò)程如圖3所示。
圖3 注意力圖生成過(guò)程Fig.3 The generating process of attention maps
針對(duì)不同的任務(wù),注意力圖的計(jì)算方式會(huì)有所不同,這主要與任務(wù)中特征的種類(lèi)、數(shù)量、復(fù)雜程度有關(guān)。對(duì)于車(chē)道線檢測(cè)任務(wù),計(jì)算注意力圖使用A∈RC×RH×RW表示網(wǎng)絡(luò)卷積層的激活輸出,其中C、H和W分別表示通道、高度和寬度。通過(guò)計(jì)算通道維度上的統(tǒng)計(jì)來(lái)表征注意力圖,有以下2種有效操作[7]可以作為映射函數(shù):
針對(duì)車(chē)道線檢測(cè)任務(wù),希望網(wǎng)絡(luò)注意力集中在車(chē)道線附近的區(qū)域,本文可視化了2種映射函數(shù)提取得到的注意力圖,如圖4所示。通過(guò)對(duì)比兩種映射函數(shù)發(fā)現(xiàn):作為映射函數(shù),可以使注意力圖更加集中在特征區(qū)域。其中p越大,特征區(qū)域的激活程度越高。根據(jù)對(duì)比分析,當(dāng)p取2時(shí),會(huì)使注意力圖的偏差更小。
圖4 不同映射方法結(jié)果Fig.4 Results of different mapping methods
因此,本文注意力圖計(jì)算公式為:
式中,C為卷積層的通道數(shù),即特征圖的數(shù)量。注意力圖即為當(dāng)前單元各通道特征圖的平方和,從而可以計(jì)算出每個(gè)層級(jí)單元間注意力蒸餾損失函數(shù):
使用輕量級(jí)網(wǎng)絡(luò)ERFNet、DeepLab_V3在2個(gè)不同難度任務(wù)的分割數(shù)據(jù)集CULane、VOC2012上進(jìn)行驗(yàn)證。
3.1.1 CULane
CULane數(shù)據(jù)集[19]是一個(gè)大規(guī)模車(chē)道檢測(cè)數(shù)據(jù)集,包含了許多具有挑戰(zhàn)性的駕駛場(chǎng)景。如,擁擠的道路條件或照明不足的道路。其是由安裝在北京不同司機(jī)駕駛的6輛不同車(chē)輛上的攝像頭采集而得。收集了超過(guò)55 h的視頻,提取了133 235幀。將數(shù)據(jù)集分成88 880個(gè)訓(xùn)練集、9 675個(gè)驗(yàn)證集、34 680個(gè)測(cè)試集。測(cè)試集分為正常和8個(gè)挑戰(zhàn)性類(lèi)別,對(duì)應(yīng)于表1中的9個(gè)示例。
3.1.2 PASCAL VOC
PASCAL VOC 2O12數(shù)據(jù)集[20]是常用語(yǔ)義分割的數(shù)據(jù)集。該數(shù)據(jù)集擁有1 464張訓(xùn)練圖片、1 449張驗(yàn)證圖片和1 456張測(cè)試圖片。其中包括20個(gè)前景類(lèi)別和一個(gè)背景類(lèi)別共21個(gè)語(yǔ)義分類(lèi),該數(shù)據(jù)集中的大部分圖像的分辨率接近500×500。
實(shí)驗(yàn)中采用3個(gè)評(píng)價(jià)指標(biāo)來(lái)衡量車(chē)道線檢測(cè)算法的 性 能,分 別 是 精 確 度(precision)、召 回 率(recall)、F1度量(F1-measure)。其中,精確度表示正確預(yù)測(cè)為真的正樣本占全部預(yù)測(cè)為真的樣本的比例,即正確檢測(cè)為道路的像素占全部檢測(cè)為道路像素的百分比;召回率表示正確預(yù)測(cè)為真的正樣本占全部正樣本的比例,即正確檢測(cè)為道路的像素占全部道路像素的百分比;F1-measure作為綜合指標(biāo),是精確率和召回率的加權(quán)調(diào)和平均,受平衡準(zhǔn)確率和召回率的影響。其計(jì)算公式如下:
同時(shí),針對(duì)VOC數(shù)據(jù)集的語(yǔ)義分割性能評(píng)估,以mIoU的值作為評(píng)價(jià)指標(biāo),來(lái)說(shuō)明MAD方法對(duì)語(yǔ)義分割任務(wù)性能的提升。分別計(jì)算每個(gè)類(lèi)別的IoU(Intersection over Union)值再求平均來(lái)計(jì)算。評(píng)估過(guò)程還包括整體準(zhǔn)確度(Acc)、分類(lèi)準(zhǔn)確度(Acc_class)和帶權(quán)重交并比(fwavacc)。
為驗(yàn)證MAD方法的有效性,進(jìn)行了對(duì)比試驗(yàn)。以ERFNet網(wǎng)絡(luò)為baseline,使用MAD多級(jí)注意力蒸餾進(jìn)行優(yōu)化,設(shè)置僅使用第一級(jí)蒸餾損失優(yōu)化作為單級(jí)注意力蒸餾(SAD)方法作為對(duì)比試驗(yàn)。使用SGD優(yōu)化器,學(xué)習(xí)率為5e-2;在訓(xùn)練階段使用了預(yù)訓(xùn)練權(quán)重,對(duì)模型訓(xùn)練了12個(gè)epoch;設(shè)置batch_size為12,共優(yōu)化88K次迭代數(shù)。通過(guò)在數(shù)據(jù)集CULane上進(jìn)行訓(xùn)練,并使用CULane的驗(yàn)證集對(duì)9個(gè)場(chǎng)景任務(wù)進(jìn)行測(cè)試,分別計(jì)算出3個(gè)指標(biāo)值,并結(jié)合訓(xùn)練過(guò)程的驗(yàn)證信息進(jìn)行綜合評(píng)價(jià)。
針對(duì)不同類(lèi)別的測(cè)試結(jié)果,進(jìn)行了詳細(xì)的實(shí)驗(yàn)結(jié)果分析。在表1、表2中,對(duì)比了在不使用優(yōu)化方法下模型訓(xùn)練后的測(cè)試結(jié)果(baselines),與使用單級(jí)(SAD)、多級(jí)(MAD)注意力不同蒸餾權(quán)重β={100,200}的結(jié)果。
見(jiàn)表1,針對(duì)9種類(lèi)別場(chǎng)景中的車(chē)道線分割任務(wù),無(wú)論是基于單級(jí)(SAD)還是多級(jí)(MAD)注意力蒸餾的結(jié)果,均較原始網(wǎng)絡(luò)有了明顯的提升。根據(jù)表2所展示綜合評(píng)價(jià)結(jié)果,在不同的權(quán)重因子下,通過(guò)比較兩種方法可以發(fā)現(xiàn),多級(jí)(MAD)蒸餾優(yōu)化都要高于單級(jí)(SAD)蒸餾優(yōu)化。同時(shí),本實(shí)驗(yàn)可視化了單級(jí)(SAD)、多級(jí)(MAD)注意力蒸餾優(yōu)化方法的驗(yàn)證結(jié)果與不同蒸餾權(quán)重的對(duì)比結(jié)果(β={10,50,100,200,500}),如圖5所示。
圖5 對(duì)比結(jié)果Fig.5 Comparison results
表1 基于單級(jí)(SAD)、多級(jí)(MAD)注意力蒸餾的9種場(chǎng)景結(jié)果Tab.1 Results of 9 scenarios based on single level(SAD)and multi-level(MAD)attention distillation
表2 基于單級(jí)(SAD)、多級(jí)(MAD)注意力蒸餾的綜合評(píng)價(jià)結(jié)果Tab.2 Comprehensive evaluation results based on single level(SAD)and multi-level(MAD)attention distillation
圖5(a)為β=200的訓(xùn)練過(guò)程評(píng)估。在隨機(jī)初始化后,以同樣的參數(shù)訓(xùn)練5個(gè)epoch,在第6個(gè)epoch時(shí)引入優(yōu)化方法。圖中可以證明,在第6個(gè)循環(huán)周期(epoch)后,多級(jí)(藍(lán)線)方法始終優(yōu)于單級(jí)(紅線)。圖5(b)所示為本文探索不同權(quán)重因子的兩種蒸餾優(yōu)化結(jié)果對(duì)比。從圖中可以看出,不同權(quán)重因子下多級(jí)(藍(lán)色)方法較單級(jí)(紅色)方法仍有明顯的優(yōu)勢(shì)。
圖6所示為β=200的訓(xùn)練過(guò)程損失曲線。在實(shí)驗(yàn)中,設(shè)置第6個(gè)循環(huán)周期(epoch)后加入優(yōu)化。MAD優(yōu)化方法在不同級(jí)別的蒸餾分支中,加入之前模型收斂速度慢,加入之后實(shí)現(xiàn)快速的收斂。相對(duì)整體的模型收斂狀態(tài),并不會(huì)產(chǎn)生震蕩的后果。具體測(cè)試結(jié)果如圖7所示。
圖6 各級(jí)蒸餾損失函數(shù)Fig.6 Distillation loss function of each stage
圖7 ERFNet的檢測(cè)結(jié)果Fig.7 ERFNet predict results
為探索多級(jí)自適應(yīng)蒸餾學(xué)習(xí)(MAD)的普適性,即是否可以應(yīng)用于多種類(lèi)別的分割任務(wù),本文將實(shí)驗(yàn)擴(kuò)展為基于DeepLab_V3網(wǎng)絡(luò)在VOC2012數(shù)據(jù)集上訓(xùn)練20類(lèi)別的語(yǔ)義分割實(shí)驗(yàn)。使用DeepLab_V3為基礎(chǔ)網(wǎng)絡(luò),將網(wǎng)絡(luò)特征提取部分分為4個(gè)單元,在PASCL VOC上訓(xùn)練了200個(gè)循環(huán),在訓(xùn)練80次循環(huán)后加入MAD模塊。batch_size=16,學(xué)習(xí)率為0.01。實(shí)驗(yàn)訓(xùn)練結(jié)果見(jiàn)表3,驗(yàn)證結(jié)果見(jiàn)表4。
表3 DeepLab_V3在VOC2012數(shù)據(jù)集上的訓(xùn)練結(jié)果Tab.3 Training results of Deeplab_V3 on VOC2012 datasets
表4 DeepLab_V3在VOC2012數(shù)據(jù)集上的測(cè)試結(jié)果Tab.4 Testing results of Deeplab_V3 on VOC2012 datasets
根據(jù)表3、表4中結(jié)果可以看出,MAD方法針對(duì)20類(lèi)別的語(yǔ)義分割具有明顯的提升效果。其中Acc為整體準(zhǔn)確度,Acc_class為分類(lèi)準(zhǔn)確度,fwavacc為帶權(quán)重交并比。在訓(xùn)練集mIoU指標(biāo)中MAD方法在原網(wǎng)絡(luò)的基礎(chǔ)上提升0.4,在驗(yàn)證集mIoU指標(biāo)中本文方法提升1.5。
本文提出了一種多級(jí)注意力蒸餾學(xué)習(xí)方法(MAD),以自身網(wǎng)絡(luò)的淺層特征學(xué)習(xí)高層特征的表達(dá)。實(shí)驗(yàn)證明,該方法可普遍提高網(wǎng)絡(luò)中不同層次的視覺(jué)注意力,使ERFNet在CULane任務(wù)的F1-measure指標(biāo)提升2.13,DeepLab_V3在VOC2012任務(wù)的mIoU指標(biāo)提升1.5,在提升網(wǎng)絡(luò)特征提取能力方面具有重要意義。
選擇合適的不同層級(jí)之間的權(quán)重,對(duì)訓(xùn)練時(shí)間與收斂具有一定影響,在后續(xù)的工作中,可以考慮探究每個(gè)蒸餾級(jí)別中不同層之間的權(quán)重,從而實(shí)現(xiàn)模型收斂性能的提高。