朱 夢,閔衛(wèi)東,張 煜,段靜雯
1.南昌大學(xué) 信息工程學(xué)院,南昌330031
2.南昌大學(xué) 軟件學(xué)院,南昌330047
3.江西省智慧城市重點實驗室,南昌330047
作為下游網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNNs)在計算機視覺中發(fā)揮了重要的作用,比如目標(biāo)檢測、語義分割、圖像生成等。更好的、更快的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)一直是研究的熱點。而且,卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)被應(yīng)用到許多實際項目中,比如交通管理[1-3]、摔倒檢測[4-7]、人臉識別[8-10]等。網(wǎng)絡(luò)深度已經(jīng)被許多工作[11-13]證明是非常重要的。但是深層網(wǎng)絡(luò)存在退化的問題:隨著網(wǎng)絡(luò)深度的增加,準確率變得飽和,然后急速下降。為了解決深層網(wǎng)絡(luò)退化的問題,ResNet[14]提出了殘差連接。ResNet開啟了卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計的新紀元,以致于后來的卷積神經(jīng)網(wǎng)絡(luò)都開始借鑒殘差連接的思想。
PreResNet[15]證明了殘差連接的重要性,并提出了預(yù)激活殘差模塊。Wide ResNet[16]通過加ResNet的寬度,從而更加有效地提升ResNet的性能。ResNeXt[17]將分組卷積融合到殘差瓶頸模塊中,提出了多路信息傳輸?shù)慕Y(jié)構(gòu)。Inception系列[18-20]提出了多路的、多核的級聯(lián)連接模塊。DenseNet[21]提出了密集級聯(lián)連接模塊,有效地減少了網(wǎng)絡(luò)參數(shù)量。DPN[22]通過結(jié)合殘差連接和密集級聯(lián)連接,使特征既能重利用,又能再發(fā)現(xiàn)。
最近,各種不同形式的注意力被應(yīng)用到卷積神經(jīng)網(wǎng)絡(luò)中,有效地提升了網(wǎng)絡(luò)的性能。圖1列舉了卷積神經(jīng)網(wǎng)絡(luò)中三種經(jīng)典的注意力。SENet[23]開創(chuàng)性地提出了Squeeze-and-Excitation(SE)通道注意力,自適應(yīng)地重標(biāo)定通道特征響應(yīng)。MobileNetV3[24]考慮到SE通道注意力中的Sigmoid計算代價是昂貴的,提出了計算更輕量的HardSigmoid來替換Sigmoid。SKNet[25]提出了選擇核(Selective Kernel,SK)注意力,自適應(yīng)地選擇不同卷積核尺寸的分支。ResNeSt[26]提出了分割(Split)注意力,自適應(yīng)地選擇分割分支。在這三種注意力中,SE通道注意力通過Sigmoid計算通道權(quán)重。SK注意力和Split注意力則通過Softmax計算不同分支的通道權(quán)重。
隨著計算算力的提高,網(wǎng)絡(luò)架構(gòu)的設(shè)計已經(jīng)從手工設(shè)計轉(zhuǎn)移到自動搜索。MnasNet[27]在MobileNetV2[28]結(jié)構(gòu)的基礎(chǔ)上,引入了SE通道注意力。MobileNetV3通過引入平臺神經(jīng)網(wǎng)絡(luò)適配(platform-aware neural network adaptation)和HardSwish激活函數(shù),擴展MnasNet。EfficientNet[29]仍然在MobileNetV2結(jié)構(gòu)的基礎(chǔ)上,引入了模型復(fù)合壓縮方法,在網(wǎng)絡(luò)效率和準確率之間達到了很好的平衡。這些方法主要基于強化學(xué)習(xí)[30-32]、進化搜索[33]、可微搜索[34]或其他學(xué)習(xí)算法[31,35]。
然而,不管是手工設(shè)計的網(wǎng)絡(luò)架構(gòu),還是自動搜索的網(wǎng)絡(luò)架構(gòu),它們彼此不同,這會使得下游網(wǎng)絡(luò)難以建立。但是,注意力可以在幾乎不改變原來網(wǎng)絡(luò)架構(gòu)的同時,以額外的、非常輕量的參數(shù)量和計算復(fù)雜度,有效地提升網(wǎng)絡(luò)性能。另外,注意力還可以擴大神經(jīng)網(wǎng)絡(luò)架構(gòu)自動搜索的空間,并潛在地提高整體性能。因此,研究更好的、更輕量的注意力是非常重要的。本文提出了基于HardSoftmax的并行選擇核(Parallel Selective Kernel,PSK)注意力。首先,針對Softmax包含指數(shù)運算,對于較大的正輸入很容易發(fā)生計算溢出的問題,本文提出了計算更安全的HardSoftmax來替換Softmax。然后,不同于SK注意力將全局特征的提取和轉(zhuǎn)換放在特征融合之后,PSK注意力將全局特征的提取和轉(zhuǎn)換單獨放在一個分支,與具有不同核大小的多個分支構(gòu)成并行結(jié)構(gòu)。同時,PSK注意力的全局特征轉(zhuǎn)換使用分組卷積,進一步減少參數(shù)量和計算量。最后,PSK注意力通過HardSoftmax注意來關(guān)注不同核大小的多個分支。一系列的圖像分類實驗表明,簡單地用Hardsoftmax替換Softmax,也能保持或提升原注意力的性能。HardSoftmax的運行速度在實驗中也比Softmax更快速。PSK注意力能夠以更少的參數(shù)量和計算量追平或超越SK注意力。
注:gap表示全局平均池化,gconv表示分組卷積。
本章首先定義了HardSoftmax,然后介紹了基于HardSoftmax的并行選擇核注意力。
Softmax的定義如公式(1)所示:
其中,Xi為第i個節(jié)點的輸出值,J為輸出節(jié)點的個數(shù)。通過Softmax可以將輸出值轉(zhuǎn)換為范圍在[0,1]及和1的概率分布。眾所周知,對于較大的正輸入,指數(shù)運算是很容易發(fā)生計算溢出的。為了解決這個問題,常用的方法是將每一個輸出值減去輸出值中最大的值,從而讓輸出值小于或等于0,那么進行指數(shù)運算就不會發(fā)生計算溢出,如公式(2)所示:
不同于公式(2)所示的解決方法,本文的想法是尋找計算更安全的E(Xi),來模擬指數(shù)函數(shù)eXi的形狀,從而保留Softmax相似的分布特性。為了設(shè)計E(Xi)來模擬eXi,本文首先提出了一個新穎的激活函數(shù),被稱為冪線性單元(Power Linear Unit,PLU),定義如公式(3)所示:
其中,α為一個預(yù)設(shè)的固定值,滿足α∈(0,1],通常α=0.5。
冪線性單元的一階導(dǎo)函數(shù)如公式(4)所示:
顯然,?Xi∈R,PLU′(Xi)>0,所以PLU(Xi)是嚴格地單調(diào)遞增。當(dāng)
為了更好地模擬eXi的形狀,這里令α=1。那么有:-1。也就是說,當(dāng)α=1時,PLU(Xi)處處可導(dǎo),嚴格地單調(diào)遞增,以Yi=-1為下界,無上界。圖2繪制了當(dāng)α=1時,PLU(Xi)的函數(shù)圖像。
圖2 當(dāng)α=1時,PLU(Xi)的函數(shù)圖像Fig.2 Shape of PLU(Xi )when α=1
然后,本文讓PLU(Xi)向上平移一個單位,滿足PLU(Xi)+1>0。最后,本文用E(Xi)=PLU(Xi)+1替換Softmax中的eXi,從而構(gòu)造了計算更安全的HardSoftmax,定義如公式(5)所示:
基于HardSoftmax的并行選擇核注意力如圖3所示,它可以抽象成公式(6):
圖3 基于HardSoftmax的并行選擇核注意力Fig.3 Parallel selective kernel attention based on HardSoftmax
公式(6)中Cout表示不同核大小分組卷積(如圖3中的k1×k1和k2×k2的分組卷積,其中k1通常等于3,k2通常等于5)的輸出通道數(shù);M表示不同核大小的分支數(shù)量(如圖3中的2個分支)。其中,Xk滿足公式(7),fk表示GConvk[17]→BNk[18]→ReLUk[36]。GCoutk又滿足公式(8)和(9),g表示GConv→BN→ReLU→GConv。公式(9)先通過本文提出的HardSoftmax計算,再進行通道分割。
在全局特征轉(zhuǎn)換模塊中,1×1分組卷積的分組數(shù)等于不同核大小分組卷積的分組數(shù)。并且在全局特征轉(zhuǎn)換模塊中,第一個1×1分組卷積的輸出通道數(shù)(即第二個1×1分組卷積的輸入通道數(shù))的按公式(10)計算:
這里Cin為不同核大小分組卷積的輸入通道數(shù);R為一個正整數(shù),通常為4;G表示不同核大小分組卷積的分組數(shù)。如果采用標(biāo)準的卷積,那么按公式(11)計算:與圖1(b)顯示的SK注意力相比,本文提出的PSK注意力有如下不同:
(1)全局特征的提取和轉(zhuǎn)換被單獨放在一個分支,與具有不同核大小的多個分支構(gòu)成并行結(jié)構(gòu)。那么,這些分支可以并行地運行,從而降低整體的計算延遲。
(2)全局特征的轉(zhuǎn)換,使用1×1的分組卷積(group convolution,gconv)[17]。與標(biāo)準的卷積相比,分組卷積已經(jīng)被證明[37],可以有效地降低參數(shù)量和計算量,同時只會降低很少的性能。
(3)全局特征的轉(zhuǎn)換,第一個1×1的分組卷積后面(即ReLU前面)使用了BN算法,幫助權(quán)重學(xué)習(xí)更加穩(wěn)定。
(4)使用HardSoftmax注意,來關(guān)注不同卷積核大小的多個分支。HardSoftmax保留了Softmax相似的分布特性,但它的計算更安全。
本章展示了將SE通道注意力、SK注意力、Split注意力和基于HardSoftmax的PSK注意力分別融合到不同骨干網(wǎng)絡(luò)的實驗結(jié)果。本章也展示了SE通道注意力分別使用Sigmoid和HardSigmoid的對比結(jié)果,以及SK注意力和Split注意力分別使用Softmax和HardSoftmax的對比結(jié)果。
本文的所有實驗結(jié)果都在配置如表1描述的計算機上完成的。
表1 實驗環(huán)境配置Table 1 Hardware and software setups
Fashion-MNIST。Fashion-MNIST數(shù)據(jù)集[39]由10個類別、70 000幅時尚產(chǎn)品圖像組成。每幅圖像是28×28像素的灰度圖像。每個類別包含7 000幅圖像。訓(xùn)練集包含60 000幅圖像,評估集包含10 000幅圖像。
CIFAR。CIFAR數(shù)據(jù)集[40]由32×32像素的RGB圖像組成。CIFAR-10數(shù)據(jù)集包含10個類別,CIFAR-100包含100個類別。訓(xùn)練集和評估集分別包含50 000和10 000幅圖像。
本文采用兩種骨干網(wǎng)絡(luò):ResNeXt[17]和Mobile-NetV3[24]。然后將SE通道注意力、SK注意力、Split注意力和基于HardSoftmax的PSK注意力別融合到這兩種骨干網(wǎng)絡(luò)中。值得注意的是,MobileNetV3-Small中的某些線性反轉(zhuǎn)瓶頸模塊本身就包含了SE通道注意力。因此,本文將MobileNetV3-Small中原來包含的SE通道注意力全部刪除,再作為骨干網(wǎng)絡(luò)。為了適合28×28和32×32像素的圖像,ResNeXt和MobileNetV3都只保留最后三次下采樣。另外,ResNeXt的寬度變?yōu)樵瓉淼囊话?,即所有層的通道?shù)變?yōu)樵瓉淼囊话搿?/p>
輸入到模型的圖像采用減去均值,再除以標(biāo)準差的方式進行預(yù)處理。本文還使用了數(shù)據(jù)增強,包括隨機旋轉(zhuǎn)、隨機平移和隨機水平翻轉(zhuǎn)。所有的模型都采用交叉熵(categorical cross entropy)損失函數(shù)和跟隨文獻[41]進行初始化。在Fashion-MNIST數(shù)據(jù)集上,所有的模型都使用AdamW[42]進行訓(xùn)練;在CIFAR數(shù)據(jù)集上,所有的模型都使用SGDM[43]進行訓(xùn)練。對于骨干網(wǎng)絡(luò)為Mobile-NetV3-Small的模型,批處理大小為256;對于骨干網(wǎng)絡(luò)為ResNeXt的模型,批處理大小為32。在Fashion-MNIST數(shù)據(jù)集上,訓(xùn)練周期為60,在前20個周期內(nèi),初始學(xué)習(xí)率為0.001,接下來的40個周期,每隔20個周期,學(xué)習(xí)率衰減為原來的0.1倍。在CIFAR數(shù)據(jù)集上,訓(xùn)練周期為150,在前80個周期內(nèi),初始學(xué)習(xí)率為0.1,接下來的70個周期,每隔35個周期,學(xué)習(xí)率衰減為原來的0.1倍。本文還采用了L2權(quán)重衰減,從而幫助訓(xùn)練過程更加穩(wěn)定。對于所有卷積層和全連接層的權(quán)重,權(quán)重衰減率為5×10?4。
表2 顯示了不同模型在Fashion-MNIST、CIFAR-10和CIFAR-100數(shù)據(jù)集上的分類準確率。Params的單位為百萬(million)。MAdds表示先做乘法再做加法的運算次數(shù),單位為百萬(million)。對于骨干網(wǎng)絡(luò)相同的不同模型,加粗表示每列的最優(yōu)結(jié)果。表中的Params和multiply adds(MAdds)是跟隨torchstat計算的,輸入為32×32像素的RGB圖像,類別數(shù)為100。不管是標(biāo)準的SE通道注意力還是使用Hard-Sigmoid的SE通道注意力,當(dāng)它們?nèi)诤系焦歉删W(wǎng)絡(luò)中,不能一致地提升原骨干網(wǎng)絡(luò)的分類準確率。即SENet50(16×4d)和[SENet50(16×4d)+HardSigmoid]的分類準確率并不是總能優(yōu)于ResNeXt50(16×4d)。同理,[MobileNetV3-Small+SE]和[MobileNetV3-Small+SE+HardSigmoid]也是如此。但是,不管是使用Softmax的SK注意力和Split注意力,還是使用HardSoftmax的SK注意力和Split注意力,當(dāng)它們?nèi)诤系焦歉删W(wǎng)絡(luò)中,不能一致地提升原骨干網(wǎng)絡(luò)的分類準確率。
表2 不同模型在不同數(shù)據(jù)集上的分類準確率Table 2 Classification accuracy rate of different models on different datasets
表3 顯示了HardSoftmax和Softmax的比較結(jié)果。表3的結(jié)果是通過比SK注意力和Split注意力分別使用HardSoftmax和Softmax的準確率匯總而來的。結(jié)果表明,使用HardSoftmax的注意力在大多數(shù)情況下都能夠超越使用Softmax的注意力。
表3 HardSoftmax優(yōu)于或劣于使用Softmax的數(shù)量Table 3 Number of HardSoftmax outperforming or underperforming Softmax
計算復(fù)雜度是評價Softmax和HardSoftmax優(yōu)劣的另一個重要指標(biāo)。在實際評估中,本文實現(xiàn)的HardSoftmax是慢于PyTorch標(biāo)準實現(xiàn)的Softmax。本文猜測PyTorch標(biāo)準實現(xiàn),對Softmax進行了并行加速。為了最大的公平,表4列舉了PyTorch標(biāo)準實現(xiàn)的Softmax、本文實現(xiàn)的Softmax和本文實現(xiàn)的HardSoftmax的速度比較結(jié)果。速度是通過在CIFAR-100數(shù)據(jù)集上訓(xùn)練和評估SKNet50(16×4d)一個周期的時間進行衡量的。結(jié)果表明,本文實現(xiàn)的HardSoftmax略快于本文實現(xiàn)的Softmax。結(jié)果也表明,本文實現(xiàn)的Softmax明顯比PyTorch標(biāo)準實現(xiàn)的Softmax更慢。所以,本文有理由相信,如果HardSoftmax也是PyTorch的標(biāo)準函數(shù),那么HardSoftmax的實際運行速度一定會獲得更大的收益。
表4 HardSoftmax和Softmax的速度比較Table 4 Comparison of speed between HardSoftmax and Softmax
基于HardSoftmax的PSK注意力的實驗結(jié)果仍然列舉在表2中。從結(jié)果可知,當(dāng)PSK注意力融合到骨干網(wǎng)絡(luò)中,依然能夠穩(wěn)定地提高骨干網(wǎng)絡(luò)的準確率。與[SK注意力+HardSoftmax]相比,PSK額外增加的Params和MAdds更少,同時準確率也能幾乎不變或提升。當(dāng)骨干網(wǎng)絡(luò)是ResNeXt50(16×4d)時,PSK注意力額外增加的Params和MAdds更多,但它的準確率總是優(yōu)于[Split注意力+HardSoftmax]的準確率。然而,當(dāng)骨干網(wǎng)絡(luò)是MobileNetV3-Small時,PSK注意力額外增加的Params和MAdds更少,但它的準確率總是劣于[Split注意力+HardSoftmax]的準確率。本文認為,MobileNetV3-Small中的3×3或5×5卷積核尺寸是通過自動搜索出來的,所以不同層的卷積核尺寸已經(jīng)是最優(yōu)的結(jié)果,所以當(dāng)骨干網(wǎng)絡(luò)是MobileNetV3-Small時,不管是SK注意力,還是本文提出的PSK注意力,準確率都會劣于Split注意力的準確率。
表2 還顯示了PSK注意力的消融實驗結(jié)果。這里的消融實驗是指,在PSK注意力的全局特征轉(zhuǎn)換模塊中,使用標(biāo)準1×1卷積,再和[SK注意力+HardSoftmax]進行比較。由結(jié)果可知,隨著參數(shù)的增加,[PSK注意力+標(biāo)準1×1卷積]明顯優(yōu)于PSK注意力。表5顯示了[PSK注意力+標(biāo)準1×1卷積]和[SK注意力+HardSoftmax]的比較結(jié)果。表5的結(jié)果是通過比較[PSK注意力+標(biāo)準1×1卷積]和[SK注意力+HardSoftmax]的準確率匯總而來的。結(jié)果表明,[PSK注意力+標(biāo)準1×1卷積]是和[SK注意力+HardSoftmax]持平的。再結(jié)合表2中MAdds分析,[PSK注意力+標(biāo)準1×1卷積]的MAdds是略低于[SK注意力+HardSoftmax]的。這說明,將全局特征的提取和轉(zhuǎn)換被單獨放在一個分支,與具有不同核大小的多個分支構(gòu)成并行結(jié)構(gòu),并不會帶來準確率的損失,卻可以帶來信息多路傳輸?shù)膬?yōu)勢,充分利用顯卡的并行性,從而降低整體的計算延遲。
表5 消融實驗,PSK注意力優(yōu)于或劣于SK注意力的數(shù)量Table 5 Ablation experiment,number of PSK attention outperforming or underperforming SK attention
本文提出了計算更安全的HardSoftmax和基于HardSoftmax的并行選擇核注意力。一系列的圖像分類實驗表明,簡單地用Hardsoftmax替換Softmax,也能保持或提升原注意力的性能。HardSoftmax的運行速度在實驗中也比Softmax更快速?;贖ardSoftmax的并行選擇核注意力能夠以更少的參數(shù)量和計算量追平或超越選擇核注意力。未來的工作包括在更多場景下比較HardSoftmax和Softmax的性能,以及測試并行選擇核注意力的性能。