?
提出背景:深層網(wǎng)絡的 信息丟失、梯度流偏差
論文:https://arxiv.org/pdf/2402.13616.pdf
代碼:https://github.com/WongKinYiu/yolov9
- 問題: 深度網(wǎng)絡在前饋過程中數(shù)據(jù)丟失信息,導致偏差的梯度流和錯誤的目標與輸入關聯(lián)。
- 解法: YOLO v9
在實際應用中,例如交通監(jiān)控系統(tǒng)中的車輛和行人檢測,深度網(wǎng)絡可能會因為網(wǎng)絡層過深而導致在前饋過程中丟失對車輛和行人的關鍵特征信息。
這種信息丟失會導致梯度流在反向傳播過程中帶有偏差,使得網(wǎng)絡無法準確地學習到車輛和行人的特征,進而影響檢測準確性。
針對這個問題,YOLOv9被提出作為一種解決方案。
它結合了PGI(可編程梯度信息)和GELAN(廣義高效層聚合網(wǎng)絡)技術來克服信息瓶頸和深度監(jiān)督在輕量級網(wǎng)絡中的不適用性問題。
YOLOv9的PGI技術包括輔助可逆分支和多級輔助信息,這些設計有助于在網(wǎng)絡的深層中保留更多的信息,生成更可靠的梯度,從而在訓練過程中確保了更準確的目標與輸入之間的關聯(lián)。
例如,如果在交通監(jiān)控系統(tǒng)中部署了YOLOv9,當監(jiān)控畫面中有車輛通過時,即使在網(wǎng)絡較深的層次上,YOLOv9也能有效地保留車輛的關鍵特征信息,如車輛的輪廓、顏色和標志等。
這使得在整個訓練過程中,網(wǎng)絡能夠學習到更為精確的特征,提高車輛檢測的準確率。
與傳統(tǒng)的深度網(wǎng)絡相比,YOLOv9能夠減少因信息丟失導致的錯誤預測,從而在實時對象檢測任務中表現(xiàn)出更高的準確性和效率。
圖展示了在相同輸入圖像下,不同神經(jīng)網(wǎng)絡架構的特征圖對比。
特征圖代表了模型初始權重處理后各個網(wǎng)絡架構所關注的內(nèi)容。
這些可視化包括PlainNet、ResNet、CSPNet以及所提出的GELAN(v9采用),以及原始輸入圖像。
這些地圖用來分析在前饋過程中每個網(wǎng)絡保留了多少信息。
圖中表明,所提出的GELAN架構保留了最完整的信息,并為計算目標函數(shù)提供了最可靠的梯度信息,這對模型的準確性至關重要。
GELAN在添加了PGI的可逆分支后,對目標對象的專注能力得到了提升。
- GELAN在沒有PGI時顯示出一些分散的特征激活
- 而在結合了PGI后,YOLOv9能夠更集中地捕捉到目標對象的位置
- 表明PGI的引入有助于網(wǎng)絡在早期訓練階段就能夠更準確地學習到目標的關鍵信息。
?
在MS COCO數(shù)據(jù)集上實現(xiàn)頂尖性能。
YOLO v9 設計邏輯
深度網(wǎng)絡在處理復雜任務時面臨的主要問題——信息丟失和梯度流偏差。
YOLO v9 結合 可編程梯度信息(PGI)和 通用ELAN(GELAN) 設計。
GELAN架構改進是基于ELAN,能夠有效降低參數(shù)數(shù)量,提高計算效率。PGI作為訓練改善手段,可以更好地維護傳播過程中的關鍵信息。
PGI 通過一個輔助的可逆分支來維持關鍵信息,并確保梯度流的準確性。
接著,為了使模型能夠在不同的硬件上高效運行,設計了GELAN,它允許模型根據(jù)硬件能力選擇最合適的計算塊。
最后,通過結合這兩種技術,開發(fā)了YOLOv9,它在保持模型輕量級的同時,大幅提升了對象檢測的準確率和速度。
可編程梯度信息(PGI)和廣義高效層聚合網(wǎng)絡(GELAN)是在深度學習領域為提高神經(jīng)網(wǎng)絡性能而提出的先進概念。以下是對這兩個概念的詳細解釋:
可編程梯度信息(PGI):使用PGI改善訓練過程
PGI是一種旨在解決深度網(wǎng)絡中的信息瓶頸問題的策略。
在深度網(wǎng)絡的訓練過程中,由于層與層之間的復雜映射,有用的信息可能會逐漸丟失,這會導致梯度信號變?nèi)?,最終影響網(wǎng)絡的學習效率和預測準確性。
-
特征1:輔助可逆分支 - PGI在網(wǎng)絡中引入了一個輔助分支,它與主分支并行運行。
這個輔助分支被設計為可逆的,意味著它可以在不丟失信息的情況下執(zhí)行數(shù)據(jù)的正向和反向傳播。
這有助于在訓練過程中產(chǎn)生更可靠的梯度信號,因為它保證了即使是深層次的特征也能夠保留對目標任務有用的信息。
-
特征2:避免語義損失 - 在深度監(jiān)督方法中,通常將額外的監(jiān)督信號(如分類標簽)插入到網(wǎng)絡的中間層,以促進更深層的特征學習。
然而,這種方法可能會引入語義損失,因為中間層的特征可能無法完全代表數(shù)據(jù)的全部復雜性。
PGI通過其輔助可逆分支的設計來避免這種情況,使得整個網(wǎng)絡能夠在各個層次上保持語義信息的完整性。
PGI框架包括三個組件:主分支、輔助可逆分支和多級輔助信息
- 特征1: 主分支用于推斷,保證無額外推斷成本。
- 特征2: 輔助可逆分支產(chǎn)生可靠梯度,防止信息丟失。
- 特征3: 多級輔助信息整合不同預測頭的梯度信息。
PGI通過輔助可逆分支和多級輔助信息兩條路徑來提供可靠的梯度,并指導主分支學習,形成一個互補和增強的網(wǎng)絡結構。
- 輔助可逆分支作為一個獨立模塊在訓練階段生成可靠梯度,然后在推斷階段被移除,確保了信息的完整性而不增加推斷成本。
- 多級輔助信息作為一個整合網(wǎng)絡,聯(lián)合不同預測頭的梯度,提供全面的信息給主分支。
?
廣義高效層聚合網(wǎng)絡(GELAN):使用GELAN改進架構
GELAN是一個新型的神經(jīng)網(wǎng)絡架構,它結合了多種網(wǎng)絡設計的優(yōu)點,旨在提供一個既輕量又高效的網(wǎng)絡架構。
-
特征1:綜合設計 - GELAN融合了CSPNet和ELAN的設計理念,創(chuàng)建了一個靈活的網(wǎng)絡架構,能夠根據(jù)不同的應用需求和計算資源進行調整。
CSPNet通過分割和合并特征圖來減少冗余計算,而ELAN則使用層聚合來增強特征的表示能力。
-
特征2:計算塊的自由選擇 - 與傳統(tǒng)的深度網(wǎng)絡架構依賴特定類型的計算單元不同,GELAN允許在其框架內(nèi)使用各種類型的計算塊,比如傳統(tǒng)的卷積層、深度可分卷積或者其他類型的新穎計算單元。
這種設計不僅提高了網(wǎng)絡的適應性,也使得GELAN能夠輕松地部署在不同性能的設備上,從高性能服務器到邊緣設備。
這圖是 GELAN(廣義高效層聚合網(wǎng)絡)的架構,并將其與CSPNet和ELAN兩種網(wǎng)絡架構進行了對比。
GELAN是將CSPNet和ELAN的特點結合在一起,并擴展以支持任何計算塊的新型網(wǎng)絡架構。
(a) CSPNet: 這種架構包括一個分裂-合并的過程,它通過在網(wǎng)絡的不同層之間分裂和合并特征來提高性能和效率。
(b) ELAN: 這是一種更進一步的架構,它在CSPNet的基礎上增加了多個卷積層(conv)的堆疊,每個卷積層都會進行特征轉換,之后再進行合并。
? GELAN: 提出的GELAN架構不僅模仿了CSPNet的分裂-合并機制,還擴展了ELAN的設計,使其可以使用任何類型的計算塊,而不僅限于卷積層。
這種設計增加了網(wǎng)絡的靈活性,使其能夠根據(jù)不同的應用需求選擇最合適的計算塊。
圖中的“transition”表示特征轉換層,“split”表示特征分裂操作,“concatenation”表示特征合并操作。
“xn”表示特征的復制或擴展,“module”表示網(wǎng)絡中的可選模塊,“partition”表示特征的分區(qū)。
通過這種方式,GELAN旨在克服以往架構中存在的局限性,如過度依賴卷積層堆疊或者處理復雜任務時的效率問題。
- 融合 CSPNet 的計算效率 和 ELAN 的層聚合策略。
這種設計不僅減少了模型的參數(shù)數(shù)量和計算復雜度,還保持了高水平的準確率和推理速度,使其適用于各種推理設備,從高性能服務器到資源受限的邊緣設備。
此外,GELAN的靈活性允許開發(fā)者根據(jù)特定應用場景的需要,自由選擇和替換不同的計算塊,進一步優(yōu)化模型性能和效率。
?
對比其他解法
除了YOLOv9采用的PGI(可編程梯度信息)和GELAN(廣義高效層聚合網(wǎng)絡)外,還有其他幾種解法。
這圖是關于不同神經(jīng)網(wǎng)絡架構及方法的可視化對比,特別是在處理信息瓶頸和提供輔助信息方面的不同策略。
(a) PAN (Path Aggregation Network): 這種結構通過聚合不同路徑的信息來緩解信息瓶頸問題,但仍然存在信息丟失的問題。
(b) RevCol (Reversible Columns): 這種結構旨在保持信息流的完整性,通過可逆列來避免信息的損失,但代價是計算成本較高。
? 深度監(jiān)督 (Deep Supervision): 這個方法通過在網(wǎng)絡的不同深度層添加預測頭來實現(xiàn)輔助監(jiān)督,這可以幫助網(wǎng)絡學習到多層次的輔助信息,但可能導致信息損壞。
(d) 可編程梯度信息 (PGI): 這是論文提出的新方法,它通過輔助可逆分支產(chǎn)生可靠的梯度,以供主分支使用,從而控制主分支在多個語義層次上的學習,這有助于更好地保留語義信息并優(yōu)化梯度流。
圖中的藍色塊代表神經(jīng)網(wǎng)絡中的層,灰色塊代表預測頭或輔助分支,虛線框高亮了每種方法的關鍵特征。
1. 殘差網(wǎng)絡(ResNet)
-
解決方案: 通過引入殘差連接(Skip Connections)允許信息直接從一層傳遞到后面的多個層,從而減輕了梯度消失問題并保留了更多的信息。
-
對比: 殘差連接是一種簡單有效的方法來維持信息流,但它可能不足以處理所有類型的信息損失,尤其是在非常深的網(wǎng)絡或需要高度復雜特征提取的任務中。
PGI通過輔助可逆分支提供了一種更為動態(tài)和可控的方式來保持關鍵信息,而GELAN則通過靈活的網(wǎng)絡結構設計提供了進一步的優(yōu)化空間。
2. 密集連接網(wǎng)絡(DenseNet)
-
解決方案: 在DenseNet中,每一層都與前面所有層直接相連,這保證了信息在網(wǎng)絡中的自由流動,并減少了信息丟失。
-
對比: DenseNet通過增強特征重用來提高效率和減少參數(shù)數(shù)量,但這種架構的參數(shù)效率和計算效率與GELAN相比可能不那么優(yōu)秀。
GELAN允許更靈活的計算塊使用,可能在特定任務上提供更好的性能和效率。
3. 注意力機制
-
解決方案: 注意力機制可以動態(tài)地聚焦于輸入數(shù)據(jù)的關鍵部分,從而提高網(wǎng)絡對重要信息的敏感性和保留能力。
-
對比: 注意力機制為網(wǎng)絡提供了一種有效的信息篩選和增強方式,可以與PGI和GELAN結合使用,以進一步優(yōu)化信息流和提高模型性能。
它們各自解決信息保留問題的方式不同,可以相互補充。
如在PGI的輔助可逆分支中集成注意力機制,在PGI的輔助可逆分支中引入注意力模塊,如自注意力(Self-Attention)或卷積注意力機制。
幫助模型更加精確地聚焦于輸入特征中對目標任務最重要的部分,從而在生成可靠梯度時保留更多關鍵信息。
如在GELAN網(wǎng)絡中應用注意力增強的計算塊,將注意力機制融入GELAN網(wǎng)絡的計算塊中,例如,使用帶有注意力機制的卷積層(如注意力增強的ResNet塊)作為GELAN的構建模塊。
這樣的設計可以使網(wǎng)絡在處理特征時自動強調更有用的信息,同時抑制不相關的信息。
如結合PGI和GELAN的特性使用注意力機制進行特征融合,在PGI和GELAN的結合框架中,可以在特征融合階段引入注意力機制,特別是在合并來自主分支和輔助可逆分支的特征時。
通過對這些特征進行加權融合,模型可以更好地利用各自的優(yōu)勢,提取出最有價值的信息。
4. 可逆網(wǎng)絡架構
-
解決方案: 一些網(wǎng)絡設計允許前饋和反向傳播過程可逆,確保了信息的完全保留。
-
對比: 可逆網(wǎng)絡架構直接針對信息丟失問題提供了解決方案,而PGI中的輔助可逆分支也采用了類似的思想,但在一個輔助的分支上實現(xiàn),以提高梯度的可靠性和信息的保存。
因為傳統(tǒng)的可逆架構雖然能夠保留完整的輸入信息,但增加了額外的復合層,會導致推斷速度變慢。
GELAN則通過結構上的創(chuàng)新進一步提升了網(wǎng)絡的性能。
5. 特征金字塔網(wǎng)絡(FPN)
-
解決方案: FPN通過構建一個多尺度的特征金字塔來維持在不同尺度上的信息,特別適用于需要捕捉多尺度信息的任務,如對象檢測。
-
對比: FPN專注于通過多尺度表示來保留信息,而PGI和GELAN則通過改進梯度流和網(wǎng)絡架構的方式來綜合解決信息丟失問題,三者可以結合使用,以在不同層面上優(yōu)化信息保留。
如選擇GELAN作為模型的基礎架構,引入FPN進行多尺度特征融合,利用PGI優(yōu)化梯度流和信息保留。
?
效果
表格按照不同的性能指標對模型進行了排名,包括模型參數(shù)數(shù)量、浮點運算次數(shù)(FLOPs)、以及不同IoU閾值下的平均精度(AP)。
這些性能指標是衡量對象檢測器性能的關鍵指標。
- IoU,即交并比,是一個衡量預測邊界框與真實邊界框重疊度的指標。
- AP通常用來評估模型在不同IoU閾值下檢測準確性的平均表現(xiàn)。
- 此外,AP的不同變體(如AP50、AP75等)代表了在不同的IoU閾值(0.50、0.75等)下的性能。
以下是表格的詳細拆解:
- #Param. (M): 模型參數(shù)的數(shù)量,以百萬為單位。這反映了模型的復雜度。
- FLOPs (G): 浮點運算次數(shù),以十億為單位。這是衡量模型計算復雜度的指標。
- AP50% - AP75%: 這些列顯示在IoU閾值為50%和75%時的平均精度(AP),這是評估模型準確度的常用指標。
- AP: 這一列通常表示在所有IoU閾值上平均的AP值。
- APS, APM, APL: 分別代表小尺寸(S)、中尺寸(M)、大尺寸(L)對象的AP值。這說明了模型在不同尺寸對象檢測方面的性能。
表格中展示了多個版本的YOLO(包括YOLOv5、v6、v7、v8和v9),以及其他模型如PPYOLOE、DAMO YOLO、Gold YOLO等。
YOLOv9 在多個性能指標上顯示出了優(yōu)越性,特別是在參數(shù)較少和計算復雜度較低的情況下,仍然保持了高AP值,顯示了其高效率和準確性。
比如其中一列:文章來源:http://www.zghlxwxcb.cn/news/detail-836866.html
- YOLOv9的AP為55.6%
- YOLOv8的AP為52.9%
- YOLOv5的AP為50.0%
結論:文章來源地址http://www.zghlxwxcb.cn/news/detail-836866.html
- YOLOv9 在保持較低參數(shù)數(shù)量和計算復雜度的同時,實現(xiàn)了與其他高性能模型相當或更好的AP值,尤其是在大尺寸對象檢測上(APL)表現(xiàn)出色。
- YOLOv9的性能優(yōu)于其他從頭訓練的模型,在大多數(shù)性能指標上都有明顯提升。
- 這表明YOLOv9是在參數(shù)效率和檢測準確性之間取得了良好平衡的高效檢測模型。
到了這里,關于YOLO v9 思路復現(xiàn) + 全流程優(yōu)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!