許 棟,楊 關,劉小明,劉 陽,劉濟宗,陳 靜,郭清宇
1.中原工學院 計算機學院,鄭州 450007
2.河南省網絡輿情監(jiān)測與智能分析重點實驗室,鄭州 450007
3.中原工學院 前沿信息技術研究院 網絡輿情研究中心,鄭州 450007
4.西安電子科技大學 通信工程學院,西安 710071
深度學習在圖像處理[1]和自然語言處理[2]等領域有著廣泛的應用,但是傳統(tǒng)深度神經網絡的學習大多依賴大量的數據。由于數據的采集等過程需要耗費大量的資源,并且人工標注存在著一定失誤,所以建立一個大型數據集代價高昂,這在一定程度上制約著深度學習的發(fā)展。因此,適用于少量標注數據訓練的小樣本學習[3]甚至零樣本學習[4]也就應運而生。小樣本學習是元學習[5]在監(jiān)督學習領域的應用,通過一定的先驗知識,利用少量具有標注信息的樣本進行特定的任務應用。
現有的小樣本學習方法有四種基本策略:基于數據、基于模型、基于外部記憶、基于參數[6]。基于數據的方法通過使用先驗知識來擴充小樣本訓練集,在增強的樣本集上再利用傳統(tǒng)的機器學習算法建模,從而使經驗風險最小化[7]?;谀P偷姆椒▌t使用先驗知識縮小假設空間H,在H空間中,小樣本數據集更容易得到穩(wěn)定可靠的經驗風險最小化效果?;谕獠恐R則是向模型中添加額外的記憶知識來保存信息,助力模型學習?;趨档姆椒ㄍ瑯邮褂昧讼闰炛R,目的是搜尋假設空間中使得模型效果最好的超參數θ,先驗知識用于提供合理的參數初始化或者用于指導更改參數搜索策略,從而訓練出較好泛化性能的模型。除了MatchingNet[8]、Protonet[9]、RelationNet[10]等經典模型,越來越多的小樣本模型開始涌現。
Huang等人[11]提出了利用泊松學習算法(Poisson transfer network,PTN)來改進標簽傳遞,PTN主要設計用于半監(jiān)督的少量樣本分類模型,并進一步增強了嵌入對比自我監(jiān)督學習的特征,然后通過使用基于圖的方法來改進推理過程。Ye等人[12]提出了直接調整特征的方法,使用set-to-set函數將一組任務不確定的特征轉化為特定的特征,并且使用了transformer這種較為復雜的結構來提升效果。Yoon等人[13]提出了XtarNet來學習任務場景特定的特征,其中,模型在基礎數據集中進行訓練,來適應給定的新類數據集,從而應用于新類的分類。但是包括這些方法在內的大部分方法的改進效果幾乎掩蓋了特征提取所帶來的增益。DenseNet[14]等經典網絡模型表明了特征的有效提取對于模型效果的重要性。更重要的是,由于小樣本學習數據采樣的特殊性,每次只有少量數據輸入網絡進行訓練,這可能造成模型無法充分提取與利用特征。Chen等人[15]指出,神經網絡特征提取能力的大小影響著小樣本模型的表現,對于領域相似的分布特征,這種影響更大。即特征提取成為影響模型性能的關鍵因素。目前小樣本學習模型采用諸如ResNet10、ResNet12等淺層網絡,在有限層網絡和小樣本數據訓練模式下,如何充分利用特征,是改進模型、提高模型表現的一個重要方向。
針對這些問題,提出了基于多分支自適應加權特征提取模塊的神經網絡。該神經網絡主要包含以下兩個階段:
(1)特征提取階段,通過引入多分支特征提取,使得模型在無需構建較深網絡的情況下,能夠提取到豐富的特征,同時緩解了較深網絡中經常出現的梯度爆炸和梯度消失;通過給予不同特征提取分支相應的自適應權重,使得在特征融合階段,分支能夠自適應地抑制或者放大不同分支的特征信號,從而能夠較好地融合特征。
(2)特征相似度度量階段,通過引入自適應的中心二范數歸一化(adaptive central L2 normalization,ACL2N)特征轉換層,使得模型對于不同域的特征能夠較好地適應,同時也起到了正則效果抑制過擬合,提高了模型在相似數據域和交叉數據域的準確率。
數據增強[16]是深度學習中一種最直接的提高模型性能的方法,通過對數據集進行各種圖像預處理,進而擴充現有數據集。該方法利用先驗知識擴充訓練集來增加樣本數量,豐富了監(jiān)督信息,從增強的樣本數據中就可獲得可靠的特征空間[17]。對于小樣本學習來說,恰當地對數據集進行相應的處理會使得模型更合理地利用數據,進而提高模型的泛化能力。以實例可信度推斷(instance credibility inference)[18]為代表的數據增強方法就是引入了一種判斷機制來增加訓練樣本。利用帶有置信度預測標簽的類別未標記數據來擴充訓練集,從而在一定程度上增強了模型的泛化能力,提高了模型的分類精度。但是通常情況下,數據增強只能生成與已知樣本相似分布的增廣數據,所以一般作為輔助手段在數據預處理階段使用。
將高維特征嵌入到低維空間進行運算是嵌入學習[19]的一大特點。將樣本特征xi∈X?Rd嵌入到低維以便于使相似的樣本在低維空間更加容易分類。根據支持集(support set)和查詢集(query set)[8]中特征提取器的同異,現有的嵌入學習模型主要分為兩類。一類是兩者的特征提取器相同,標記為fs;另一類兩者的特征提取器則不同,標記為fd1、fd2。前者由于具有相同的特征提取器,所以提取器可以公用,減少了模型的參數,加快了推理時間;后者由于特征提取器不同,提取的特征更具有多樣性,增強了模型的魯棒性,在一定程度上對精度有著更好地提升。原型網絡[9]是典型的相同特征提取器fs方法,支持集和查詢集都使用卷積神經網絡(con‐volutional neural networks,CNN)作為特征提取器。此外,還使用了歐氏距離作為度量方法來判斷相似性。與原型網絡不同,匹配網絡[8]的支持集特征提取器使用卷積神經網絡和雙向長短期記憶網絡(bi-long short-term memory,Bi-LSTM),而查詢集則使用卷積神經網絡和長短期記憶網絡(long short-term memory,LSTM)作為特征提取器,并且使用余弦距離作為相似性度量方法。
小樣本學習的定義和訓練模式意味著不可避免地出現跨域(cross domain)[20]問題:在基類上進行訓練,在新類上進行測試,兩者沒有交集。域適應旨在減少源域與目標域之間的領域漂移問題。所以小樣本學習在一定程度上需要借助域適應的方法來提高模型的效果。自從Yaroslav等人提出了域對抗神經網絡[21],越來越多的方法基于此在特征級或者像素級層面上來縮小源域和目標域之間的分布差異。然而這些方法都只是在一系列先驗類別學到相應特征參數,對于小樣本中新類的分類效果只能起到一定的作用。趙小強等人[22]提出基于特征和類別對齊的領域適應算法,通過使同域內的樣本類密度最大和聯合判別網絡來降低類的錯分率、實現類與域的對齊。
小樣本圖像分類的流程可以歸納為數據預處理與載入、特征提取、相似度度量處理三個步驟。本章首先介紹了小樣本相關概念,其次探究了網絡層數對小樣本模型的影響,討論了小樣本模型網絡層數較淺的原因,接著引出本文在特征提取階段和相似度度量階段所改進的方法。
根據階段的不同,將小樣本模型需要采用的數據集分為三類。在訓練階段,將訓練集劃分為Base數據集和Val數據集。先驗訓練時,使用Base數據集,記為其中xi∈RD,yi∈Yb分別是第i個輸入圖片和該圖片所屬的類別標簽。Base數據集作為先驗知識來訓練模型,包含許多標記的圖像。驗證時,使用驗證集Val,標記為其中yi∈Yv。測試階段,使用測試集Novel,標記為,其中yi∈Yn。Novel數據集中包含著少量被標記的圖片。三個數據集互不相交,即Db∩Dv∩Dn=?。
在小樣本學習中,通常使用被稱為Episode的模式[8]來訓練和測試模型,該模式又稱為K-way N-shot模式,其中,K-way表示有K個類,N-shot表示每類有N個樣本。在每個Episode階段,每次從Db采樣兩個子集來進行訓練 ,一 個 約 定 為 支 持 集Support Set:,一個約定為查詢集Que‐M的 含 義 同N。Dv和Dn的采樣方式也是如此。在這種模式下,基于嵌入學習的小樣本圖像分類模型的目的就是在訓練階段,從Db中采樣出S和Q,S用于模型訓練,Q用于預測標簽;預測階段,從Db中采樣出S和Q,直接匹配兩者的相似度從而對Q進行分類。
提升網絡模型性能的方法很多,如采用更大的數據集、更好的硬件等[23]。但一般而言,最直接的方法就是增加網絡的深度和寬度。采用深層網絡會提升模型的特征提取能力,但是需要學習大量參數,由于小樣本學習數據集中的樣本少的特點,不可避免地會出現參數學習不充分,從而忽視重要特征甚至出現過擬合等問題。而采用淺層網絡需要學習的參數會變少,相對地,提取主要特征的能力就會變弱。
為了研究層數對于小樣本模型的影響,這里選取了數據集中的圖片進行可視化展示,如圖1。該圖為單目標圖片,圖中展示為一只狗。由于ResNet10只有四組Block的緣故,只展示這四組Block的網絡可視化,剩下的ResNet18、ResNet34也抽取四組Block作為對比??梢钥吹?,ResNet10首先關注到的是狗和背景的零散點狀區(qū)域,接著由于特征的提取逐漸關注到不同的部位,最后一層則關注到圖中狗的大部分軀干。ResNet18因為有著較深的層數,最終的模型開始階段便可聚焦邊緣部位,但是也關注了一些背景特征,隨著模塊的加深,高層語義也逐漸豐富,對于部位的定位也逐漸準確,可以關注到狗的肢體和部分面部,能夠較好地濾掉無關區(qū)域及背景。ResNet34經過訓練,一開始便可捕捉到相應的面部信息,選取了Block9、Block13可以發(fā)現關于面部特征的標記越來越大,這和網絡層數的增多是密不可分的,最后可以關注到幾乎整個狗的面部和部分四肢。從這個過程可以看出,從ResNet10到ResNet34,隨著網絡的加深,模型的關注點可以從四肢軀干逐漸到面部,對于語義的處理也逐漸匯聚到辨識度高的部位,但是網絡的加深所帶來的參數過多的效應也開始顯現:少量樣本的情況下,過于關注高級語義導致對于物體細節(jié)疏忽并且存在著過擬合,在進行后續(xù)分類時會影響模型判斷,導致效果的提升不明顯。
圖1 不同層網絡的CAMFig.1 CAM of different layer networks
另外,如表1所示,從模型成本角度來看,在參數總量和復雜度都非常大的情況下,ResNet34所得到的精度比ResNet10和ResNet18的高出不是很多:ResNet34的參數量和復雜度遠遠高于ResNet10(分別為5倍與4倍),精度僅僅提升了3%;并且也比ResNet18的參數量和復雜度大一倍,精度僅僅提升不到0.7%。即隨著網絡層數的提升,模型精度的提升增益與龐大參數量和復雜度的增加不成比例,這意味著,傳統(tǒng)深度學習模型有效的、比較高的層數,在小樣本的情況下,提升效果有限,并且提升所需的代價,是模型參數量和模型復雜度的激增。如何利用較少的層數在小樣本數據上取得較好的效果,是探究提升模型表現的一個重要方向。
表1 不同層數的網絡信息Table 1 Network information of different layers
現有小樣本學習模型大多采取了諸如ResNet10和ResNet12等淺層殘差網絡折中地進行特征提取工作,故網絡深度在一定程度上受到限制。
受InceptionNet[23]的啟發(fā),在ResNet10的基礎上,提出了自適應權重的多分支特征提取網絡。首先,是殘差網絡標志性的殘差分支Identity。其次,分別用兩組1×1卷積將特征的通道進行減半壓縮,一是減少參數量防止過擬合。二是方便后續(xù)進行卷積特征拼接進行加性融合。接著,在第一組1×1卷積后加入一組3×3卷積;另一組1×1卷積后加入兩組3×3卷積來替代一組5×5卷積,分別用這兩組感受野不同的卷積組合對同一組輸入進行特征提取再按通道進行拼接。這一支路稱為雙卷積分支DConv,并標記為Fdconv,計算公式為:
其中,Combine為按通道拼接函數,C()1×1為1×1卷積,C(3×3)為3×3卷積,C(5×5)為5×5卷積,finput為輸入特征。由于卷積提取的豐富特征,在進行拼接之后,后面接入一個Squeeze-and-Excitation(SE)注意力模塊[24]。
另外兩組分別為平均池化分支和最大池化分支,平均池化用來提取全局背景特征,相對應地,最大池化提取局部特征。前者標記為Fmax,后者標記為Favg,池化分支在提取特征的時候一個額外的優(yōu)勢在于不需要學習參數。兩者的特征提取計算公式為:
其中,max()為區(qū)域最大值函數,avg()為區(qū)域平均值函數,finput為輸入特征。
一般情況下,不同的卷積核提取的特征存在著差異,大的感受野意味著同一個點所含的語義信息豐富,小的感受野意味著物體的細節(jié)保存更好,在進行四組支路的特征提取后。一般地,Identity支路最大程度上保留著原始特征,雙卷積支路蘊含著更多的語義信息,最大池化支路注重輸入的局部信息,平均池化支路則關注輸入的全局信息。對不同支路特征提取器的特征進行合理地融合,是充分利用特征、提高模型表現的一個重要手段。在提出的特征提取模型中,為了更好地利用特征,通過引入自適應的特征權重,來使模型根據數據的特征分布來自行決定在特定的層以特定的權重來融合特征。特征融合公式如下:
圖2 自適應特征處理模塊Fig.2 Adaptive feature processing module
小樣本學習中一個很主要的方法就是利用一個相似度度量方法來比較支持集與查詢集中圖片的相似度,經過特征提取模塊提取后的特征再輸入進度量函數中就能不同程度上比較出兩者的異同,從而達到分類的目的。目前主要的方法有很多,Oriol等人[8]使用Cosine函數作為相似度度量方法;Zhang等人[25]使用Earth Mover Distance作為相似度度量方法。
對特征提取模塊提取的特征進行特征變換,然后再輸入度量函數會大大提高分類精度。Wang等人[26]通過將特征進行中心化和L2歸一化后,模型效果有所提升。受此工作啟發(fā),引進特征變換。小樣本學習每次采取KWay N-Shot的模式采樣訓練樣本,這就意味著特征分布在不停地變換。在特征提取模塊由于自適應權值的變化,也使得特征信號隨之變化。在這種情況下,定參數的特征變換層對于不同的特征分布只能有單一的變換,無法較好地解決上述問題。為此,引入兩個參數,使得特征變換層對不同情況下的特征進行相應的適應,從而對新類別有很好地魯棒性。將這種自適應的特征變換模塊標記為Fft。具體計算為:
其中,xff為提取后的特征為L2歸一化,xn為特征的第n維,FCL2N為特征變換函數CL2N,β和γ為控制線性變換的權重參數。在特征經過一系列變換后將其輸入歐式度量函數中進行相似度比較。首先計算出支持集的原型pk:
其中,Fff()為特征提取函數,Nk為第k次任務采樣的N種類集合,sk為支持集。再將pk與查詢集進行相似度dk比較:
其中,Q為Query向量,P為Support原型pk,T為轉置操作。最后利用SoftMax函數進行分類,得出概率p*k:
利用數據增強使得數據集進行一定的數據樣本擴充后,將數據集分為Train和Novel,根據訓練時的不同階段,Train劃分為Base和Val。根據K-Way N-Shot策略,每次從Base中采樣K個類別N個樣本,共計K×N張圖片進行訓練。首先將圖像輸入AFP中進行特征提取與處理,然后輸入到ACL2N中進行變換,最后進行特征的相似性度量以進行分類。每個Batch訓練完之后,從Val中采樣出相同數量的K個類別N個樣本來驗證模型的精度。整個Epoch結束之后,在Novel上測試模型對新類的分類效果。訓練的整個流程如圖3所示。
圖3 模型結構Fig.3 Module structure
本文實驗采用兩個主要的小樣本學習數據集作為實驗數據,在三個分類場景中驗證所提模型的有效性。數據集分別為Caltech-UCSD Birds-200-2011數據集(CUB)[27]和mini-ImageNet數據集[28]。
對于常規(guī)分類,使用mini-ImageNet數據集。該數據集是ImageNet數據集的一個子集,由100類不同的物體組成,每個類都含有600張圖片,如前所述,數據集被劃分為Base、Val和Novel,相對應地,三者所含種類分別為64、16、20。每張圖片的尺寸為84×84像素。對于細粒度分類,使用Caltech-UCSD Birds-200-2011數據集。CUB數據集是加州理工學院與加州大學圣地亞哥分校聯合提出的圖像細粒度分類數據集,該數據集是CUB-2010的擴充,含有200類不同的鳥類,總計11 788張圖片,每張圖片尺寸為84×84像素。用100類訓練模型,驗證和測試各50類。對于跨域分類,使用mini-ImageNet數據集作為Base,總計100類。CUB的Val和Novel作為跨域場景的Val和Novel,各50類。做該類實驗是為了評估在數據分布差異較大的情況下,所提模型的魯棒性。
3.2.1 實驗環(huán)境
本文實驗均在linux操作系統(tǒng)下使用pytorch深度學習框架完成,硬件配置如下:CPU為Intel Xeon E5-2678,GPU為GeForce RTX 2080,RAM為32 GB。
3.2.2 參數設置
由于深度學習的特點,模型的性能很大程度上取決于網絡結構的設計和參數的初始化。特征提取階段,在ResNet10的基礎上實現骨干網絡。多分支特征提取模塊中,殘差分支和雙卷積支路中的卷積核參數初始化,采用默認的正態(tài)分布初始化。最大池化支路,將池化尺寸設置為3。平均池化分支,將池化尺寸設置為2。在進行加性特征融合時,為了保證公平并且評估特定階段各支路對特征貢獻程度,將各特征的權重全部初始化為1。同樣地,在度量相似度階段,將自適應特征轉換層ACL2N中 的β和γ初始 化為1。此外,整 個實 驗 中,BatchSize設置為21;Epoch在1-Shot中設置為600,在5-Shot中設置為400;優(yōu)化器使用Adam,學習率設為0.001。為了在一定程度上擴充數據集,使用了數據增強等預處理,采用隨機剪裁、像素級處理、隨機翻轉,張量化及歸一化等五種預處理方法。
3.3.1 實驗結果
所有的實驗均在K-Way N-Shot分類下進行。和主流的K、N設置一樣,分別選取5-Way 1-Shot和5-Way 5-Shot場景進行分類實驗。為了評估模型的性能,本文與優(yōu)秀模型的結果進行了比較。結果如表2、表3、表4所示。
表2 CUB精度表Table 2 Accuracy of CUB 單位:%
表3 mini-Imagenet精度表Table 3 Accuracy of mini-Imagenet單位:%
表4 Cross Domain精度表Table 4 Accuracy of Cross Domain單位:%
由實驗結果所示,本文模型在CUB數據集上相比Baseline提升了9.81(5-Way 1-Shot)和8.16個百分點(5-Way 5-Shot),在mini-ImageNet數據集上相比Baseline提升了9.16(5-Way 1-Shot)和9.21個百分點(5-Way 5-Shot),在Cross Domain上相比Baseline提升了3.61(5-Way 1-Shot)和8.29個百分點(5-Way 5-Shot)。
3.3.2 結果分析
可以看到,三個實驗中,在mini-ImageNet數據集上的平均提升最為顯著。如前所述,mini-ImageNet是一個多種類的數據集,所以在該數據集上有好的效果從側面驗證了模型有較好的魯棒性。在模型中需要尺寸為5×5卷積核的地方,都用兩個尺寸為3×3的卷積核來進行替代。在保證感受野不損失的情況下構建了更深的網絡層,減少了模型的參數量。基于自適應權重的多層四路特征處理模塊可以根據特征的特點在不同層對該層每一支路賦予相應的權重并進行融合,如表5所示,在特征融合模塊的不同層中,權重各不相同。其中,每一層中雙卷積支路的權重占比都接近50%,表明基于卷積的特征融合的重要性。特征輸入進該模塊的第一層時最大池化分支占比較大(24%)說明模塊對于特征首先進行圖像的邊緣紋理提?。辉诘谌龑訒r最大池化分支的比重(25%)來到了四組中最大的時候并且與雙卷積分支的比重差距最?。?4%),說明經過多層特征提取后高層語義中的邊緣紋理信息起了相對重要的作用。在自適應的特征轉換層中,經過訓練得到的自適應參數組βs、γs、βq、γq的值分別為0.77、0.99、1.13、0.83。支持集和查詢集參數的變化程度不同說明對于兩者來說,特征的變換程度是不同的,支持集的β值更加敏感;查詢集的β和γ對于變換都有不同程度的響應。
表5 特征處理模塊各層權重Table 5 Weight of each layer of feature processing module
分別在單目標物體、雙目標物體和多目標物體上設計實驗,以便觀察相關網絡是否對物體特征進行了正確處理。
結合權重模型表,在單目標(圖4(a))中,采用上一章討論模型層數影響時所采用的圖片,Block1階段,最大池化和平均池化的比重在四個階段里是各自分支最大的,表明在開始階段模型先關注邊緣紋理特征和背景。但是由于權重歸一化后比重控制在0到1之間,所以此階段只能提取到一些微小地邊緣特征和背景信息。Block2階段,由于殘差分支的比重較大,使得模型保留了Block1階段的特征,最大池化的比重有所下降是因為該階段模型對于背景信息的重視程度較大。值得注意的是,平均池化的比重反而下降,是因為除去最終比重較為合理的第四階段外,在前三個階段中,該階段的雙卷積分支比重為最大。由于雙卷積分支提取的是局部特征,引入平均池化的初衷是為了與雙卷積分支和最大池化分支互補,在權重還不穩(wěn)定的時候提供一定的背景信息,現在雙卷積分支的比重大,平均池化的比重也就相應減少。另外可以看到,殘差分支較為契合地對Block1階段的特征注意進行了再深化,并且由于雙卷積分支和平均池化分支的共同作用,使得對背景信息的提取得到提升,需要注意的是,如果給定目標圖片只有極少量背景信息,這種背景信息的捕捉在一定程度上會影響到目標物體的捕捉,這種現象在雙目標(雙甲蟲,圖4(b))中有一定的體現:在有少量背景信息的情況下,模型仍然對背景有不少的關注。Block3階段,最大池化分支的權重再次提升,和殘差分支的權重基本接近,相應地,在保留上一階段信息的同時,模型提取到了更多的邊緣紋理特征,值得注意的是,對于單目標物體來說,模型對于圖像背景的特征提取過多,是由于特征融合不可避免地會融合背景信息,即使如此,模型還是主要聚焦于物體輪廓周圍的邊緣信息;而作為對比,雙目標和多目標(鴨群,圖4(c))上,模型可以很好地注意到目標物體:在最大池化捕捉了精確的邊緣信息的同時,雙卷積分支可以捕捉部分物體信息。在Block4階段,雙卷積分支的比重來到了最大,意味著語義信息的提取與整合越來越重要,高級語義越來越占據重要作用。殘差、平均池化、最大池化分支的比重趨于平衡,即目標與背景之間的特征注意處于一個合理的狀態(tài)。在圖中可以看到,目標物體的注意程度越來越高,并且能夠較為清晰地分辨出物體本身和背景(這一點在雙目標和多目標中更為明顯)。從而,模型所提取特征的合理性趨于完善。
圖4 不同任務的CAMFig.4 CAM of different tasks
在雙目標中,采用的是兩個甲蟲的圖片。如上所述,Block1階段模型只提取到零散的邊緣信息;Block2是對Block1中提取信息的再擴大,并且由于雙卷積分支和最大池化分支的作用,捕捉了一定的背景信息,用于特征的融合;Block3中已經對物體有具體的信息捕捉,并且濾去了大部分背景信息,重點提取物體本身;Block4由于權重趨于合理化,模型已經比較合理地關注雙目標物體的大部分信息。值得注意的是,模型對于雙目標物體由于特征融合的作用,對于物體的整體關注度相比于單目標要完整許多,這一點在多目標的可視化中得到了進一步驗證??梢钥吹剑S著各階段分支的不斷學習,權重也在不斷變化并最終趨于合理,對于背景信息的處理也較為理想,使得模型可以較好地捕捉物體進行分類。特別是物體較多的目標任務場景中,模型可以很好地捕捉目標并賦予注意。
3.3.3 模型參數規(guī)模及運算
從模型信息表(表6)中可以看出,隨著網絡的加深,模型所需要的參數和運算規(guī)模也成倍地增長,每600循環(huán)的實時推理也是如此。由于采用了1×1卷積對特征進行了降維,并且用3×3卷積來代替更大的5×5、7×7卷積,平均池化分支和最大池化分支也沒有需要學習的參數,這些設定使得本文模型在增加了多分支的情況下網絡參數沒有進一步增加。
表6 模型參數及運算量Table 6 Model parameters and computational volume
雖然參數較少,但是由于模型采用分支結構以及融合等操作,所以復雜度更高。這點從模型總的FLOPs上也可以看出來。但FLOPs只是通過理論上的計算量來衡量模型,在實際應用時,由于各種各樣的優(yōu)化計算操作,導致計算量并不能準確地衡量模型的速度:相同的FLOPs會有不同的推理速度,低FLOPs也可能有較高耗時的推理,高FLOPs也可能會有較低耗時的推理。除了FLOPs,還有兩個重要的因素,其一就是存儲訪問成本(memory access cost,MAC),其二是并行度,在同樣FLOPs的情況下,并行度高的模型推理速度是要快于并行度低的模型[29]。從表中可以看出,本文模型的FLOPs要比ResNet34低,但是推理時間卻變得更長。對比Params也是這樣:參數較少并不意味著模型簡單、推理時間少。在本文模型中,使用了多條支路,最后通過融合的方式將特征送入下一級。如上所述,支路的增加對GPU并行運算并不友好,并且由于支路的融合操作必須要有同步操作,需要等待所有的支路完成相應的運算再進行融合,從而增加了計算時間;1×1卷積雖然減少了參數量,但是進行升降維操作導致MAC變高;在進行特征融合的時候,需要進行Element-Wise操作,然而該操作在GPU上占用的時間是很多的。所以以上因素會導致模型降低效率,增加模型復雜度及實時性推理時間。
為了分析每個模塊對模型產生的影響,本文做了以下對比實驗:模型無添加模塊,模型只添加SE模塊,模型只添加多分支特征提取模塊AFP,模型只添加特征轉換模塊ACL2N,模型添加全部模塊。對比實驗結果如表7所示。
表7 各模塊精度Table 7 Acc of each Module
結果表明,三個模塊對于分類精度都有不同程度的提升,SE模塊的提升相對較少,所以注意力機制可以作為輔助手段添加到模塊中,以提升網絡的表現,在本文所提的網絡也是這樣做的。AFP模塊和ACL2N模塊相較于Baseline,精度都有較大提升,分別為78.22%和79.06%。說明兩者都可以作為網絡的主模塊對特征進行處理。在最后將三個模塊同時加入網絡取得了81.37%的分類進度,表明三個模塊同時使用對網絡的提升作用更大。
對于后兩個模塊,由于有自適應權重的引入,本文將在3.4.1和3.4.2兩個小節(jié)探究參數對模塊性能的影響。
3.4.1 特征融合模塊權重分析
在特征融合模塊中,將各個分支的權重全部初始化為1是為了使初始時每個分支的重要程度相同。所以在對比實驗中設置初始化為1的權重歸一化模型(weight normalization model,WNM)和各個分支固定為1的權重平衡模型(weight balance model,WBM)、權重未歸一化模型(weight unnormalization model,WUM)進行實驗。結果如圖5所示,可以看到,與WBM、WUM相比,WNM的表現要優(yōu)秀不少,表明其權值可以針對特征對特定層的特定分支賦予相應的權重來更好地提升模型的表現。
圖5 不同權重的精度Fig.5 Precision of different weights
在含有不同物體的混合目標、多目標上進行了實驗結果的可視化,結果如圖6、圖7所示。
圖6 不同權重的混合目標Fig.6 Mixed targets with different weights
圖7 不同權重的多目標Fig.7 Multiple targets with different weights
首先,在混合目標上,采用的是斑點狗與小皮狗的圖片。由于WBM和WUM的權重數值要比WNM的要大,在Block1階段即捕捉到較多的邊緣特征信息,其中,關注到不少的不相關物體信息。在Block2階段,WBM由于權重較為均衡,在經過了一組Block之后,可以減少無關物體和背景信息的關注度,只較少保留了相關物體信息;而WUM的權重大,對于所有物體的信息都會有所捕捉,同時也會有部分背景信息;WNM的歸一化權重則收縮了注意范圍。在Block3中,值得注意的是由于沒有進行歸一化,WUM的權重調節(jié)過于極端,這一點在下個階段得到了進一步的驗證。在最后一組Block中,各個模型已經有了豐富的特征信息,在WBM中,權重一直處于一成不變的狀態(tài),所以最終模型只是對已注意特征的擴大,能夠較好地捕捉到相關物體;WUM由于過大的權重,捕捉了過多的物體信息,使得相當一部分背景信息融合進了特征之中,會影響到分類結果;而WNM的歸一化權重經過訓練,已經有了較為合理的分支權重分配,可以看到,對相關物體有很好的捕捉,對于不相關的物體以及背景信息都有較好的識別。在多目標(圖7,鳥群)的展示中,這種現象有了進一步的展示。
3.4.2 特征轉換模塊系數β和偏置γ數值分析
為了研究ACL2N特征轉換函數中β和γ對實驗的影響程度,設計了對比不同數值參數的實驗。對于support和query的特征轉換,本文基于自適應的參數組數值來設置對照參數。這樣做的原因是對于初始參數而言,選取訓練后在測試集中取得最好精度的自適應參數,將參數組的每個參數換值來進行探究。自適應參數組βs、γs、βq、γq的值分別為0.77、0.99、1.13、0.83,可以看到在訓練后γs的受影響程度最小,所以對剩下三個參數進行實驗。對于βs,分別以等差為0.1的取值,取βs為0.57、0.67、0.77、0.87、0.97、1.07進行實驗。如圖8為實驗結果,可以看到從0.57精度開始提升,在0.77處取得極大值,之后精度開始降低。對于βq,自適應值為1.13,同樣地,分別以0.1為間隔取值,取βq為0.93、1.03、1.13、1.23、1.33、1.43。如圖9所示,精度隨著值的增加而增加,在1.13處取得極大值后下降。對于γq,自適應值為0.83,取γq分別為0.63、0.73、0.83、0.93、1.03、1.13,結果如圖10所示。精度呈現先高后低再升高的波動,在0.83處取得極大值。上述實驗表明,在訓練時取得的自適應參數組(0.77、1.13、0.83)上的精度最高。
圖8 βs變化結果Fig.8 Result of βs changes
圖9 βq變化結果Fig.9 Result of βq changes
圖10 γq變化結果Fig.10 Result of γq changes
結果表明,添加了自適應權重,可以使模塊在Episode不斷變化的情況下不斷學習適應不同的特征分布,從而學習到最佳的適應性參數。
本文根據小樣本學習的特點提出了一個針對特征進行操作的小樣本圖像處理模型。該模型可以較好地利用特征。在特征提取階段,通過使用自適應加權多路特征提取模塊,使得輸入圖像以不同的特征提取方式進行提取與融合,在此基礎上引入自適應的權重使得對于特征可以適應性放縮其中某一支路的特征信號,起到了良好的魯棒性和正則作用。在相似性度量階段,對于不斷變化的采樣,自適應特征變換層ACL2N可以對特征進行相應的分布適應變換,從而匹配特征提取信號的變化,進一步提高模型的表現。通過在CUB和mini-ImageNet數據集上一系列的對比實驗和可視化,展示了模型中所提模塊的效果,從而驗證了模型的有效性。進一步的探究工作可以使用ResNet18等多層網絡作為特征提取網絡結合層與層之間的特征融合,以便在較深網絡中達到更好的分類效果。