999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于梯度差自適應學習率優化的改進YOLOX目標檢測算法

2023-08-31 02:36:40宋玉存葛泉波朱軍龍陸振宇
航空學報 2023年14期
關鍵詞:優化檢測

宋玉存,葛泉波,朱軍龍,陸振宇

1.南京信息工程大學 人工智能學院(未來技術學院),南京 210044

2.南京信息工程大學 自動化學院,南京 210044

3.南京信息工程大學 江蘇省大氣環境與裝備技術協同創新中心,南京 210044

4.南京信息工程大學 江蘇省智能氣象探測機器人工程研究中心,南京 210044

5.河南科技大學 信息工程學院,洛陽 471000

目標檢測任務就是找出圖像中所有感興趣的目標物體,不僅要確定其類別,還要找到其在圖像中的位置,因此目標檢測一直以來都是計算機視覺的熱門問題之一。由于深度學習的廣泛運用,使得目標檢測算法也由傳統的目標檢測算法發展為基于深度學習的目標檢測算法[1]。基于深度學習的目標檢測可分為2 類,分別為One-Stage 目標檢測和Two-Stage 目標檢測算法。Two-Stage 指的是檢測算法需要分2 步完成,如R-CNN 系列[2-5]算法,首先需要獲取待檢測物體的候選區域,然后再進行分類;與之相對的是One-Stage 檢測方法,可以理解為一步檢測到位,且不需要單獨尋找物體的候選區域,典型算法有SSD/YOLO[6-7]。這2 類算法在檢測準確度和檢測速度方面各有優勢,但目前One-Stage 的目標檢測算法的識別精度已經與Two-Stage 的識別精度不相上下,且One-Stage 的目標檢測速度要快于Two-Stage 的目標檢測,因此One-Stage 目標檢測算法的研究是當前主流方向。

在One-Stage 的目標算法體系中,無論是在使用范圍和影響力方面YOLO 系列算法都較為突出[8]。原始版本的YOLO 目標檢測算法是2016 年提出的,它具有非常快的檢測速度,但精度還有待提高[6]。同年提出的SSD[7]目標檢測算法,相比于YOLOv1[6]進一步提高了檢測的精度與速度。隨后,眾多學者針對YOLOv1 提出不同的改進算法,包括YOLOv2、YOLOv3、YOLOv4和YOLOv5 目標檢測算法[9-12]。最新的版本是2021 年由曠視科技提出的YOLOX[13]目標檢測算法,它將解耦頭、無錨點以及標簽分類等目標檢測領域的優秀進展與YOLO 進行了巧妙的集成組合,不僅超越了已有的YOLO 的各個版本,而且在模型的推理速度上取得極大的突破。然而,在自然界中由于各類物體具有不同的外觀、形狀、大小和姿態,再加上物體成像時面臨的光照、遮擋和視角等因素,這些都對目標檢測的結果造成了巨大的影響,從而導致現實環境中現有的目標檢測算法依然面臨著巨大的挑戰,并且如何提升目標檢測的精度也成為了眾多學者的研究熱點[14]。

YOLOX 目標檢測算法雖然在各方面的表現都很優異,但進一步提升和挖掘YOLOX 算法的性能同樣也非常重要。新算法針對YOLOX 從3個不同的方向進行改進,分別是數據增強、網絡結構和損失函數:① YOLOX 算法的數據增強會造成一部分圖像色彩不均衡,從而必將影響網絡的特征提取,因此采用隨機增加亮度和對比度來解決該問題;② 網絡結構是影響整個YOLOX 算法精度的重要環節,因此新算法也從激活函數和網絡頭結構進行改進,以進一步提升其網絡模型的精度;③ 由于YOLOX 中所使用的損失函數并未解決目標檢測算法中正負樣本不均衡問題,新算法通過采用新的損失函數來應對。

在深度學習任務中,神經網絡學習的過程需要使用優化算法進行神經網絡參數學習,以使得網絡損失函數的值盡可能小。一個好的神經網絡優化算法可以使網絡模型能夠快速收斂,從而達到更好的性能表現[15]。深度神經網絡的優化能力關系著網絡最終的性能表現,但其神經網絡數百千萬的巨大參數量,使得網絡參數的優化學習也異常困難。目前使用最廣泛的深度學習優化算法包括隨機梯度下降法[16]和一些自適應學習率的優化算法。相對于隨機梯度下降法,自適應學習率算法則有更快的收斂速度和良好的泛化性能,因此如何設計出更好的自適應學習率的優化算法對提升神經網絡的性能表現非常重要。

深度神經網絡優化算法的研究一直都是眾多學者研究的熱點。通常根據優化算法在優化過程中使用的導數階數可以將優化算法分為2 大類,分別是一階優化算法和二階優化算法[17]。其中二階優化算法具有快速收斂的特點,但由于深度神經網絡的巨大參數量,二階優化算法的計算過程要求解二階導數,導致二階優化算法并不適用于深度神經網絡的優化中,因此更多的是對一階優化算法的研究[18]。一階優化算法中以梯度下降法和自適應學習率的優化算法使用最為常見,其中自適應學習率的優化算法相比較梯度下降法具有更快的收斂速度,但是其自身泛化能力較差。最早的自適應學習率優化算法AdaGrad[19]于2011 年提出,之后又提出一些改進后的自適應學習率優化算法,如AdaDelta 算法[20]、RMSprop 算法[21]以及Adam 算法[22]。其中,Adam 算法自2015 年提出至今一直備受歡迎,且眾多針對Adam 算法的改進自適應算法也層出不窮,包括AdaBound 算法[23]、DiffGrad 算法[24]、還有最近2 年的AdaBelief 算法[25]和DecGD 算法[26]等。因此設計出一個好的神經網絡優化算法,并將其用在深度神經網絡的訓練中提升網絡模型性能是極其有意義的,能有效提高神經網絡算法的應用性能。

1 問題描述

1.1 YOLOX 的目標檢測

YOLOX 目標檢測算法是以YOLOv3_spp作為基準模型。該模型采用DarkNet53 作為骨干網絡,使用了空間金字塔池化結構(SPP),并添加了EMA 權值更新、cosine 學習率機制和IoU 損失等策略[13]。YOLOX 通過對基準模型做了以下的改進以提升神經網絡的檢測精度和速度:① 在模型的輸入端采用了更強的數據增強方法,對于基準模型的主干網絡并沒有做出修改,只在網絡的預測頭使用解耦頭,這不僅提升網絡的精度,也加快了網絡的收斂速度;② 采用anchor free、multi postives 和SimOTA 等方法的共同作用使YOLOX 目標檢測算法獲得了優越的精度和極快的推理速度;③ YOLOX 又針對YOLOv5[12]的網絡做出改進,包括改進了YOLOv5的主干網絡、在YOLOv5 的Mosaic 數據增強方法后使用MixUp[27]數據增強方法、采用SiLU 激活函數[28]等方法。根據網絡的大小和深度,對改進的網絡命名為 YOLOX-S、YOLOX-M、YOLOX-L 和YOLOX-X,網絡的大小越大深度越深,其網絡的性能越好[13]。

1.2 神經網絡優化

深度神經網絡模型是一個高度非線性模型,其訓練過程就是求得這個非線性模型的最優解,一般通過求解損失函數來得到。損失函數是一個非凸函數,在求得損失函數的最優點的過程中,可能會得到損失函數的局部最小值,從而不能使模型達到最好的性能。神經網絡優化算法就是為了能夠使得網絡盡可能達到最優解,好的優化算法能夠使網絡模型快速收斂,同時使得模型有更好的泛化能力。

現有廣泛用于神經網絡的優化算法都是一階優化算法,它需求得待優化目標的梯度,并使用一個學習率去控制優化算法一點點去接近最優點,因此優化算法學習率的選擇則至關重要[17]。傳統梯度下降法使用一個固定的學習率去一步一步得到最優點,但固定學習率會導致收斂速度過慢。自適應學習率的優化算法會在優化的過程中根據待優化參數的不同而分配不同的學習率,從而可以使優化算法快速收斂,所以如何設計一個更好的自適應學習率的策略就至關重要[15]。二階優化算法的收斂速度極快,但是由于高昂的計算成本導致無法用于大規模的神經網絡優化過程。眾所周知,牛頓法就是二階優化算法,其收斂速度快主要在于優化過程中需要計算待優化函數的二階矩陣的逆,這里矩陣的逆可以看作是優化算法自適應的學習率[18]。另外,可以通過學習二階優化算法自適應學習率的策略,應用于一階優化算法中,以提升一階優化算法的優化效果。

1.3 研究動機

為提升YOLOX[13]模型的收斂速度和精度,考慮對YOLOX 做出進一步改進,主要從數據增強、改變網絡結構和網絡的損失函數3 方面進行。同時,設計新的基于梯度差自適應學習率的優化算法并用于YOLOX 網絡的訓練任務,以此來進一步提升YOLOX 的模型精度。

1) 在YOLOX 的輸入端使用隨機增加對比度和亮度去解決原圖像增強后圖像色彩不均衡的問題。YOLOX 中使用MixUp[27]將經過Mosaic 處理過的圖像再與隨機一張裁剪過的圖像按相同的權重直接相加融合,融合后的圖片包含了2 張原圖片各一半的信息,與原圖片相比就失去了一半的色彩信息,這會導致增強后的圖片色彩不均衡。針對這一問題,通過對數據增強后的圖片使用隨機增加對比度和亮度進行處理,使其增強后丟失色彩信息的圖像隨機增加一部分色彩,從而均衡數據增強后的圖像。

2) 在YOLOX 網絡的預測頭中使用新的激活函數替代原有的SiLU 激活函數[28]來增強網絡的預測能力。通過改進YOLOX 的預測頭結構來提升網絡的預測準確性,因此從預測頭網絡中的激活函數入手提出一種新的用于YOLOX 預測頭的激活函數,命名為SoftTanh 激活函數。YOLOX 中使用的激活函數是SiLU 激活函數,SoftTanh 激活函數相對于SiLU 激活函數具有更稀疏的特性,更稀疏的激活函數可以使神經網絡在訓練時更容易收斂,可以進一步提升網絡的精度。

3) 針對YOLOX 網絡解耦頭復雜的卷積結構,改進的方法對其解耦頭重新解耦設計和優化,以提升解耦頭部分的精度[13]。YOLOX 的網絡解耦頭首先是將分類和回歸解耦成2 個分支,之后再將回歸部分再解耦成2 個分支。新算法將分類和回歸直接一步解耦為3 個分支,將原來回歸的2 個分支解耦提前與分類分支解耦,這樣的設計使得網絡針對3 個解耦分支進行了同樣深度和數量的卷積操作,相比原網絡增加了2 個卷積層,進一步提升了網絡的回歸準確性。

4) 使用FocalLoss 函數[29]代替YOLOX 網絡原有的BCEWithLogitsLoss 函數去解決網絡分類中正負樣本不均衡的問題。YOLOX 在計算目標損失使用的是BCEWithLogitsLoss 函數,該函數在目標檢測中主要是用來進行樣本的正負分類。但是在目標檢測分類任務中,正樣本的數量是要遠小于負樣本的數量,就造成了正負樣本不均衡的問題,BCEWithLogitsLoss 函數對正負樣本計算損失時是按相同權重計算,無法使網絡更好的學習正樣本。FocalLoss 函數針對正負樣本賦予不同權重損失,使得模型訓練時更專注正樣本的分類,提升網絡對正樣本的分類效果,解決正負樣本不均衡的問題。

5) 提出一種基于梯度差自適應學習率的新型優化算法,用于神經網絡的訓練以提升網絡模型的性能表現。現有優化算法中二階優化算法比一階優化算法好,其主要是因為二階優化算法需要計算待優化函數的二階導數,二階導數表示的是一階導數的變化率,從函數圖像上反應的是函數的凹凸性,這也意味著二階優化算法考慮了待優化函數的曲率信息。現考慮用一階梯度的差來表示待優化函數的曲率信息,以梯度差來作為學習率自適應的一個策略,同時引入梯度分解去代替原有的梯度信息,設計出基于梯度差自適應學習率的優化算法。

上述5 點共同改進YOLOX 目標檢測算法,這5 點改進分別針對的是YOLOX 網絡的數據增強、網絡結構、損失函數和優化算法,相互之間的作用共同提升了YOLOX 的性能。

2 改進的YOLOX 目標檢測算法

2.1 從數據增強方面改進YOLOX

在神經網絡中經常需要對訓練集使用數據增強方法,從而防止神經網絡對訓練集過擬合,同時數據增強也可以彌補訓練數據不足,達到擴充數據集的目的。

2.1.1 YOLOX 的數據增強算法

YOLOX 在數據增強部分主要使用了Mosaic 和MixUp 數據增強算法。Mosaic 數據增強方法在YOLOv4[11]中提出,該算法是CutMix 數據增強方法的改進,Mosaic 數據增強通過隨機選取4 張圖像進行拼接成一張圖片,以增加單張圖片中的目標數量。對每張圖像的目標位置,拼接后圖像中目標位置相對于原未拼接的圖像中目標的位置需要重新計算,Mosaic 的增強效果如圖1 所示[29]。

圖1 Mosaic 數據增強效果圖[29]Fig.1 Mosaic data enhancement picture[29]

通過Mosaic 數據增強后,YOLOX 再使用MixUp 數據增強方法。MixUp 數據增強[27]可以提升網絡模型的泛化能力,該算法是將隨機2 張圖片按不同的權重進行融合從而生成一張新的圖像,對于圖片的標簽也按照同樣的權重進行融合生成新的標簽,相對應的計算公式為[27]

式中:λ∈[0,1];xi,j、yi,j分別表示隨機選取的2 張圖片和相對應圖像的標簽。在目標檢測中λ一般取值0.5,這樣對于計算損失函數時可以不用考慮數據標簽。YOLOX 是將Mosaic 數據增強后的圖片和隨機選取的一張圖片進行MixUp 數據增強,圖片的融合效果如圖2 所示[30]。

圖2 MixUp 數據增強效果圖[30]Fig.2 MixUp data enhancement picture[30]

圖2 (a)為隨機選取的待融合的圖像,圖2(b)為MixUp 將待融合的圖像和經過Mosaic 數據增強[11]后的圖像融合的結果,通過加權融合后的圖像包含了更多待檢測的目標,但是也讓圖像丟失了一部分色彩信息。為了進一步增強模型的泛化能力和魯棒性,對融合后的數據采取進一步的數據增強,使增強后的圖像恢復一部分色彩信息。

2.1.2 改進YOLOX 的數據增強算法

改進YOLOX 的數據增強算法是在原有數據增強算法后再使用隨機改變圖像的對比度和亮度的數據增強算法,通過隨機對圖像像素加減某個值來改變圖像的亮度和隨機對圖像像素乘某個值來改變圖像的對比度,即

式中:xiω表示改變圖像對比度,增加的ψ表示亮度的變化,ω∈[1,2],ψ∈[-10,10]為隨機值以達到對每張圖像數據隨機改變圖像的對比度和亮度的效果。同時為了防止增強后的圖像數據出現像素值過小或者像素值溢出,需要對增強后的數據進一步處理,對增強后像素值<0 的像素點置0,對于增強后的像素值>255 的像素點設置為255,這樣便改變了增強后圖像的對比度和亮度。將隨機改變圖像的對比度和亮度的數據增強算法用在YOLOX 數據增強算法之后,使融合后的圖像恢復一部分色彩信息,以提升網絡模型的特征提取效果。

2.2 從網絡結構方面改進YOLOX

在神經網絡的網絡結構中要使用激活函數,使用不同的激活函數就會有不同的網絡結構,不同的激活函數對網絡模型的影響也不同。一般激活函數都是非線性的,這樣可以為網絡模型加入非線性因素,因為線性模型的表達能力有限,好的激活函數能使網絡的性能得到很大的提升。

2.2.1 YOLOX 中的激活函數

YOLOX 將YOLOv5[12]網絡中使用的所有激活函數都改進為SiLU 激活函數[28],該激活函數在深度模型上要優于傳統ReLU 激活函數[31],具有光滑、非單調、無上界和有下界的特點。

2.2.2 改進YOLOX 中的激活函數

為進一步提升YOLOX 網絡的性能表現,針對YOLOX 的網絡結構做出改進,提出了新的激活函數去替代YOLOX 檢測頭的激活函數,新的激活函數相比于其他激活函數具有更平滑的激活函數特性,更平滑的激活函數特性具有更好的泛化能力和有效的優化能力,可以進一步提高網絡模型質量。

新的激活函數為式(7),命名為SoftTanh 激活函數,使用SoftTanh 激活函數替代YOLOX 網絡預測頭的SiLU 激活函數[28],以提升YOLOX目標檢測算法預測頭的精度,ReLU[31]、SoftTanh和SiLU 激活函數圖像如圖3 所示。SoftTanh 激活函數在整個區間都具有良好的特性。

圖3 激活函數的圖像Fig.3 Image of activation function

1) SoftTanh 函數在>0 的區間保持了ReLU激活函數良好的線性特性。從激活函數的圖像可以看到SoftTanh 函數在輸入>0 的區間保留了與ReLU 激活函數相同的特性,從函數圖像表現為ReLU 激活函數圖像與SoftTanh 函數基本重合,這一點相比于SiLU 激活函數更好。

2) SoftTanh 函數在<0 的區間具有更強的稀疏性,可以加快網絡的計算。在<0 的區間保留了一定的負值,這樣彌補了ReLU 激活函數<0 時激活值為0、梯度為0 的缺陷,與SiLU 激活函數相比較,當x→-∞時,SoftTanh 激活函數更快地趨近于0,這一點可以從圖3 的函數曲線圖看到。除此之外,通過求當x→-∞時,求SoftTanh 激活函數和SiLU 激活函數之商的極限來判斷2 個激活函數誰更快地趨近于0,通過計算可以證明SoftTanh 激活函數在負區間更快趨近于0,那么給定的輸入激活后的值就為0,在神經網絡中就表示激活的矩陣中包含很多0,矩陣中更多的0 就意味著網絡模型是稀疏的,稀疏網絡因為要計算的東西更少,網絡的計算速度也更快[31]。

將3 種激活函數應用到8 層隨機初始化的全連接神經網絡中,輸入單張圖像并對神經網絡的輸出進行可視化處理,其圖像如圖4 所示,依次是輸入圖像,使用ReLU、SiLU 和SoftTanh 激活函數的8 層全連接神經網絡輸出圖像。從圖4 可以看到,與SoftTanh 輸出的平滑輪廓相比,ReLU的輸出特征圖有許多直接的過渡。SoftTanh 的輸出同樣要比SiLU 的輸出更加平滑,更平滑的輸出意味著平滑的損失,從而具有更容易的優化和更好的泛化特性。

圖4 3 種激活函數在8 層隨機初始化神經網絡的輸入輸出圖像Fig.4 Three activation functions randomly initializing input and output images of neural network in eight layers

2.2.3 改進YOLOX 中的解耦頭

傳統的YOLO 算法的檢測頭通常是直接通過分類和回歸分支融合共享來實現的,YOLOX中網絡檢測頭通過對融合特征的解耦來實現分類和回歸,這種解耦的設計不僅僅在精度上有所提高,而且也加快了YOLOX 網絡的收斂速度[13]。針對YOLOX 網絡的解耦頭設計,將檢測頭進一步解耦,原YOLOX 解耦頭的設計和改進YOLOX 解耦頭的設計如圖5 所示。YOLOX 的網絡解耦頭是將分類和回歸解耦成2 個分支,之后再將回歸部分再解耦成2 個分支。新算法將分類和回歸直接一步解耦為3 個分支,將原來回歸的2 個分支提前解耦與分類解耦,這樣的設計使得網絡針對3 個解耦分支進行了同樣深度和數量的卷積操作,比原網絡增加了2 個卷積層,相應的因為卷積層數的增加,整個網絡的參數量和計算量也都有所增加,通過計算可以得到YOLOX-S 和改進后YOLOX-S 的參數量和運算量。

圖5 改進YOLOX 解耦頭Fig.5 Improved YOLOX decoupled head

從表1 可以看到增加卷積層后的YOLOX-S相比于原網絡參數量增加了10.1%,相應的運算量增加了17.6%。雖然整個網絡的參數量和運算量有所增加,但通過實驗可以發現增加卷積層的YOLOX-S 與原網絡相比,網絡回歸的準確性得到了提升,可以從圖6[32]看到。

表1 改進的YOLOX-S 的參數量和運算量Table 1 Improved YOLOX-S parameters and FLOPs

圖6 原網絡與增加卷積層的YOLOX-S目標檢測效果圖[32]Fig.6 YOLOX-S object detection results of original network and added convolutional layer[32]

圖6 中左圖為原YOLOX-S 目標檢測結果,右圖為增加2 層卷積后的目標檢測結果,可以看到圖中右上角的立交橋在原YOLOX-S 網絡中并未被檢測到,增加卷積層后的YOLOX-S 網絡回歸準確性得到了提升,位于右上角的立交橋也被檢測到。因此,對YOLOX 的解耦頭進一步解耦,雖然網絡參數和運算都有所增加,但對于提升網絡回歸準確性也具有明顯效果。

2.3 改進YOLOX 的損失函數

損失函數是用來評估模型的預測值與真實值之間的差值,在深度學習的訓練過程中,往往需要通過使損失函數最小化,從而使得訓練的模型能夠收斂,選擇一個好的損失函數可以使得模型具有更好的性能表現。

2.3.1 YOLOX 中的損失函數

YOLOX 網絡的損失函數包括3 部分,分別是IoU 損失,類別損失和目標損失[13]。IoU 損失的作用是通過計算預測目標框與真實目地之間的交并比來使得網絡能夠更加準確地預測出目標框的位置信息;類別損失是計算目標類別的真實值與預測值之間的損失;目標損失的作用是通過判斷當前預測候選框是目標還是背景,進一步使網絡能更加準確地將目標與背景分開。在YOLOX 的網絡中,類別損失和目標損失都使用了BCEWithLogitsLoss 函數[29],該函數是對輸入的數據先使用Sigmoid 函數(8),之后使用BCELoss 函數,常用于多標簽分類任務。

2.3.2 改進YOLOX 中的損失函數

在目標檢測中One-Stage 目標檢測的檢測精度要低于Two-Stage 目標檢測,主要因為樣本類別不均衡造成正負樣本難分類,解決的方法通常是使用FocalLoss 函數[29]。該函數是在交叉熵函數上做改進,交叉熵損失函數在計算損失時,每個樣本使用相同的權重。在目標檢測中,正樣本是檢測的目標,負樣本是大量的背景,正負樣本在數量上有著非常大的差距,但使用交叉熵損失函數并不能使模型能更好地區分正負樣本,FocallLoss 函數針對正負樣本不均衡,分別賦予不同的權重,對于正樣本因為數量少,需要設置更大的權重,相反,對于負樣本設置較小的權重。對于正負樣本難分類的問題,通過一個調制系數,對容易分類的樣本減小其權重,對難以分類的樣本增大其權重,計算公式為[29]

式中:σ是根據正負樣本的比例來決定的,σ∈(0,1),將σ設置為FocalLoss 論文默認取值0.25,(當σ設置為0.25 時改進的YOLOX-S 算法在RSOD[32]數據集中的性能并非最好)。對此分別設置參數σ=0.1,0.2,0.3,實驗發現當參數σ=0.2 時,改進的YOLOX-S 在RSOD 數據集中的結果更好。式(9)中pt表示檢測的結果,其值的范圍是[0,1],該值越大表示可信度越高,越容易分類樣本,相反,值越小可信度越小,更難分類。γ是一個調制系數,可以控制容易分類和更難分類樣本的權重,γ∈(0,5),文中默認取值為2。當pt越大表示越容易分類,則(1-pt)2也就更小,損失函數的值也就越小。當pt越小表示越難分類,則(1-pt)2也就更大,損失就更大,損失變大會使神經網絡更傾向于更難分類樣本參數的學習,從而提升神經網絡對難分類樣本的分類準確性。

3 算法介紹

3.1 自適應學習率的優化算法

自適應學習率的優化算法框架都是基于梯度下降法改進的,區別在于兩者學習率的設置不同。在隨機梯度下降算法[16]中,針對每個待優化的參數學習率α是一致的,算法迭代公式為

式中:θ是待優化的參數;gt表示待優化函數的梯度,通常在使用隨機梯度下降法時更普遍使用帶動量項的隨機梯度下降法[33],即

式中:mt為動量項,通過指數加權平均包含了過去梯度的信息,可以使梯度下降的方向基于過去累計梯度的方向。自適應學習率優化算法的學習率是針對不同參數有不同的學習率,最早的自適應學習率優化算法AdaGrad[19]是通過積累過去梯度的平方和的根來實現自適應學習率,即

式中:Gt是過去t次迭代梯度的和;ε是為了保持分母數值穩定的常數,默認取值為10-10。之后就出現了各種自適應學習率優化算法,其中使用最為廣泛的就是Adam 算法[22],它結合了AdaGrad[19]和RMSProp 算法[21]的優點,根據梯度的第一和第二矩的估計計算不同參數的各個自適應學習率,即

式中:mt表示梯度gt的指數加權移動平均值,為梯度的一階矩估計,用來控制模型更新的方向;β1是指數加權移動平均的衰減率,默認取值為0.9;vt表示梯度g2t的指數加權移動平均值,為梯度的二階矩估計,用來控制學習率;β2為指數加權移動平均的衰減率,默認的取值為0.999;m?t和v?t是對mt和vt進行偏差修正;ε是為了保持分母數值穩定的常數,默認取值為10-8。AdaBelief 算法[25]針對Adam 算法做出了改進,使用(gt-mt)2來代替式(16)中的g2t,使得算法在更新時方差大減小學習率,方差小增大學習率,即

式中:β1、β2和ε的默認取值與Adam 算法中β1、β2和ε的取值相同,分別為0.9、0.999 和10-8。自適應學習率的優化算法需要根據過去迭代的梯度信息來實現學習率的自適應,如何利用過去迭代的梯度信息設計出更好的自適應學習率策略非常關鍵,DecGD 算法中提出使用損失來實現學習率的自適應,在網絡學習的過程中,學習率的大小應該隨著函數的損失減小而減小,該算法利用復合函數

來表示損失函數,其中c默認為1,然后對復合函數求導將梯度進行分解為復合函數和復合函數導數的乘積得到

其中:復合函數的導數為

復合函數則使用一元泰勒展開來近似表達,其中復合函數的近似為

最后使用2g(x)?g(x)來表示原梯度來實現梯度下降。

新提出的優化算法是基于梯度差的信息來實現學習率的自適應,同時結合了DecGD 方法的梯度分解,使用復合函數來表示原損失函數,相比較于現有方法,具有更好的學習率自適應性。

3.2 基于梯度差自適應學習率的優化算法

f(θ)是一個待優化的函數,其函數圖像如圖7 所示,要求得f(θ)的極小值,可使用隨機梯度下降法迭代法,但是在隨機梯度下降法中的學習率大小不變,固定的學習率會導致算法在最優點來回震蕩,難以達到最優點。

圖7 f (θ)函數圖像Fig.7 f (θ) functional image

基于梯度差的自適應學習率使用梯度差信息來表示待優化函數的曲率信息,以曲率值的大小來控制學習率的變化,設計出一個基于梯度差自適應學習率的優化算法。在圖7 中,點θ3和θ4在最優點附近,學習率應該設置的較小,這樣可以避免算法迭代在最優點震蕩,在最優點之外,點θ1和θ2或點θ5和θ6處學習率可以設置較大一點,這樣可以使算法快速迭代到最優點附近。最優點附近的梯度差|g(θ4)-g(θ3)|要大于最優點之外的梯度差|g(θ2)-g(θ1)|和|g(θ6)-g(θ5)|,因此可以利用梯度差信息來控制學習率在算法迭代過程中的大小。在最優點附近,梯度差大,學習率小;在最優點之外,梯度差小,學習率大,學習率的大小與梯度差成反比。

式中:Δgt為梯度差,表示當前梯度gt與過去梯度gt-1的差值,使用梯度差作為學習率自適應的一個策略,這個差值可以反應出待優化函數的曲率變化信息,通過曲率信息的變化自動調整學習率的大小,從而實現學習率的自適應。當前梯度與上一步迭代的梯度的差值可能為正值,也可能為負值,差值的正負表示曲線向上彎曲還是向下彎曲,與梯度下降的方向沒有關系,因此可以只考慮差值的大小。

現考慮將基于梯度差自適應的策略與梯度分解進行結合,以實現更好的自適應學習策略。這里使用對數函數(26)作為損失函數的復合函數,損失函數f(θt)是一個恒大于零的函數,當損失為零時,復合函數h(θt)=ln (f(θt)+1)也為零,對復合函數求導,得到梯度?h(θt),對復合函數的梯度引入動量加速法得到,復合函數的本身使用一元泰勒公式近似為式(30)。算法的更新規則是使用當前梯度近似值mtevt和當前梯度gt的不同權重結合替換傳統梯度下降法的梯度,同時引入當前的梯度差,以實現基于梯度差自適應學習率的神經網絡優化算法。

式中:mt表示復合函數的梯度?h(θt) 的指數加權移動平均值,參數β1表示指數加權移動平均衰減率,默認取值0.9。α表示學習率,默認為0.01,參數ε既可以防止梯度差作為分母為零,也可以針對不同的優化任務進行適當的參數調整,默認為0.01。β2作為當前梯度和當前梯度近似梯度融合的權重,β2∈(0,1),默認取值0.3。

通過使用基于梯度差自適應學習率的優化算法去優化高維的非凸函數,并對其自適應學習優化算法的優化過程以及優化結果進行可視化,以重點分析其自適應學習算法的優化效果。選用Rastrigin 函數進行優化,Rastrigin 函數是一種典型的非凸函數,函數圖像如圖8 所示。

圖8 Rastrigin 函數圖像Fig.8 Rastrigin functional image

Rastrigin 函數表達式為

式中:A和n通常設為10 和2,當x=0 時,有全局最優點f(0)=0。分別采用不同的優化算法針對Rastrigin 函數進行200 次迭代優化并對其優化過程以及優化結果可視化處理。不同優化算法的優化效果如圖9 所示。因為Rastrigin 函數具有多個局部的極大值點和極小值點,其最優點在(0,0),常規的優化算法很容易陷入局部最優點,圖9中的SGDM、Adam 以及AdaBelief 算法在經過200 次迭代過程中都陷入了局部最優點,本文優化算法在200 次迭代中經過局部最優點最終迭代得到全局最優點(0, 0)。

圖9 不同優化算法在Rastrigin 函數迭代優化效果圖Fig.9 Rastrigin function iterative optimization results with different optimization algorithms

4 算法分析

針對最新的YOLOX 目標檢測方法主要從數據增強、網絡結構和網絡損失函數3 個不同的方面做出改進,這些改進算法共同作用提升了其目標檢測的性能。同時設計出一種新的基于梯度差自適應學習率的優化算法,將該優化算法用于訓練改進過的YOLOX 目標檢測任務,進一步提升目標檢測的精度,并且該優化算法也可以用在其他神經網絡的訓練任務中去。

4.1 改進YOLOX 目標檢測算法的耦合性

改進的YOLOX 目標檢測算法從數據增強、網絡結構和損失函數3 個不同方面進行改進,其中還有用于訓練改進YOLOX-S 的基于梯度差的優化算法。

改進的數據增強方法是作用在輸入網絡的數據,式(3)是對原始數據增強后的圖像進一步增強,恢復圖像部分色彩信息,再將其輸入到神經網絡中,數據增強作用的是數據集,數據集與神經網絡是2 個不同的模塊,因此數據增強與神經網絡的結構是非直接耦合關系。改進的損失函數是為了解決數據集正負樣本不均衡的問題,但是數據增強與數據集的正負樣本并沒有直接關系,因此數據增強與改進損失函數之間也是非直接耦合關系。

改變網絡結構影響的是網絡的輸出,通過改變網絡的激活函數和改進網絡的解耦頭設計來改進網絡的部分結構,使得網絡具有更好的預測能力。改進的損失函數作用在網絡學習分類的能力,式(9)中的損失函數可以對正負樣本設置不同的權重,使網絡對正負樣本具有更強的分類能力。2 個方法分別作用在YOLOX-S 的不同方面,因此是非直接耦合的關系。用于訓練改進YOLOX-S 的基于梯度差的優化算法單獨作用于神經網絡,因此基于梯度差的優化算法與改進YOLOX-S 算法之間不存在耦合關系。

同樣可以通過實驗仿真來驗證各改進算法之間的耦合關系,針對不同的改進算法可以通過分步驗證,依次驗證單個改進算法是否有效。

4.2 基于梯度差自適應學習率的優化算法

使用梯度差的信息作為自適學習率的策略,同時將梯度分解的近似梯度去代替原損失函數的梯度信息,最后在算法的更新上使用了當前梯度和近似梯度的不同權重進行更新,梯度差自適應學習率的優化算法的詳細信息如算法1 所示。其中:f(θ)∈R ,?θ∈Rd,f為最小化的損失函數,θ為屬于Rd的參數;t表示迭代次數;h(θt)=ln (f(θt)+1);gt=?f(θt)表示f(θt)的梯度;Δgt表示梯度差信息;α表示學習率,默認為10-3;ε為為防止梯度差作為分母為零設置的參數,默認為10-2;β1、β2表示平滑參數,分別設置為0.9和0.3。

?

基于梯度差自適應學習率的優化算法結合了梯度分解和梯度差信息作為自適應學習率調整的策略。AdaBelief[25]優化算法中使用移動指數加權平均的算法來計算當前梯度與當前梯度動量項的差來作為學習率自適應變化的計算算法,計算公式見式(20)。新算法直接使用了當前梯度與上一次迭代的梯度的差作為梯度信息的變化,以實現學習率的自適應。相比于AdaBelief算法,這樣的計算方法更加簡單和更易于理解。

DecGD[26]優化算法中將損失函數的梯度分解為2 項的乘積,這2 項通過使用損失函數的復合函數來引入。新算法使用了相似的方法,但是使用了不同的復合函數來表示損失函數。DecGD 優化算法使用表示損失函數的復合函數,當損失函數f(x)趨近于零時,復合函數g(x)只會無限趨近于c,因此復合函數g(x)不具有與損失函數f(x)相同的極限,無法與損失函數f(x)的變化做到同步。使用對數函數h(x)=ln (f(x)+1)作為損失函數的復合函數,當損失函數f(x)趨近于零時,復合函數h(x)與損失函數f(x)具有相同的極限,因此h(x)更能表達損失函數。通過梯度融合以達到梯度的近似性,從而使梯度更新的模型具有泛化性。

4.3 收斂性分析

使用在線學習框架分析基于梯度差自適應學習率的優化算法在凸情況下的收斂性,使用遺憾來評估優化算法,即在線預測ft(θt)和在最優點ft(θ*)之間的所有之前差異的總和,遺憾定義為

在線凸優化的標準假設如下:

假設1①X?Rd是緊凸集;②ft是凸的下半連續函數,其中gt=?ft(θt);③D=maxθ,λ∈X||θλ||∞,G=maxt||gt||∞。

根據假設1 可以提出以下引理:

引理1假設函數ft是有界的凸函數,對?θ∈Rd,令ht(θ)=ln (ft(θ)+1)。如果ft具有有界的梯度,那么ht也具有有界梯度,并且在可行區域內有界,證明過程參考AdaBelief[25]算法。

根據假設1 和引理1,得出假設2。

假設2①X?Rd是緊凸集;②ft是凸下半連續的函數,ht=ln (ft+1),其中lt=?ht(θt);③||θ-λ||≤D,||lt||≤H,||gt-gt||≤G,|exp(ht(θt))|≤L。

定理1設{θt}、{st}和{vt}為算法1 得到的序列,對?t∈[T],有0 ≤β1t≤β1<1,0 ≤β2<1,β11=β1,αt=,st-1≤st,0 <c≤。θ*表示域內的最優點,對由基于梯度差自適應學習率的優化算法生成的任意θt,有以下遺憾界,參考AdaBelief[25]優化算法的收斂證明思路可得:

推論1設β1,t=β1λt,0 <λ<1,有:

推論2在定理1 相同假設情況下,算法1 對所有的T≥1,可得算法的平均遺憾收斂:

5 仿真實驗

進行實驗驗證改進后的YOLOX-S 目標檢測算法在不同數據集的表現,以及與其他目標檢測算法在相同數據集上的比較,同時也將梯度差自適應學習率的優化算法與其他優化算法在不同神經網絡上使用相同的數據集進行實驗比較。

5.1 改進后的YOLOX-S 目標檢測算法實驗

實驗驗證改進后的YOLOX-S 目標檢測算法的表現,首先在標準的PASCAL VOC 07+12數據集[30]進行實驗,使用的是PASCAL VOC 07+12 的評價標準,實驗設備使用的是NVIDIA A4000 顯卡。用未改進的YOLOX-S 網絡[13]進行實驗得到一個基準的實驗結果,之后依次使用FocalLoss 函數、數據增強算法、SoftTanh 激活函數以及解耦頭去改進YOLOX-S 并進行實驗對比,驗證改進的方法對YOLOX-S 的作用,最后再使用基于梯度差自適應學習率的優化算法去替換原YOLOX-S 訓練所使用的隨機梯度下降法去訓練改進的YOLOX-S 網絡。

實驗采用的評價指標是平均精度AP,從表2實驗結果可以看出,使用FocalLoss 函數后,YOLOX-S 的AP 提升了1.02%,主要是因為FocalLoss 函數解決了目標檢測任務中正負樣本數據不均衡的問題,數據增強、新的激活函數和解耦頭結構分別從數據和網絡結構方面改進,分別從不同程度上提升了YOLOX-S 的AP。使用基于梯度差自適應學習率的優化算法使YOLOX-S 模型進一步優化,提升了YOLOX-S 的AP。改進后的YOLXO-S 算法的AP 相比較于未改進的YOLXO-S 算法的AP 提升明顯,雖然各改進算法在精度方面對YOLOX-S 的提升效果大小各異,但總體上共同提升了算法的AP 表現。

表2 改進的YOLOX-S 在VOC 數據集的實驗結果Table 2 Experimental results of improved YOLOX-S in VOC datasets

使用相同的設備用改進后的YOLOX-S 算法與YOLOv3[10]算法、YOLOv5s[12]、未改進的YOLOX-S[13]算法以及最新由美團開源的YOLOv6s[34]算法在RSOD[32]數據集上進行實驗比較,RSOD 數據集用于遙感圖像中的物體檢測,其包含飛機、操場、立交橋和油桶4 類目標共976張衛星圖像,按照8∶2 隨機劃分為訓練集和驗證集進行實驗,實驗使用COCO 評估標準,不同目標檢測算法在ROSD 數據集的實驗結果如表3所示。

表3 不同目標檢測算法在RSOD 的實驗結果Table 3 Experimental results of different object detection algorithms in RSOD

從表3 可以看到改進后的YOLOX-S 算法在RSOD 數據集的不同評價指標都有提升,這也表明了,通過對YOLOX-S 從數據增強、激活函數、網絡結構和優化算法方面的改進針對不同的數據集也可提升AP。其中AP50和AP75是算法預測框與真實框IOU>0.5 和0.75 的平均精度,IOU 越大預測的越準確,APS、APM和APL分別表示不同大小目標的平均精度,S、M 和L 分別表示小、中和大目標。在表3 的實驗結果可以看到改進后的YOLOX-S 在RSOD 數據集上的實驗結果的大部分指標都要優于其他算法,其中AP50和AP75的實驗結果比原YOLOX-S 的實驗結果分別提升了1.5%和3.1%,精度提升效果明顯。改進后的YOLOX-S 在RSOD 數據集上APM和APL的實驗結果要優于原YOLOX-S,其中改進后的YOLOX-S 的大目標檢測中的精度提升明顯,其平均精度提升了2.8%。而且改進后的YOLOX 算法與最新的YOLOv6-s 目標檢測算法相比較,在各項評價指標中都有更好的表現。

通過對RSOD 驗證集的目標檢測結果可視化后,可以發現改進后的YOLOX-S 相比于原算法的具體優勢在于可以降低圖像中目標的漏檢和誤檢問題,具體的情形如圖10[32]所示。對于圖10(a)中的2 個操場只檢測到一個,圖10(b)中2 個操場都檢測到,改進后的YOLOX-S 降低了圖像中目標的漏檢。圖10(c)中,原YOLOX-S目標檢測結果誤將類似飛機形狀的草坪檢測為飛機,圖10(d)為改進后的YOLOX-S 的目標檢測結果,很明顯改進后的YOLOX-S 可以減低目標的誤檢。

圖10 原算法(左)與改進后算法(右)目標檢測結果圖[32]Fig.10 Object detection result of original(left), and improved algorithm(right)[32]

5.2 梯度差優化算法的性能驗證實驗

為驗證新的優化算法的優化效果,使用相同的實驗設備,分別使用SGDM[16]、Adam[22]、Ada-Belief[25]優化算法以及梯度差優化算法在RSOD數據集訓練改進后的YOLOX-S 網絡,其中各優化器的參數設置都為默認參數,實驗結果如表4所示

表4 相同網絡不同優化算法的實驗結果Table 4 Experimental results of the same network and different optimization algorithms

從表4的實驗結果可以看到,在使用RSOD 數據集和相同的網絡模型條件下,梯度差自適應學習率的優化算法較其他優化算法在AP 上有一定的提升,這也表明基于梯度差自適應學習率的優化算法具有更好的優化效果。采用SGDM 訓練改進后的YOLOX-S 算法相較于Adam 和AdaBelief 算法有一定的優勢,但是與基于梯度差自適應優化算法訓練改進后的YOLOX-S 網絡相比較,基于梯度差自適應優化算法具有更好的AP 提升。

為驗證基于梯度差自適應學習率的優化算法在其他神經網絡的優化結果,使用該優化算法與其他主流的優化算法在圖像分類任務上進行實驗比較。在圖像分類任務中使用CIFAR10 數據集[35],分別使用VGG11[36]、ResNet34[37]和DenseNet121[38]經典網絡進行實驗,其中各優化器的參數都為默認參數,實驗結果如圖11 所示。

圖11 CIFAR10 數 據 集 在 VGG11、ResNet34 和DenseNet121 的精度曲線Fig.11 Accuracy curves of CIFAR10 datasets in VGG11, ResNet34 and DenseNet121

從圖11 的精度曲線可以看到不同優化算法在CIFAR10 數據集和各圖像分類網絡模型的條件下,本文優化算法都具有更好的優化表現,這也表明本文優化算法在不同神經網絡中的優化都是有效的。本文優化算法在VGG11 網絡中的表現要明顯優于其他優化算法,在ResNet34 網絡中本文的優化算法也要優于SGDM 和Adam優化算法,與AdaBelief 優化算法的表現不相上下,在DenseNet121 網絡中本文的優化算法的表現也優于SGDM 和Adam 優化算法,與AdaBeief優化算法相比效果也要好一點。

6 結 論

本文針對最新的YOLOX 目標檢測算法從3方面做出改進,設計出基于梯度差自適應學習率的優化算法用于改進后的YOLOX 網絡的訓練任務,并通過實驗驗證了改進后的YOLOX-S 在不同數據集的表現要優于原YOLOX-S 算法。同時將基于梯度差自適應學習率的神經網絡優化算法用于其他神經網絡的訓練任務,并在不同任務中進行實驗,實驗驗證了基于梯度差自適應學習率優化算法的優化表現要優于現有的優化算法,最后對本文提出的優化算法做出了收斂性證明。未來將會在不同大小尺寸的YOLOX 網絡上進行改進,使用更大的數據集進行實驗,并將改進的算法應用到實際的目標檢測任務中去。

猜你喜歡
優化檢測
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
“幾何圖形”檢測題
“角”檢測題
主站蜘蛛池模板: 亚洲欧美在线综合图区| 国产成人精品第一区二区| 亚洲天堂网在线视频| 三区在线视频| 国产精品开放后亚洲| 日韩中文欧美| 国产视频自拍一区| 狠狠久久综合伊人不卡| 亚洲综合天堂网| 国产精品无码作爱| 午夜三级在线| 中国丰满人妻无码束缚啪啪| 高清国产va日韩亚洲免费午夜电影| 亚洲国产91人成在线| 久久青草免费91观看| 2021无码专区人妻系列日韩| 日本人妻一区二区三区不卡影院| 婷婷综合色| 国产午夜一级淫片| 国产中文一区a级毛片视频| 国产成人一二三| 亚洲成a人片在线观看88| 久久综合国产乱子免费| 国产无码精品在线播放| 精品久久久久久成人AV| 香蕉综合在线视频91| 欧美国产综合色视频| 亚洲最新地址| 国产黄网站在线观看| 狠狠综合久久久久综| 浮力影院国产第一页| aⅴ免费在线观看| 亚洲AV成人一区二区三区AV| 精品视频在线一区| 极品国产一区二区三区| 青青草一区二区免费精品| 日本高清有码人妻| 午夜啪啪网| 久久夜色撩人精品国产| 三级国产在线观看| 天天摸天天操免费播放小视频| 99无码熟妇丰满人妻啪啪| 日韩成人在线一区二区| 欧美一区二区丝袜高跟鞋| 伊人国产无码高清视频| 成人在线不卡视频| 亚洲一级毛片| 欧美亚洲国产视频| 国产精品手机在线观看你懂的| 99热线精品大全在线观看| 亚洲国产理论片在线播放| 久热中文字幕在线观看| 青草视频在线观看国产| 69免费在线视频| 国产精品区网红主播在线观看| jizz在线观看| 国产乱人免费视频| 精品少妇人妻av无码久久| 久久人妻xunleige无码| 男女精品视频| 欧美福利在线观看| 强奷白丝美女在线观看| 露脸一二三区国语对白| 国产午夜不卡| 亚洲成在人线av品善网好看| 欧美综合激情| 国产91高跟丝袜| 老色鬼久久亚洲AV综合| 色婷婷亚洲综合五月| 亚洲中文制服丝袜欧美精品| 一级一级一片免费| 女高中生自慰污污网站| 国产97视频在线观看| 国产91久久久久久| 欧美午夜视频在线| 国产免费人成视频网| 国产黄网永久免费| 四虎国产精品永久一区| 婷婷丁香色| 呦女精品网站| 国产成人免费手机在线观看视频 | 伦伦影院精品一区|