
極市導讀
歲末年初,對目標檢測YOLO系列的性能做了個總結,本篇文章主要介紹下2021年YOLO系列的最高精度YOLOR是怎樣煉成的。本篇論文提出了一個統一的網絡來同時編碼顯式知識和隱式知識,在網絡中執行了核空間對齊、預測細化和 多任務學習,同時對多個任務形成統一的表示。>>加入極市CV技術交流群,走在計算機視覺的最前沿

圖表數據來源:
EfficientDet: https://arxiv.org/pdf/2011.08036.pdf
YOLOv3: https://arxiv.org/pdf/2011.08036.pdf
YOLOv4: https://github.com/AlexeyAB/darknet
YOLOv4-Scaled: https://github.com/WongKinYiu/ScaledYOLOv4
YOLO-PPv2: https://arxiv.org/pdf/2104.10419.pdf
YOLOv5: https://arxiv.org/pdf/2104.10419.pdf
YOLOX: https://github.com/Megvii-BaseDetection/YOLOX
YOLOR: https://github.com/WongKinYiu/yolor
YOLOF: https://arxiv.org/pdf/2103.09460.pdf
YOLOS: https://arxiv.org/pdf/2106.00666.pdf
YOLOP: https://arxiv.org/pdf/2108.11250.pdf
圖表統計時間: 2021年11月-12月
歲末年初,對目標檢測YOLO系列的性能做了個總結,本篇文章主要介紹下2021年YOLO系列的最高精度YOLOR是怎樣煉成的。
YOLOR出自論文You Only Learn One Representation: Unified Network for Multiple Tasks,受人類學習方式(使用五官,通過常規和潛意識學習,總結豐富的經驗並編碼存儲,進而處理已知或未知的信息)的啟發,本篇論文提出了一個統一的網絡來同時編碼顯式知識和隱式知識,在網絡中執行了kernel space alignment(核空間對齊)、prediction refinement(預測細化)和 multi-task learning(多任務學習),同時對多個任務形成統一的表示。結果表明神經網絡中引入隱式知識有助於所有任務的性能提升,進一步的分析發現隱式表示之所以能帶來性能提升,是因為其具備了捕獲不同任務的物理意義的能力。
paper: https://arxiv.org/abs/2105.04206
code: https://github.com/WongKinYiu/yolor
論文作者: Kin-Yiu Wong等
一、YOLOR思想動機
如圖1所示,人可以從多個角度來分析同一個目標,然而通常訓練CNN時只給予了一個角度,也就是說針對某一個任務得到的CNN特徵很難適用於其他問題。作者認為造成上述問題的原因主要是模型只提取了神經元特徵而丟棄了隱式知識的學習運用,然而就像人腦一樣隱式知識對分析各種各樣的任務是非常有用的。
人類對隱式知識的學習通常通過潛意識,然而並沒有系統的定義怎樣學習和獲得隱式知識。對於神經網絡而言,一般將淺層特徵定義為顯式知識,深層特徵定義為隱式知識。本文將直接可觀察的知識定義為顯式知識,隱藏在神經網絡中且無法觀察的知識定義為隱式知識。

如圖2所示,本文提出了一個統一的網絡來集成顯式知識和隱式知識,通過學習統一的表達,使得各個子表示能夠適用於不同任務。基於前人工作的理論基礎,本文結合壓縮感知和深度學習來構建統一網絡。
本文主要貢獻如下:
隱式表徵 是與觀察不相關的, 它可以是一個常量tensor 。下面將介 紹隱式知識是如何作為一個常量tensor在多個任務中作用的。
流形空間約簡

一個好的表徵應該能夠在它所屬的流形空間中找到一個合適的投影,並有助於後續目標任務的順利完成。如圖3所示,如果在投影空間中利用超平面能成功地對目標類別進行分類,那將是最好的結果。在圖3所示例子中,可以利用投影向量的內積和隱式表示來達到降低流形空間維度的目的,並有效地完成各種任務。
核空間對齊

在多任務和多頭神經網絡中,核空間不對齊是經常發生的問題,圖4(a)展示了一個多任務多頭神經網絡核空間不對齊的例子。為了解決這個問題,如圖4(b)所示,可以對輸出特徵和隱式表徵進行加法和乘法運算,這樣就可以對核空間進行變換、旋轉和縮放,以對齊神經網絡的每個輸出核空間。該方法廣泛用於多個領域,比如說FPN中大目標與小目標的特徵對齊、知識蒸餾中大模型與小模型的整合、處理zero-shot域遷移等問題。
更多功能和處理方式

除了可以應用於不同任務的功能外,隱式知識還可以擴展為更多的功能。如圖5所示,通過引入加法,可以使神經網絡預測中心坐標的偏移;還可以引入乘法來自動搜索錨框的超參數集,這是基於錨框的目標檢測器經常需要的;此外,可以分別使用點乘和concat來執行多任務特徵選擇並為後續計算設置前提條件。
2.2 隱式知識統一網絡建模本節通過比較卷積網絡和所提的統一網絡,解釋為什麼在訓練多任務網絡中引入隱式知識是重要的,並詳述實現細節。
隱式知識的表示Conventional Networks:

傳統神經網絡可以由以下公式 (1) 表示, 其中 為目標, 為觀測量, 表示神經網 絡操作, 是神經網絡學習的參數, 是誤差項:
minimize .
訓練過程中最小化 , 這表示我們期望同一目標的不同觀測值是 所得到的子空間中的一個 點, 如圖6 (a) 所示。換言之, 我們期望得到的解空間只對當前任務 有區別, 對各種潛在 任務中除 以外的任務是不變的, 其中 。(解釋: 以圖6 (a) 為例, 不同顏色的圓形解空間只對不同顏色的形狀任務 有變化, 比如綠色方形對應綠色圓形, 而 藍色三角形對應結果就變化成了藍色圓形,但是對綠色方形類內的不同觀測值(潛在任務), 如位置的變化, 其對應的解空間是不變的。)
對於更通用的神經網絡, 我們希望獲得的表徵可以服務於其他所有屬於 的任務(既各種潛 在任務), 因此需要鬆弛 , 以便能夠在流形空間上同時找到每個任務的解, 如圖 6 (b) 所 示。然而, 上述要求使得我們不可能用簡單的數學方法, 如一個熱獨向量的最大值或歐氏距離 的閾值來求解 。為了解決這個問題, 我們必須對錯誤項進行建模, 以便為不同的任務找到解 決方案, 如圖6 (c) 所示。
Unified Networks:
為了訓練所提出的統一網絡, 作者將顯式知識和隱式知識結合起來對誤差項進行建模, 然後用 它來指導多用途網絡的訓練過程, 訓練公式如下:
其中 和 分別建模來自觀察量 的顯式誤差和來自隱編碼 的隱式誤差, 這是一個 特定於任務的操作, 用於從顯式知識和隱式知識中組合或選擇信息。有一些現有的方法來整合顯性知識到 ,所以將公式 (2) 重寫為公式 (3) :
其中 表示一些可以融合 和 的操作, 本文所使用的操作包括相加、相乘、concat。如果把誤差項的推導過程推廣到處理多個任務, 可以得到如下等式:
其中

是一個用於不同任務 的隱式潛編碼集合, 是用於從 生 成隱式表徵的參數, 是用來從顯示錶征和隱式表徵的不同組合計算最終的輸出參數。
對於不同的任務, 可以使用以下公式獲得所有 的預測:
對於所有任務, 以一個共同統一的表徵 開始, 然後進入基於任務而不同的隱式表徵 , 最後用任務特定的判別器 完成不同的任務。
隱式知識的建模
本文提出的隱式知識可用圖7所示幾種方式建模:

向量/矩陣/張量
如圖7(a)利用向量/矩陣/張量直接作為隱式知識的先驗,直接作為隱式表示。此時,必須假設每個維度彼此獨立。
神經網絡
如圖7(b)利用向量/矩陣/張量作為隱式知識的先驗,然後利用權重矩陣進行線性或非線性組合形成隱式表示。此時,必須假設每個維度相互依賴。也可以使用更複雜的神經網絡來生成隱式表示。或者用馬爾可夫鏈來模擬不同任務之間隱式表示的相關性。
矩陣分解
如圖7 (c) 利用多個向量/矩陣/張量作為隱式知識的先驗, 這些隱式先驗基 和係數 構成隱式表示。還可以進一步對 進行稀疏約束, 將其轉化為稀疏表示形式。此外, 還可以對 和 施加非負約束, 將它們轉化為非負矩陣分解 形式。
訓練
假設模型沒有任何的先驗隱式知識, 既隱式知識對顯式表示 沒有任何影響。當融合操作為相加和 concat時, 初始化隱式先驗 , 如果融合方式為相乘, 則初始化為 , 其中 是一個接近0的很小的值, 和 都通過反向傳播算法進行訓練更新。
推理
由於隱式知識與觀察量 無關, 無論內隱模型 有多複雜, 在執行推理階段之前, 它都可以被簡化為一組常數張量, 也就是說隱式信息不會影響算法的計算複雜度。當隱式操作是通過相乘進行, 如果後續層是卷積層, 本文使用公式 (9) 進行整合操作; 當操作是相加, 如果前面的層是卷積層且沒有激活函數, 則使用公式 (10) 進行整合。
三、實驗3.1 實驗設置

本文通過FPN中的feature alignment(特徵對齊)、目標檢測中的prediction refinement(預測細化)、單模型中的multi-task learning(多任務學習)來應用implicit knowledge(隱式知識)(註:本文的多任務學習指特徵嵌入、多標籤圖像分類和目標檢測)。使用YOLOV4-CSP作為baseline model,隱式知識添加位置如圖8所示,所有訓練超參數與Scaled-YOLOv4一致。
3.2 FPN特徵對齊使用簡單的向量隱式表徵和加法算子,在FPN的每一個特徵映射層添加隱式知識進行特徵對齊,各個指標獲得到了有意義的提升,如表1所示。
使用簡單的向量隱式表徵和加法算子,在YOLO的每一個輸出層添加隱式知識進行預測細化,大部分指標都獲得到了一定的增益,如表2所示。

圖9展示了隱式表徵的引入如何影響檢測結果(註:論文中對如何影響的檢測結果並麼有做進一步解釋)。

當需要同時訓練一個被多個任務共享的模型時,由於損失函數的聯合優化過程是必須執行的,因此在執行過程中往往會出現多方相互拉動的情況,這種情況將導致最終的整體性能比單獨訓練多個模型然後集成它們要差。為了解決這個問題,作者提出為訓練多任務訓練一個規範的表徵,通過給每個任務分支引入隱式表徵增強表徵能力,表3展示了使用簡單的向量隱式表徵和加法算子進行不同聯合訓練方式的結果,+iJDDE(檢測和特徵嵌入聯合訓練,引入加法隱式表徵)取得了最好的對比結果。


表4顯示了圖10中不同算子融合顯式表徵與隱式表徵的結果。
在特徵對齊實驗中,相加與串聯(concat)操作能夠提升性能表現,相乘有所下降。特徵對齊的實驗結果完全符合其物理特性,因為它必須處理全局偏移和所有單個簇的縮放。
在預測細化實驗中,由於concat會增加輸出維度,所以只比較相加與相乘的效果,在這裡相乘的效果更好。這是由於中心偏移在執行預測時使用加法解碼,而錨框尺度使用乘法解碼,而中心坐標是以網格為界的,影響較小,但人工設置的錨框具有較大的優化空間,因此改進更為顯著。

基於上面的分析,作者設計了另外兩個實驗。在第一個實驗中,作者通過錨框聚類來劃分特徵空間,並執行相乘細化,第二個實驗中,作者只在width和height上執行相乘細化。結果如表5所示,發現經過相應的修改,各項指標都得到了提高。實驗表明,在設計顯式知識與隱式知識的結合時,首先要考慮結合層的物理意義,以達到更好的效果。

本文嘗試了向量、神經網絡和矩陣分解三種建模隱式知識的方式,發現三種建模方式都帶來了不同程度的性能提升,其中矩陣分解效果最好,不同建模隱式知識的潛力也值得進一步挖掘。

如表7和圖11所示,引入隱式知識,僅增加不到萬分一的參數量和計算量,模型性能得到有意義的提升,同時收斂更快。


按照Scaled-YOLOv4訓練過程,先從頭訓練 300 epochs,然後微調150 epochs,表8展示了目標檢測中引入隱式知識的優勢。表9與SOTA方法進行了比較,值得注意的是YOLOR並沒有增加額外的數據和標註做訓練,只通過引入隱式知識的統一網絡,YOLOR不僅達到了足可以和SOTA方法比擬的結果,而且速度非常快。


本文介紹了如何構造一個隱式知識與顯示知識相結合的統一網絡,並通過目標檢測YOLOR證明了它在單模型結構下對多任務學習的有效性。在未來,作者計劃將把訓練擴展到多模型和多任務,如圖12所示。

本文借鑑人學習知識的方式,提出了神經網絡的顯式知識學習和隱式知識學習,視角還是比較新穎的。
隱式知識學習的實現方式巧妙的使用了神經網絡的一些常規操作,但其實現方式是否真正達到了隱式知識學習的構想,雖有一定的實驗論證,但值得更進一步的挖掘探討。
引入隱式知識的YOLOR取得了精度的提升,但論文中提升的精度還是比較有限的,但從其速度翻倍的角度應該也某種程度上體現了所提方法的有效性吧,另外下面這幅對比圖中的精度top3來自github中的實現,還並未體現在論文中,期待作者後續的更多工作。

如果說已經過去的2021年YOLO系列的最強王者是YOLOR,那麼剛剛到來的2022又會出現哪些挑戰者,帶來哪些精彩的工作,是否會有你的身影(致敬YOLO留給變體的命名機會已經不多了),讓我們翹首以盼拭目以待!
如果覺得有用,就請分享到朋友圈吧!
公眾號後台回復「transformer」獲取最新Transformer綜述論文下載~

#CV技術社群邀請函#

備註:姓名-學校/公司-研究方向-城市(如:小極-北大-目標檢測-深圳)
即可申請加入極市目標檢測/圖像分割/工業檢測/人臉/醫學影像/3D/SLAM/自動駕駛/超分辨率/姿態估計/ReID/GAN/圖像增強/OCR/視頻理解等技術交流群
每月大咖直播分享、真實項目需求對接、求職內推、算法競賽、乾貨資訊匯總、與10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發者互動交流~
