李文舉,蘇 攀,崔 柳
(上海應(yīng)用技術(shù)大學(xué)計算機科學(xué)與信息工程學(xué)院,上海 201418)
當(dāng)前的深度學(xué)習(xí)模型為了在復(fù)雜多變的自然場景下得到的預(yù)測更為精準(zhǔn),通常在模型中使用多種網(wǎng)絡(luò)結(jié)構(gòu)和激活函數(shù),使其能夠從輸入樣本中提取出盡可能多的特征,這些模型在大型數(shù)據(jù)集上獲得了較為優(yōu)異的預(yù)測性能。但是當(dāng)這樣的大型網(wǎng)絡(luò)模型在小數(shù)據(jù)集上進行訓(xùn)練時,由于可能存在很多冗余的特征,容易產(chǎn)生過擬合,從而導(dǎo)致模型預(yù)測性能不理想。當(dāng)前針對模型的過擬合問題,主要是在模型的訓(xùn)練過程中對提取的樣本特征采用一些正則化方法,例如:Dropout, 歸一化[1-4]等,或是直接使用預(yù)訓(xùn)練權(quán)重進行初始化,然后在新的數(shù)據(jù)集上進行微調(diào)。
其中,Dropout和歸一化方法主要針對樣本的特征進行操作,除此之外,在2019年和2020年,Yang B[5]、Chen Y[6]分別提出了條件卷積和動態(tài)卷積,可以根據(jù)輸入樣本的特征對卷積核參數(shù)進行調(diào)整。
本文提出了RPM (Random Perturb Module) 模塊,在訓(xùn)練過程中,通過向樣本特征中添加隨機擾動的方法幫助神經(jīng)網(wǎng)絡(luò)模型消除冗余特征并強化關(guān)鍵特征。使得網(wǎng)絡(luò)能夠?qū)W習(xí)到更好的網(wǎng)絡(luò)權(quán)重并顯著減輕過擬合。本文所提方法分別在兩個交通標(biāo)志識別數(shù)據(jù)集(CTSRD和GTSRB)以及一個目標(biāo)檢測數(shù)據(jù)集(PASCAL VOC 2012)上進行了實驗。
交通標(biāo)志識別對于自動駕駛具有重要意義,準(zhǔn)確的識別交通標(biāo)志可以幫助提升自動駕駛的安全性。然而傳統(tǒng)的交通標(biāo)志識別算法無法滿足其對實時性和準(zhǔn)確性的要求。隨著深度學(xué)習(xí)的發(fā)展,交通標(biāo)志識別模型的預(yù)測性能也得到了快速的提升。2020年,Wang J等[7]提出了一種基于殘差網(wǎng)絡(luò)[8]的交通標(biāo)志識別算法,其使用ResNet18模型在CTSRD數(shù)據(jù)集上進行訓(xùn)練,最后獲得了91.9%的識別精度。2021年,鄭秋梅等[9]在交通標(biāo)志識別任務(wù)中對ResNet34的殘差塊進行修改,并加入注意力機制,最終在GTSRB數(shù)據(jù)集上到達了97.7%的識別精度。本文在交通標(biāo)志識別任務(wù)中分別使用了ResNet34和ResNet50兩個模型以及其改進算法進行了實驗。
目標(biāo)檢測是比圖像分類更為復(fù)雜的視覺任務(wù),在對目標(biāo)進行準(zhǔn)確分類的同時,還需要找出目標(biāo)的準(zhǔn)確位置。本文所提的RPM模塊在經(jīng)過充分優(yōu)化的Faster R-CNN[10]、RetinaNet[11]、SSD[12]和YOLOv3[13]四個模型上進行了實驗,這更能體現(xiàn)所提模型的有效性。
近年來,深度學(xué)習(xí)模型在計算機視覺領(lǐng)域內(nèi)占據(jù)著主導(dǎo)地位,隨著研究的逐漸深入,提出了越來越多的適應(yīng)不同視覺任務(wù)的網(wǎng)絡(luò)結(jié)構(gòu),例如殘差網(wǎng)絡(luò)[8]、膠囊網(wǎng)絡(luò)[14]、注意力機制[15,16]等,使得深度學(xué)習(xí)模型的學(xué)習(xí)能力越來越強大,在各種大型數(shù)據(jù)集上的表現(xiàn)越來越優(yōu)秀。但是當(dāng)這些大型模型在一些較小的數(shù)據(jù)集上進行訓(xùn)練時,在沒有預(yù)訓(xùn)練權(quán)重的情況下就容易產(chǎn)生過擬合問題。
另一種產(chǎn)生過擬合的情況是,模型在長尾數(shù)據(jù)集上進行訓(xùn)練,樣本較多的類別由于過度采樣產(chǎn)生過擬合,樣本較少的類別則產(chǎn)生欠擬合的問題,最終模型得到較差的預(yù)測性能。
過擬合產(chǎn)生的根本原因,是由于訓(xùn)練數(shù)據(jù)集和模型的學(xué)習(xí)容量不匹配,導(dǎo)致模型學(xué)習(xí)到了很多無關(guān)的特征,并錯誤的將其作為樣本的必要特征。針對過擬合問題,主要有兩種解決方案:一是在模型訓(xùn)練方法上進行改進,例如使用dropout網(wǎng)絡(luò)層對神經(jīng)元進行隨機丟棄,或是利用在大數(shù)據(jù)集(例如ImageNet)上訓(xùn)練得到的網(wǎng)絡(luò)權(quán)重進行初始化,然后在小數(shù)據(jù)集上進行微調(diào),或是使用歸一化層在一定程度上減輕過擬合,增強模型的泛化性能;二是直接對訓(xùn)練集進行數(shù)據(jù)擴充。
鑒于在某些場景下,獲取高質(zhì)量數(shù)據(jù)是非常昂貴的,因此本文提出了RPM模塊,它可以向模型中添加隨機擾動,從而減輕模型過擬合。
最近幾年,卷積算子的動態(tài)性逐漸成為研究熱點。2018到2019年,J Dai等[17,18]分別提出了可變形卷積算法的第一代和第二代算法,可變形卷積可以改變自身卷積核的形狀,以適應(yīng)不同形狀的預(yù)測目標(biāo)。Yang B等[5]等則提出了條件卷積,它可以根據(jù)輸入特征計算卷積核的參數(shù)。2020年,Chen Y等[6]提出動態(tài)卷積,其可以根據(jù)輸入樣本對多個同一層級的卷積核進行融合并形成一個新的卷積核,然后對輸入特征進行卷積。
由2.1節(jié),過擬合的產(chǎn)生是由于訓(xùn)練數(shù)據(jù)集太小或類別樣本數(shù)不一致而導(dǎo)致的,致使模型將非必要的特征錯誤的認定為必要特征。本文針對過擬合問題,提出了RPM模塊,結(jié)構(gòu)如圖1所示,其中X表示輸入特征圖,Y表示輸出特征圖。在訓(xùn)練過程中,RPM模塊可以通過擾動層(disturbance layer)向模型中添加隨機擾動,強化樣本的主要特征,弱化無關(guān)的冗余特征。
事實上,卡夫卡心中的父親形象已經(jīng)超越了一般的倫理概念范疇而開始具有宗教學(xué)、社會學(xué)等多個層面的含義,他把對父親的感受和現(xiàn)實世界的運行機制關(guān)聯(lián)起來,由此在他心中也形成了一種蘊含著極其復(fù)雜的社會文化內(nèi)涵和個人情感的體驗。卡夫卡的父親形象與他所認知的世界有著深遠的聯(lián)系,對于父親形象的描繪和建構(gòu),來自于卡夫卡作為一個敏感作家的親身生存體驗,也來自于他的文化記憶和積淀,成為了一個關(guān)于現(xiàn)實世界的絕妙比喻。這也是為什么在卡夫卡的許多作品中,世界就像是一個沒有人能夠窺視到全貌,弄清楚結(jié)構(gòu)的錯綜復(fù)雜的迷宮,人們永遠無法真正接近它,卻又無時無處不感受到它的威嚴(yán)和壓迫。
圖1 RPM結(jié)構(gòu)圖
RPM模塊可以根據(jù)輸入特征計算均值,然后生成高斯分布的隨機擾動張量,最后將擾動張量和輸入特征圖相加,得到輸出特征圖,如式(1)所示
(1)
其中,x表示RPM的輸入特征圖,y表示RPM的輸出特征圖,C是調(diào)節(jié)因子(默認為2.5),控制擾動的大小,g表示激活函數(shù)。隨機擾動僅在訓(xùn)練時起作用,在模型的測試階段不再使用隨機擾動,因此對模型的推理速度沒有影響。
這一部分內(nèi)容對RPM模塊在中國交通標(biāo)志識別數(shù)據(jù)集CTSRD、德國交通標(biāo)志識別數(shù)據(jù)集GTSRB和PASCAL VOC2012數(shù)據(jù)集上進行了實驗。CTSRD是一個交通標(biāo)志分類數(shù)據(jù)集,由中科院自動化研究所模式識別國家重點實驗室提供,包含58個交通標(biāo)志類別,共6164張交通標(biāo)志圖片,其中訓(xùn)練集包含4170張,測試集包含1994張;GTSRB是最常用的交通標(biāo)志識別數(shù)據(jù)集,包含43個交通標(biāo)志類別,超過50000張圖片。
在交通標(biāo)志的分類任務(wù)中,本文使用ResNet作為基礎(chǔ)網(wǎng)絡(luò),并在每一個殘差塊的輸出部分加入RPM模塊。
圖2 改進的殘差模塊
PASCAL VOC2012數(shù)據(jù)集是常用的目標(biāo)檢測、語義分割數(shù)據(jù)集,包含20個類別,17125張圖片。本文的實驗環(huán)境在表1中進行了說明。
表1 實驗環(huán)境
為了驗證所提RPM模塊的有效性,這一部分在ResNet34模型和ResNet50模型的殘差塊中加入RPM模塊,在CTSRD數(shù)據(jù)集和GTSRB數(shù)據(jù)集上進行實驗。訓(xùn)練時的參數(shù)設(shè)置如表2所示。
表2 實驗參數(shù)
如圖3所示,由于CTSRD數(shù)據(jù)集存在長尾效應(yīng),因此從CTSRD數(shù)據(jù)集的58個交通標(biāo)志類別中挑選了45個類別,訓(xùn)練集中每個類別最少包含14個樣本,最多包含446個樣本。
圖3 CTSRD數(shù)據(jù)集的類別樣本數(shù)
由于長尾效應(yīng)的存在,在訓(xùn)練模型時容易對樣本較多的類別產(chǎn)生過擬合,而樣本較少的類別產(chǎn)生欠擬合,如圖4和圖5所示,其中“ours_0”和“ours_1分別表示本文在ResNet34和ResNet50模型基礎(chǔ)上加入所提的RPM模塊的方法??梢钥闯?,ResNet34和ResNet50模型僅在epoch為3之后就陷入了嚴(yán)重的過擬合。
圖4 基于ResNet34模型的實驗對比
圖5 基于ResNet50模型的實驗對比
當(dāng)ResNet34和ResNet50不使用預(yù)訓(xùn)練權(quán)重進行初始化時,模型在訓(xùn)練集上的預(yù)測精度和測試集上的預(yù)測精度存在很大的差距,即存在過擬合現(xiàn)象。但是,當(dāng)模型中加入RPM模塊之后,模型最終在測試集上和訓(xùn)練集上預(yù)測精度的差距被縮小,即過擬合現(xiàn)象有所緩解。而GTSRB數(shù)據(jù)集由于不存在長尾效應(yīng),因此在這一數(shù)據(jù)集上訓(xùn)練得到的模型不存在過擬合問題,實驗結(jié)果如表3所示,其中帶“*”的模型表示使用了本文所提的RPM模塊;“預(yù)訓(xùn)練權(quán)重”表示模型在開始訓(xùn)練之前,使用了預(yù)訓(xùn)練權(quán)重進行初始化;“隨機初始化”表示模型在開始訓(xùn)練之前,權(quán)重僅進行隨機初始化。無論是采用預(yù)訓(xùn)練權(quán)重進行初始化還是隨機初始化權(quán)重進行訓(xùn)練,本文所提的算法均獲得了更好的實驗效果,其中使用預(yù)訓(xùn)練權(quán)重的 ResNet50*模型,在CTSRD數(shù)據(jù)集和GTSRB數(shù)據(jù)集上分類精度分別達到了96.9%和99.4%。
表3 交通標(biāo)志數(shù)據(jù)集分類實驗結(jié)果
實驗表明,當(dāng)模型不采用預(yù)訓(xùn)練權(quán)重進行初始化,同時數(shù)據(jù)集又具有長尾效應(yīng)時,模型容易產(chǎn)生過擬合的問題。所提的RPM模塊可以適當(dāng)緩解模型的過擬合問題,并在一定程度上提高模型的識別精度。
目標(biāo)檢測是一種比分類更復(fù)雜的視覺任務(wù),不僅要求對圖像中的目標(biāo)樣本進行分類,還需要找出目標(biāo)所在的準(zhǔn)確位置。為了更進一步說明RPM模塊的有效性,本節(jié)分別在Faster RCNN[10],RetinaNet[11],SSD[12]和YOLOv3[13]模型中使用RPM模塊進行訓(xùn)練,其中Faster R-CNN、RetinaNet和SSD模型均使用ResNet50作為主干網(wǎng)絡(luò),本文所提改進算法和4.1中的分類算法一致,即在殘差塊的輸出部分加入RPM模塊;YOLOv3采用Darknet作為主干網(wǎng)絡(luò),同樣是在殘差塊的輸出部分加入RPM模塊。并針對PASCAL VOC 2012目標(biāo)檢測數(shù)據(jù)集進行了實驗。實驗時的參數(shù)設(shè)置如表4所示。
表4 目標(biāo)檢測任務(wù)實驗參數(shù)
實驗中所用RetinaNet,YOLOv3和Faster RCNN模型均采用在COCO 2014數(shù)據(jù)集上預(yù)訓(xùn)練的權(quán)重進行初始化,SSD模型采用英偉達提供的預(yù)訓(xùn)練權(quán)重進行初始化,然后在PASCAL VOC 2012目標(biāo)檢測數(shù)據(jù)集進行實驗。由于受顯存大小限制,SSD300和SSD300*的批大小設(shè)為8,RetinaNet和RetinaNet*的批大小設(shè)為2,YOLOv3和YOLOv3*的批大小設(shè)為4,F(xiàn)aster R-CNN和Faster R-CNN*的批大小設(shè)為4,帶“*”的模型表示采用了RPM模塊,表5和表6為對比試驗結(jié)果。
表5 目標(biāo)檢測模型的識別精度
表6 目標(biāo)檢測模型的召回率
根據(jù)實驗結(jié)果,在SSD300、Faster RCNN、YOLOv3和RetinaNet模型中加入RPM模塊,使得的AP分別提升了8.5%、1.1%、0.3%和1.3%。RPM模塊在SSD300模型上的性能提升最為明顯,是因為其預(yù)訓(xùn)練權(quán)重是在Pascal VOC 2007數(shù)據(jù)集上訓(xùn)練得到的,這一數(shù)據(jù)集相比本文實驗所用的Pascal VOC 2012數(shù)據(jù)集相對較小,因此隨機擾動更有利于進一步提升模型的性能。而Faster RCNN、YOLOv3和RetinaNet則使用了COCO數(shù)據(jù)集上預(yù)訓(xùn)練的權(quán)重,這一數(shù)據(jù)集相比本文實驗所用的Pascal VOC 2012數(shù)據(jù)集更大,樣本復(fù)雜度也更高,因此在當(dāng)前的數(shù)據(jù)集上進一步進行訓(xùn)練基本不存在過擬合的問題。
因此本文的實驗表明,在網(wǎng)絡(luò)訓(xùn)練過程中,對模型加上適當(dāng)?shù)脑肼暩蓴_可以減輕模型的過擬合問題,并在一定程度上提升預(yù)測性能。
本文針對神經(jīng)網(wǎng)絡(luò)模型在小數(shù)據(jù)集和長尾數(shù)據(jù)集上訓(xùn)練容易產(chǎn)生過擬合問題,提出了RPM模塊,在訓(xùn)練過程中給樣本特征加入隨機擾動,使模型可以獲得更好的泛化性能。經(jīng)實驗表明,所提的RPM模塊可以有效的減小模型在長尾數(shù)據(jù)集上訓(xùn)練造成的過擬合現(xiàn)象,而且即使是預(yù)訓(xùn)練模型,同樣可以在一定程度上提高模型的預(yù)測性能。