魯統(tǒng)偉,徐子昕,閔 鋒
(1.武漢工程大學(xué) 計算機科學(xué)與工程學(xué)院,武漢 430205;2.智能機器人湖北省重點實驗室,武漢 430205)
隨著深度卷積神經(jīng)網(wǎng)絡(luò)(Deep Convolutional Neural Network,DCNN)[1-2]的不斷改進和發(fā)展,其在圖像分類[3-5]、目標檢測[6-7]、語義分割[8-9]、視頻分析[10-11]等計算機視覺任務(wù)中得到廣泛應(yīng)用并取得重要研究成果。為進一步提高DCNN 分類器訓(xùn)練效果,研究人員提出了數(shù)據(jù)增強[12]、正則化[13-14]等一系列方法,并且設(shè)計區(qū)域丟棄算法(dropout),將dropout 用于刪除隱藏的激活層,防止卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)過于關(guān)注圖像中某塊的小區(qū)域特征。dropout 算法還可以直接應(yīng)用在輸入數(shù)據(jù)樣本中,通過隨機丟棄部分像素區(qū)域得到新樣本,現(xiàn)已被證明可使模型注意力不局限于樣本的局部區(qū)域,更好地學(xué)習(xí)樣本特征的整體分布,提高分類器的訓(xùn)練準確率[15]。由于dropout 算法去除的區(qū)域通常被簡單地歸零或填充隨機噪聲,因此對于小尺寸的圖像,減少了訓(xùn)練圖像上特征像素的比例,不利于進一步分類與定位。在基于工業(yè)視覺的語義分割任務(wù)中,直接采用dropout 算法會產(chǎn)生兩方面的問題。一方面,由于工業(yè)零部件正負樣本區(qū)別小,在人工標注時會產(chǎn)生錯誤標簽,因此直接采用dropout 算法會忽略錯誤標簽對模型的誤導(dǎo)[16-17]。另一方面,工業(yè)零部件的訓(xùn)練集樣本具有重復(fù)性與相似性[18],現(xiàn)有的填充策略和圖像融合策略會引入非信息噪聲,降低樣本信噪比[19-20]。
DEVRIES 等[21]提出Cutout 數(shù)據(jù)增強算法,對原樣本圖像使用掩模遮擋一個矩形區(qū)域以得到新樣本圖像,新樣本圖像標簽采用原始標簽。YUN 等[22]在此基礎(chǔ)上提出CutMix 數(shù)據(jù)增強算法。該算法與Cutout 算法相似,不同之處在于CutMix 使用其他樣本的隨機區(qū)域進行填充,并先分別按照兩個樣本的原始標簽進行損失計算,再將兩者求和得到最終損失值。這兩種數(shù)據(jù)增強方法在提高分類器訓(xùn)練效率上取得了較好的結(jié)果,但僅對原標簽做簡單的線性變化或直接使用原標簽作為新樣本標簽的方法是無法表示標簽中離散信息的,這會導(dǎo)致網(wǎng)絡(luò)模型無法將離散信息也作為一種特征進行學(xué)習(xí)。為解決上述問題,本文提出一種基于生成對抗網(wǎng)絡(luò)(Generation Adversarial Network,GAN)的知識蒸餾數(shù)據(jù)增強方法。對區(qū)域丟棄算法中的丟棄運算進行改進,在生成對抗網(wǎng)絡(luò)[23]的基礎(chǔ)上,對其生成器和判別器結(jié)構(gòu)進行優(yōu)化,設(shè)計一種補丁生成網(wǎng)絡(luò)。補丁生成網(wǎng)絡(luò)通過學(xué)習(xí)原樣本的像素分布生成填充補丁,以減少隨機噪聲。同時,在區(qū)域丟棄算法中引入基于知識蒸餾的標簽生成算法,通過教師網(wǎng)絡(luò)獲得Soft-lable并輔助學(xué)生網(wǎng)絡(luò)進行訓(xùn)練[24]。Soft-lable 比普通的One-Hot 標簽具有更高的信息熵,能有效輔助學(xué)生網(wǎng)絡(luò)學(xué)習(xí)不同類別間的類間差距,減少錯誤標簽對模型的影響,提高分類器的精度。
區(qū)域丟棄算法作為一種正則化方法被廣泛應(yīng)用于防止神經(jīng)網(wǎng)絡(luò)過擬合,通過在網(wǎng)絡(luò)的前向傳播過程中按照一定比例舍棄節(jié)點的激活值的方式增強網(wǎng)絡(luò)分類器的訓(xùn)練效率。與全連接層相比,區(qū)域丟棄算法在卷積層中的效果較差,這是由于卷積層使用了卷積核,使得卷積層的參數(shù)量遠少于全連接層,因此在解空間中對正則化的要求更少,并且在卷積層中特征圖的相鄰像素信息相似,舍棄掉的像素信息又存在于其他的像素中,繼續(xù)向后傳遞。
為提高區(qū)域丟棄策略在卷積層中的正則化效果,將卷積層中的丟棄操作設(shè)置到輸入層。通過直接移除輸入圖像的連續(xù)區(qū)域迫使網(wǎng)絡(luò)去學(xué)習(xí)全局信息,而不僅關(guān)注于局部區(qū)域。在許多視覺任務(wù)中常常存在目標物體被遮擋的情況,區(qū)域丟棄算法也可以看作是對遮擋的模擬,定義如下:
其中:x∈RW×H×C表示原始樣本,W表示原始圖像的寬度、H為圖像高度、C為圖像通道數(shù);表示生成的新樣本,采用原始樣本標簽y作為新樣本的標簽;M∈{0,1}W×H表示一個尺寸為ssize×ssize的矩形二值掩模。掩模M的中心位置是隨機生成的,像素坐標(x,y)范圍如式(2)所示:
其中:wwidth表示圖像寬度;hheight表示圖像高度。
掩模左上角(x1,y1)、左下角(x1,y2)、右上角(x2,y1)、右下角(x2,y2)這4 個角點坐標與中心坐標的關(guān)系如式(3)所示:
對分類任務(wù)常用的CIFAR-10 數(shù)據(jù)集使用區(qū)域丟棄算法后的樣本效果見圖1。
圖1 區(qū)域丟棄后的CIFAR-10 數(shù)據(jù)集樣本Fig.1 CIFAR-10 dataset sample after dropout
區(qū)域丟棄算法雖然能通過單樣本進行數(shù)據(jù)增強,并提高網(wǎng)絡(luò)訓(xùn)練效率,但是直接應(yīng)用于工業(yè)攝像機獲取到的工業(yè)數(shù)據(jù)集還存在如下問題:1)在使用二值掩模對原樣本進行遮擋時,會引入二值噪聲,需要對所有樣本的所有像素值進行歸一化操作,這會增加額外的計算量;2)使用原樣本的標簽進行網(wǎng)絡(luò)損失計算,這對于圖像分類任務(wù)和語義分割任務(wù)都是不合適的,在圖像分類任務(wù)中每張圖像僅對應(yīng)一個標簽,原標簽無法體現(xiàn)出不同類別之間的差異信息,在語義分割任務(wù)中每一個像素點都對應(yīng)一個One-Hot 標簽,丟棄的像素點被二值填充,此時仍采用像素點的原始標簽是不合理的。針對以上問題,本文對區(qū)域丟棄算法在標簽生成方式上進行改進和優(yōu)化。
本文主要從非監(jiān)督單樣本數(shù)據(jù)增強方式和新標簽生成方式2 個方面對區(qū)域丟棄算法進行改進。
為進一步提高數(shù)據(jù)增強算法的生成樣本質(zhì)量,引入補丁填充算法。補丁填充算法被使用在CutMix算法中,能減少丟棄像素導(dǎo)致的信息缺失、訓(xùn)練困難問題。受補丁填充算法的啟發(fā),構(gòu)造一種補丁生成網(wǎng)絡(luò),并將其應(yīng)用在區(qū)域丟棄算法中。
補丁生成網(wǎng)絡(luò)整體采用常規(guī)GAN 模型中的生成器-判別器結(jié)構(gòu)作為網(wǎng)絡(luò)骨架,受到PATHK 等[25-26]在圖像修復(fù)任務(wù)中的啟發(fā),本文算法將生成器G 設(shè)計為一個編碼器-解碼器(Encoder-Decoder)結(jié)構(gòu)。對于生成器G 輸入一張512×512 大小的三通道圖片,設(shè)置區(qū)域丟棄使用的掩模尺寸為128×128,即生成器需要生成一個128×128 大小的補丁。輸入圖片經(jīng)過4 次卷積池化下采樣為32×32 大小的512 維特征,再經(jīng)過2 次上采樣(UpSampling)恢復(fù)尺寸得到最終的三通道128×128 的填充補丁。補丁生成網(wǎng)絡(luò)生成器G 和常規(guī)GAN 生成器G 結(jié)構(gòu)見圖2。
圖2 補丁生成網(wǎng)絡(luò)生成器與常規(guī)GAN 生成器結(jié)構(gòu)Fig.2 Structure of patch generation network generator and conventional GAN generator
從圖2 可以看出,與常規(guī)GAN 生成器相比,補丁生成網(wǎng)絡(luò)將編碼器中的全連接層替換為卷積層,在解碼器中增加了上采樣層以控制最終獲得的補丁尺寸。同時,在激活函數(shù)選擇上,改用系數(shù)為0.2 的LeakyReLu 激活函數(shù)替代tanh 激活函數(shù),以防止在訓(xùn)練過程中的梯度震蕩問題。
在生成器中的編碼器Encoder 設(shè)計為一個典型的卷積結(jié)構(gòu),共使用4 層卷積層,這4 個卷積層分別使用32 個步長為2 的3×3 卷積核、64 個步長為2 的3×3 卷積核、128 個步長為2 的3×3 卷積核和512 個步長為2 的1×1 卷積核。輸入圖像經(jīng)過4 次卷積層后,特征圖的尺寸縮小為原圖的1/16。生成器中的解碼器Decoder 通過兩次上采樣恢復(fù)特征圖尺寸。在上采樣的具體實現(xiàn)中,直接采用反卷積(Deconv)層雖然更簡單,但其存在棋盤效應(yīng),必須人為設(shè)計卷積核尺寸才能整除步長。為了減少網(wǎng)絡(luò)設(shè)計的難度,通過2 次疊加使用上采樣層和卷積層實現(xiàn)上采樣操作。第1 次使用上采樣層與128 個步長為1 的3×3 卷積層將32×32×512 的特征圖擴大為64×64×128,第2 次使用上采樣層與64 個步長為1 的3×3 卷積層將64×64×128 的特征圖繼續(xù)擴大為128×128×64,之后通過一個卷積層將特征圖的尺寸調(diào)整為128×128×3。僅進行兩次上采樣操作的原因為:與常規(guī)GAN 的解碼器需要將特征圖尺寸還原到原圖大小不同,補丁生成網(wǎng)絡(luò)僅需要將特征圖尺寸還原到與補丁相同的大?。ㄔ瓐D大小的1/4)。
在判別器的設(shè)計上,常規(guī)GAN 判別器結(jié)構(gòu)與補丁生成網(wǎng)絡(luò)判別器結(jié)構(gòu)見圖3。
圖3 補丁生成網(wǎng)絡(luò)判別器與常規(guī)GAN 判別器結(jié)構(gòu)Fig.3 Structure of patch generation network discriminator and conventional GAN discriminator
從圖3 可以看出,補丁生成網(wǎng)絡(luò)判別器的設(shè)計參考常規(guī)GAN 判別器的結(jié)構(gòu),但在卷積層后沒有再使用最大池化層,而是將這些信息最后直接平化(Flatten)輸入到全連接層中。在經(jīng)過激活函數(shù)后,補丁生成網(wǎng)絡(luò)判別器還加入了BN 層加快收斂速度。
判別器的輸入為生成器生成的128×128×3 尺寸的補丁,經(jīng)過3 個卷積層和1 個平化層,最后輸出1 個一維概率值。3 個卷積層分別使用64 個步長為2 的3×3卷積核、128 個步長為2 的3×3 卷積核和256 個步長為1 的3×3 卷積核。加入平化層是將32×32×256 的特征一維化成26 244個一維向量,使卷積層與全連接(Dense)層進行過度。最終通過sigmoid 激活函數(shù)輸出一個表示該補丁是否為真的一維概率值。
基于生成對抗網(wǎng)絡(luò)的補丁填充算法定義如下:
其中:X表示新樣本;新樣本的標簽Y先使用原始樣本標簽y,本節(jié)僅討論圖像的非監(jiān)督數(shù)據(jù)增強變化規(guī)則,在下節(jié)中將會對樣本標簽的生成方式進行詳細討論;M∈{0,1}W×H表示區(qū)域丟棄算法中使用的二值掩模;E(M·x)表示將區(qū)域丟棄樣本作為編碼器的輸入;D(E(M·x))表示解碼器生成的填充補丁。
對圖像分類數(shù)據(jù)集和語義分割數(shù)據(jù)集分別使用補丁填充算法后的樣本效果見圖4??紤]到生成像素分布完全擬合的樣本需要大量的時間,為方便討論,本文設(shè)置epoch 為1 000,batch_size 大小為8 以提高補丁生成效率。從圖4(a)、圖4(b)、圖4(c)和圖4(d)中可以看出補丁像素會隨著迭代次數(shù)的增加,逐漸接近原樣本像素分布。同時,本文算法生成的補丁并非僅還原原樣本圖,而是與原樣本的低尺度圖像像素分布接近,這樣在一個mini-batch 中還能夠增加多尺度信息。但在CIFAR-10 數(shù)據(jù)集中,考慮到樣本尺寸過小,生成低尺度圖像意義不大,本文將補丁的擬合對象調(diào)整為全局圖像,見圖4(e)。
圖4 填充補丁后的圖像樣本Fig.4 Image sample after padding patch
知識蒸餾是一種模型壓縮方法,目的是將知識從性能好、參數(shù)量大的高精度網(wǎng)絡(luò)轉(zhuǎn)移到易于部署、參數(shù)量小的模型中。這種訓(xùn)練模式也被稱為教師-學(xué)生模式。教師模型是由一個或者多個網(wǎng)絡(luò)組成的復(fù)雜模型,學(xué)生模型是一個網(wǎng)絡(luò)結(jié)構(gòu)簡單、易于調(diào)整參數(shù)的模型。教師模型在訓(xùn)練中給予學(xué)生模型的指導(dǎo)稱為知識,知識的定義如下:
其中:j表示樣本集合;z表示教師模型最后一層的輸出;T表示蒸餾所采取的溫度,同時反映了標簽的軟化程度,在知識蒸餾過程中取T為1。
引入知識蒸餾算法生成數(shù)據(jù)增強樣本的標簽,將其與標簽平滑方法相融合,提出一種基于知識蒸餾的標簽生成算法?;谥R蒸餾的標簽生成算法流程見圖5。
圖5 基于知識蒸餾的標簽生成算法流程Fig.5 Procedure of label generation algorithm based on knowledge distillation
改進的基于知識蒸餾的標簽生成算法引入了標簽融合模塊,見圖5 中的虛線框。將教師網(wǎng)絡(luò)訓(xùn)練學(xué)習(xí)到的知識通過與真實標簽混合的方式傳遞給學(xué)生網(wǎng)絡(luò),設(shè)教師網(wǎng)絡(luò)由N個復(fù)雜CNN 組成,則傳遞的知識共有N個。相較于直接使用未采取知識蒸餾的One-Hot 離散標簽,使用經(jīng)過蒸餾的知識對學(xué)生網(wǎng)絡(luò)進行訓(xùn)練可以學(xué)習(xí)到不同類別間的相似度信息,從而提高分類與分割任務(wù)的精度。同時,在語義分割數(shù)據(jù)集的數(shù)據(jù)清洗過程中,通常發(fā)現(xiàn)人工標定錯誤的樣本,通過標簽混合的方式也能減少錯誤的標簽信息所占的權(quán)重比例,降低訓(xùn)練過程中錯誤標簽對模型產(chǎn)生的誤導(dǎo)。
基于知識蒸餾的標簽生成算法定義如下:
其中:生成的標簽L由Ltrue與Lsoft按比例混合得到,Ltrue表示人工標注的真實標簽,Lsoft表示通過教師網(wǎng)絡(luò)獲取到的知識,為保證Ltrue真實標簽的所占比例更高,兩者按照Beta 分布取值,約束兩者之和為1;α與β表示混合系數(shù),取α為0.3、β為0.7;pi表示教師網(wǎng)絡(luò)對第i個樣本的預(yù)測值;N表示樣本數(shù)量。
為驗證本文數(shù)據(jù)增強算法和標簽生成算法的有效性,分別在圖像分類和語義分割兩個任務(wù)上進行實驗。對于圖像分類任務(wù)采用CIFAR-10 和CIFAR-100 數(shù)據(jù)集[27]。CIFAR-10 數(shù)據(jù)集是一個被圖像分類任務(wù)廣泛使用的數(shù)據(jù)集,包含10 個類別的32×32 大小的三通道RGB 圖像,每個類別包括50 000 張訓(xùn)練樣本和10 000 張測試樣本,部分樣本見圖6。
圖6 CIFAR-10 數(shù)據(jù)集部分樣本Fig.6 Partial sample of CIFAR-10 dataset
CIFAR-100 數(shù)據(jù)集是在CIFAR-10 數(shù)據(jù)集的基礎(chǔ)上進行擴充得到,包含20 個父類(superclass),每個父類又包含5 個子類(classes),即100 個類別的32×32 大小的三通道RGB 圖像,其中每個子類包含500 個訓(xùn)練樣本和100 個測試樣本。CIFAR-10 和CIFAR-100 數(shù)據(jù)集的每個樣本按照固定的命名格式進行命名,每張圖像的標簽為其名字的首個數(shù)字,例如樣本名“2_403.jpg”表示樣本的標簽為2。
由于目前沒有用于語義分割的工業(yè)數(shù)據(jù)集,因此語義分割任務(wù)采用汽車轉(zhuǎn)向器軸承數(shù)據(jù)集,該數(shù)據(jù)集由軸承裝配線上的工業(yè)相機拍攝得到,共2 020張樣本圖像,訓(xùn)練集共1 212 張樣本圖像,測試集和驗證集分別為404 張樣本圖像。汽車轉(zhuǎn)向器軸承數(shù)據(jù)集中正負樣本的4 種不同位姿見圖7,凹槽用圓圈標出,非凹槽用矩形標出。汽車轉(zhuǎn)向器分為內(nèi)側(cè)與外側(cè),當且僅當內(nèi)側(cè)與外側(cè)均為凹槽時才是正樣本,見圖7(a),其余位姿均為負樣本見圖7(b)、圖7(c)和圖7(d)。該數(shù)據(jù)集包括正樣本和負樣本2 個類別,其中負樣本存在3 種位姿,正樣本存在1 種位姿。
圖7 汽車轉(zhuǎn)向器軸承數(shù)據(jù)集樣本Fig.7 Sample of automobile steering gear bearing dataset
汽車轉(zhuǎn)向器軸承數(shù)據(jù)集全部由手工標注,數(shù)據(jù)集標注示例見圖8(a),示例圖像對應(yīng)的json 文件見圖8(b),其中,label 表示標簽名,points 表示識別目標的像素點坐標。
圖8 數(shù)據(jù)集標注示例Fig.8 Example of dataset annotation
通過以下指標[28]評價基于生成對抗網(wǎng)絡(luò)的知識蒸餾數(shù)據(jù)增強算法的性能:
1)最低k錯誤率(Top-kError)。Top-kError 表示對每一類最終預(yù)測結(jié)果中最大的k個值不包含真實標簽的概率。Top-kError 越小表示分類精度越高。
2)特征曲線下面積(Area Under the Receiver Operating Characteristic,AUROC)。AUROC 表示模型隨機預(yù)測到的正樣本次數(shù)比負樣本次數(shù)多時的數(shù)學(xué)期望,其大小為以假正例率(False Positive Rate,F(xiàn)PR)為橫坐標、真正例率(True Positive Rate,TPR)為縱坐標的ROC 曲線下的面積。TPR 與FPR 計算公式如式(7)所示:
其中:TTP表示預(yù)測為正樣本、實際為正樣本的樣本個數(shù);FFN表示預(yù)測為負樣本、實際為正樣本的樣本個數(shù);TTN表示預(yù)測為負樣本、實際為負樣本的樣本個數(shù);FFP表示預(yù)測為正樣本、實際為負樣本的樣本個數(shù)。在實際統(tǒng)計中,TTP、FFN、TTN和FFP均由混淆矩陣獲得。AUROC 越大表示分類器的精度越高,效果越好。
3)平均交并比(mean Intersection over Union,mIoU)。mIoU 表示預(yù)測值與真實值的平均交并比。mIoU 越大,表示兩者重疊越多,分割精度越高,計算公式如式(8)所示:
其中:n表示測試樣本數(shù);設(shè)第i個樣本的預(yù)測像素點連通域為Pi、真實標簽像素連通域為Ti,表示Pi?Ti時的Pi均表示Pi為非Ti子集時預(yù)測面積與真實標簽的非重合面積。
雖然mIoU 是像素級別的評估標準,但是在實際檢測任務(wù)中可能存在mIoU 值大,但分割不準確的情況,見圖9,彩色效果見《計算機工程》官網(wǎng)HTML 版。在圖9 中,background 為模型預(yù)測存在凹槽的區(qū)域,target 為真實標簽區(qū)域。對于測試樣本2,雖然模型對所有凹槽預(yù)測正確,但預(yù)測區(qū)域面積遠大于真實標簽面積。對于測試樣本3,雖然僅預(yù)測出一個凹槽,但預(yù)測錯誤的像素面積極小。然而,測試樣本3的mIoU 甚至比測試樣本2 的mIoU 更大,這對于檢測任務(wù)顯然是不合理的。
圖9 語義分割示意圖Fig.9 Schematic diagram of semantic segmentation
為更直觀地分析模型檢測效果,針對圖像級別的轉(zhuǎn)向器凹槽識別任務(wù)對式(8)進行修改,得到適用于本文任務(wù)的凹槽識別率評估指標。凹槽識別率定義如式(9)所示:
設(shè)第i個樣本實際凹槽連通域像素點集為Ti,i∈(1,2,…,n),模型預(yù)測的像素連通域點集為Pi。當Pi?Ti時,預(yù)測凹槽區(qū)域正確增加1。當Pi的部分像素屬于Ti的非真子集時,代表部分凹槽預(yù)測正確也增加1。當Pi為非Ti子集時,代表預(yù)測區(qū)域全部為非凹槽區(qū)域,預(yù)測全部錯誤增加1。
在PyCharm 中編程實現(xiàn)本文算法,編程語言為Python3.6.10,深度學(xué)習(xí)框架為PyTorch1.0.0,實驗硬件平臺包括Intel?CoreTMi7-7700HQ CPU@ 2.80 GHz處理器,以及GeForce GTX 1070 GPU 用于加速模型訓(xùn)練。
在教師模型Net-T 的選擇上,僅使用一個網(wǎng)絡(luò)模型作為教師模型Net-T。學(xué)生模型Net-S 使用與教師模型相同的數(shù)據(jù)集訓(xùn)練,采用五折交叉檢驗方式來訓(xùn)練教師模型Net-T。將數(shù)據(jù)集隨機分為等量的5 份,其中,4 份作為訓(xùn)練集,1 份作為測試集,重復(fù)5 次上述過程訓(xùn)練得到教師模型。這樣的目的是促使模型從多方面學(xué)習(xí)樣本,避免得到局部最優(yōu)值。將Net-T 每次對數(shù)據(jù)集的Softmax 預(yù)測值作為知識蒸餾得到的軟標簽(Soft-label),將軟標簽與真實標簽(True-label)進行混合獲得訓(xùn)練學(xué)生模型Net-S 使用的標簽。生成的軟標簽保存至csv 文件中,部分CIFAR-10 數(shù)據(jù)集軟標簽csv 文件見圖10。
圖10 教師網(wǎng)絡(luò)生成的軟標簽Fig.10 Soft-label generated by Net-T
從圖10 可以看出,軟標簽學(xué)習(xí)到離散標簽所沒有體現(xiàn)的類間距離信息。例如,在圖10 中image_id為Train_0_0 的樣本,該樣本在轎車(automobile)上的最大預(yù)測值為0.515,在卡車(truck)上的第二大預(yù)測值為0.288,說明該樣本最有可能為轎車,同時該樣本與卡車的特征最接近??梢?,通過知識蒸餾可以為學(xué)生網(wǎng)絡(luò)Net-S 提供原標簽中所沒有的知識。
學(xué)生模型在訓(xùn)練中不對數(shù)據(jù)集劃分,直接使用完整的數(shù)據(jù)集訓(xùn)練。教師網(wǎng)絡(luò)訓(xùn)練流程見圖11。
圖11 教師網(wǎng)絡(luò)訓(xùn)練流程Fig.11 Procedure of Net-T training
設(shè)置mini-batch 為32,max_iter 為1 000,訓(xùn)練周期(epoch)為350。為系統(tǒng)地評估本文算法,使ImageNet2017 分類競賽中的最佳網(wǎng)絡(luò)SE-ResNet50作為骨架網(wǎng)絡(luò),該網(wǎng)絡(luò)模型具有25M 的參數(shù)量,采用交叉熵函數(shù)作為損失函數(shù)。
為防止數(shù)據(jù)集在訓(xùn)練過程中存在過擬合現(xiàn)象,同時為減少模型訓(xùn)練中復(fù)雜的調(diào)參步驟,采用余弦退火和熱重啟[29]算法作為學(xué)習(xí)率調(diào)整算法,學(xué)習(xí)率計算公式如式(10)所示:
圖12 學(xué)習(xí)率曲線Fig.12 Learning rate curve
3.3.1 本文算法與區(qū)域丟棄算法的對比
區(qū)域丟棄算法與本文算法在CIFAR-100 數(shù)據(jù)集上的損失對比見圖13。從圖13 可以看出,在訓(xùn)練初期采用本文算法的損失值會大于區(qū)域丟棄算法,這是因為在訓(xùn)練初期生成補丁的像素分布不能很好地與原數(shù)據(jù)集像素擬合。但隨著迭代次數(shù)的增加,像素分布越來越接近真實分布,在訓(xùn)練結(jié)束時,采用本文算法能得到更低的損失值,并且能更快地達到收斂。總體而言,本文算法能在一定程度上提高網(wǎng)絡(luò)的訓(xùn)練效率。
圖13 區(qū)域丟棄算法與本文算法的損失對比Fig.13 Comparison of loss between dropout algorithm and the proposed algorithm
為更直觀地對檢測結(jié)果進行比較,圖14 給出了采用3 種不同數(shù)據(jù)增強算法的熱力圖。從圖14 可以看出,對于測試圖片的凹槽檢測,本文算法和區(qū)域丟棄算法均能正確識別內(nèi)側(cè)凹槽,但在識別準確率上,特別是對于汽車轉(zhuǎn)向器軸承的外側(cè)區(qū)域,僅使用原始數(shù)據(jù)集而未采用任何數(shù)據(jù)增強方式的檢測效果最差,將轉(zhuǎn)向器外側(cè)凸起和其他區(qū)域均錯誤識別為凹槽。區(qū)域丟棄算法會受到背景的影響,將轉(zhuǎn)向器其他區(qū)域也識別為凹槽??梢姡疚乃惴ǖ臋z測效果明顯優(yōu)于區(qū)域丟棄算法。
圖14 語義分割熱力圖Fig.14 Semantic segmentation heatmap
3.3.2 本文算法與其他數(shù)據(jù)增強算法的對比
為進一步驗證本文算法的有效性,將本文算法與Cutout 和CutMix 這兩種數(shù)據(jù)增強算法進行比較,在CIFAR-100 數(shù)據(jù)集上的分類結(jié)果見表1。選擇常用的Top-1 Err 和Top-5 Err 作為Top-kErr 評價標準,Top-1 Err 和Top-5 Err 越小代表分類效果越好。由表1 可以看出,無論采用何種算法,Top-1 Err 均比Top-5 Err 高約20 個百分點,這是因為預(yù)測概率最大的1 個結(jié)果即為真實標簽的情況要少于預(yù)測最大的5 個結(jié)果中包含真實標簽的情況。本文算法在CIFAR-100 數(shù)據(jù)集上取得了較好的分類效果,與Cutout 算法相比,Top-1 Err 降低了1 個 百分點,Top-5 Err 降低了0.4 個百分點。與CutMix 算法相比,Top-1 Err 雖然提高了1 個百分點,但Top-5 Err 降低了0.1 個百分點。
表1 在CIFAR-100 數(shù)據(jù)集上的分類結(jié)果比較Table 1 Comparison of classification results on the CIFAR-100 dataset %
在CIFRA-10 數(shù)據(jù)集上的分類結(jié)果見表2。從表2可以看出,本文算法在CIFAR-10 數(shù)據(jù)集上也具有一定的有效性,相較于dropout算法在Top-1 Err 和Top-5 Err上分別降低了0.5 和0.6 個百分點,相較于Cutout 算法在Top-1 Err 和Top-5 Err 上分別降 低了0.2 和0.5 個百分點,但與CutMix 算法相比,在Top-5 Err 上雖然降低了0.3 個百分點,但在Top-1 Err 上卻增加了0.1 個百分點。
表2 在CIFAR-10 數(shù)據(jù)集上的分類結(jié)果比較Table 2 Comparison of classification results on the CIFAR-10 dataset %
導(dǎo)致CutMix 算法相較于本文算法在CIFAR-100和CIFAR-10 兩個數(shù)據(jù)集上Top-1 Err 上更好的原因為:兩個CIFAR 數(shù)據(jù)集的圖像大小僅為32×32,圖像特點為像素少而像素間包含的語義信息和特征信息多。本文算法不適用于此類特點的圖像,因為通過擬合樣本像素生成的“假”補丁所包含的特征信息遠少于所丟棄的真實圖像。CutMix 算法雖然丟棄了部分真實圖像區(qū)域,但填充的補丁是數(shù)據(jù)集中其他樣本圖像的真實像素區(qū)域,避免了該問題。如果僅使用原樣本標簽,則生成的補丁與真實區(qū)域相比效果會略差。CutMix 算法與本文算法在汽車轉(zhuǎn)向器軸承數(shù)據(jù)集樣本上的應(yīng)用效果見圖15(a)~圖15(c)。在CIFAR-10 數(shù)據(jù)集上,圖15(d)中的真實補丁與圖15(e)中本文算法生成的“假”補丁區(qū)別甚大,可以證實上述分析。
圖15 填充補丁后的CutMix算法與本文算法樣本應(yīng)用效果對比Fig.15 Comparison of sample application effect of CutMix algorithm and the proposed algorithm after padding patch
除了在CIFAR-10 和CIFAR-100 兩個數(shù)據(jù)集上,本文還在汽車轉(zhuǎn)向器軸承數(shù)據(jù)集上進行數(shù)據(jù)增強算法性能對比,選用Google 提出的DeepLabv3+作為語義分割的骨架網(wǎng)絡(luò),該網(wǎng)絡(luò)在多項指標中均獲得最高分類精度[30],結(jié)果見表3。從表3 可以看出,本文算法在語義分割任務(wù)上具有較好的效果,相較于dropout、Cutout 或CutMix 算法在準確率 和mIoU 上均有一定的提升,相較于CutMix 算法在識別準確率和mIoU 上均提升了0.4 個百分點。這是因為在語義分割任務(wù)中,網(wǎng)絡(luò)模型的預(yù)測是像素級別的,CIFAR-10與CIFAR-100 數(shù)據(jù)集中包含32×32 大小的圖像,而汽車轉(zhuǎn)向器軸承數(shù)據(jù)集中包含512×512 大小的圖像,在分類數(shù)據(jù)集中生成的補丁像素對總像素的像素分布影響更大,所以在分類任務(wù)中本文算法較CutMix 算法的性能優(yōu)勢并不明顯,但在語義分割任務(wù)中本文算法性能更優(yōu)。
表3 在汽車轉(zhuǎn)向器軸承數(shù)據(jù)集上的語義分割結(jié)果Table 3 Semantic segmentation results on the automobile steering gear bearing dataset %
3.3.3 消融實驗結(jié)果與分析
為驗證標簽生成算法能提升數(shù)據(jù)增強算法在圖像分類與語義分割任務(wù)中的精度,設(shè)置消融實驗。將算法分為3 組進行訓(xùn)練:第1 組為原始區(qū)域丟棄算法;第2 組為將數(shù)據(jù)增強算法改為本文提出的基于生成對抗網(wǎng)絡(luò)的數(shù)據(jù)增強算法;第3 組在第2 組的基礎(chǔ)上增加了基于知識蒸餾的標簽生成算法。在CIFAR-100 數(shù)據(jù)集上的消融實驗結(jié)果見表4,其中,“√”表示包括該算法,“×”表示未包括該算法。從表4 可以看出:對于第1 組實驗,僅使用原始CIFAR-100 數(shù)據(jù),Top-1 Err 和Top-5 Err 分別為28.4% 和5.7%;對于第2 組實驗,僅采用基于生成對抗網(wǎng)絡(luò)的數(shù)據(jù)增強算法,Top-1 Err 和Top-5 Err 相較于第1 組實驗提升了1.9 和0.5 個百分點,原因是補丁尺寸占整個像素面積過大,反而會降低信噪比;對于第3 組實驗,同時使用本文提出的兩種算法時卻能提高準確率,Top-1 Err 和Top-5 Err 相較于第1 組實驗分別降低了3.1 和0.8 個百分點,達到最優(yōu)分類精度,這說明知識蒸餾提取到的Soft-label 對提高分類精度有一定的效果。
表4 在CIFAR-100 數(shù)據(jù)集上的消融實驗結(jié)果Table 4 Ablation experimental results on CIFAR-100 dataset
在CIFAR-10 數(shù)據(jù)集上的消融實驗結(jié)果見表5。從表5 可以看出:對于第1 組實驗,僅使用原始CIFAR-10 數(shù)據(jù),Top-1 Err 和Top-5 Err 分別為4.4%和1.9%;對于第2 組實驗,與CIFAR-100 數(shù)據(jù)集實驗結(jié)果類似,由于兩個數(shù)據(jù)集樣本尺寸一樣,因此僅采用基于生成對抗網(wǎng)絡(luò)的數(shù)據(jù)增強算法對Top-1 Err 和Top-5 Err 的提升效果不明顯,甚至?xí)档蜏蚀_率;對于第3 組實驗,同時采用本文提出的兩種算法相較于第1 組實驗分別在Top-1 Err 和Top-5 Err 上降低了0.5 和0.6 個百分點,達到最優(yōu)分類精度。
表5 在CIFAR-10 數(shù)據(jù)集上的消融實驗結(jié)果Table 5 Ablation experimental results on CIFAR-10 dataset
針對表4 中的第2 組實驗均會受到掩模尺寸影響,降低本文算法效果的問題,在CIFAR-100 數(shù)據(jù)集上分析丟棄區(qū)域所使用掩模M尺寸對實驗結(jié)果的影響。使用與之前實驗相同的基準網(wǎng)絡(luò)與訓(xùn)練策略進行網(wǎng)絡(luò)訓(xùn)練。評估掩模M的尺寸分別為0×0、4×4、8×8、16×16 時的Top-1 Err,其中0×0 表示直接采用原圖訓(xùn)練,實驗結(jié)果見圖16。從圖16 可以看出,選擇掩模尺寸為4×4(即圖像尺寸的1/8)時,Top-1 Err 取到最小值為25.5%,若繼續(xù)擴大掩模尺寸為圖像尺寸的1/4(即8×8)和1/2(即16×16)均會增加Top-1 Err,降低分類精度。這也證實了表4 中第2 組實驗精度下降主要是由掩模尺寸導(dǎo)致。在后續(xù)實驗的掩模尺寸上采用效果最好的4×4 掩模尺寸。
圖16 掩模尺寸對Top-1 Err 的影響Fig.16 Influence of the size of the mask on Top-1 Err
通常而言,只要提供足夠多的訓(xùn)練樣本,神經(jīng)網(wǎng)絡(luò)的魯棒性能就能得到極大提升,但當某個樣本的特征在已知特征空間以外時,神經(jīng)網(wǎng)絡(luò)存在不能以較低的置信度表示沒有學(xué)到的特征。為了驗證本文算法與CutMix 和Cutout 兩種數(shù)據(jù)增強算法的泛化性能,在OOD 樣本[31]上對2 種數(shù)據(jù)增強算法與本文數(shù)據(jù)增強算法進行對比。使用CIFAR-100 預(yù)訓(xùn)練模型對CIFAR-100 數(shù)據(jù)集中的OOD 樣本進行預(yù)測,通過預(yù)測結(jié)果來判斷泛化性能。OOD 樣本選取CIFAR-100 預(yù)訓(xùn)練模型預(yù)測的Top-1 Err 值與真實標簽不同的樣本。使用在CIFAR-100 上預(yù)訓(xùn)練的SE-ResNet50 模型,在1 000 個測試樣本中選出283 個OOD 樣本,然后分別采用基于CutMix 算法、Cutout算法和本文算法這3 種數(shù)據(jù)增強算法訓(xùn)練出的網(wǎng)絡(luò)模型對283 個OOD 樣本進行預(yù)測評估。網(wǎng)絡(luò)模型采用與3.3 節(jié)中相同的網(wǎng)絡(luò)模型訓(xùn)練參數(shù)和訓(xùn)練策略,預(yù)訓(xùn)練模型上的OOD 樣本預(yù)測結(jié)果見表6。從表6可以看出,本文算法會受到樣本尺寸的影響,AUROC 相較于CutMix 算法降低了0.9 個百分點,相較于Cutout 算法提高了1.3 個百分點。
表6 預(yù)訓(xùn)練模型上OOD 樣本預(yù)測結(jié)果Table 6 OOD sample prediction results on the pre-trained model %
為解決圖像分類任務(wù)中網(wǎng)絡(luò)模型無法從離散的標簽中學(xué)習(xí)到不同類別間的相似度信息以及工業(yè)視覺檢測任務(wù)中存在正負樣本難區(qū)分、樣本量少等問題,本文改進區(qū)域丟棄算法,提出一種基于生成對抗網(wǎng)絡(luò)的知識蒸餾數(shù)據(jù)增強算法,通過生成器-對抗器學(xué)習(xí)樣本的像素分布,生成填充補丁,提高生成數(shù)據(jù)的信噪比。將知識蒸餾中的教師-學(xué)生模型應(yīng)用到擴充樣本的標簽生成中,通過教師網(wǎng)絡(luò)獲得Soft-label對學(xué)生網(wǎng)絡(luò)的訓(xùn)練進行指導(dǎo),將離散的標簽信息進行軟化,使網(wǎng)絡(luò)模型對樣本的離散空間特征進行更充分的學(xué)習(xí)。實驗結(jié)果表明,相較于區(qū)域丟棄算法,該算法在CIFAR-100 數(shù)據(jù)集和CIFAR-10 數(shù)據(jù)集的Top-1 Err上分別降低了3.1和0.5個百分點,在Top-5 Err上分別降低了0.8 和0.6 個百分點。在汽車轉(zhuǎn)向器軸承數(shù)據(jù)集的語義分割任務(wù)中,相較于區(qū)域丟棄算法、CutMix 算法和Cutout 算法,該算法在mIoU 上分別提高了2.8、0.4 和1.3 個百分點,在識別準確率上分別提高了2.3、0.4 和0.8 個百分點。由于本文所選用數(shù)據(jù)集均來自理想光照環(huán)境,因此下一步將考慮光照變化等因素來改變數(shù)據(jù)生成方式,同時通過在原樣本上增加濾波生成補丁等策略降低補丁生成耗時,提升數(shù)據(jù)生成質(zhì)量和實時性。