YOLOR: 基於多任務的統一網絡


You Only Learn One Representation: 對於多任務的統一網絡

作者:elfin   參考資料來源:YOLOR



Top---Bottom

論文地址:https://arxiv.org/abs/2105.04206

項目地址:https://github.com/WongKinYiu/yolor

摘要

​ 人們通過視覺、聽覺、觸覺以及過去的經驗來“理解”世界。人類的經驗可以通過正常的學習(我們稱之為顯性知識)或潛意識(我們稱之為隱性知識)來學習。這些通過正常學習或潛意識學習到的經驗將被編碼並儲存在大腦中。利用這些豐富的經驗作為一個巨大的數據庫,人類可以有效地處理數據,即使它們是事先看不見的。本文提出了一個統一網絡,將內隱知識和外顯知識編碼在一起,就像人腦可以從正常學習和潛意識學習中學習知識一樣。統一網絡可以生成一個統一的表示,同時服務於各種任務。我們可以在卷積神經網絡中執行核空間對齊、預測精化和多任務學習。結果表明,將內隱知識引入到神經網絡中,有利於所有任務的執行。我們進一步分析了從所提出的統一網絡中學習到的隱式表示,它顯示出很強的捕捉不同任務物理意義的能力。


Top---Bottom

1、介紹

​ 如圖1所示,人類可以從不同的角度分析同一段數據。然而,經過訓練的卷積神經網絡(CNN)模型通常只能實現一個目標。一般來說,從訓練過的CNN中提取出來的特征通常對其他類型的問題適應性較差。造成上述問題的主要原因是我們只從神經元中提取特征,而沒有利用CNN中豐富的內隱知識。在真實人腦運行時,上述隱性知識可以有效地輔助大腦完成各種任務。

​ 隱性知識是指在潛意識中學習到的知識。然而,對於內隱學習如何運作以及如何獲得隱性知識,目前還沒有一個系統的定義。在神經網絡的一般定義中,從淺層獲得的特征通常稱為顯式知識,從深層獲得的特征稱為隱式知識。本文將與觀察直接對應的知識稱為顯性知識。對於模型中隱含的與觀察無關的知識,我們稱之為隱性知識。

​ 我們提出了一個統一的網絡來整合隱式知識和顯式知識,使學習模型包含一個通用的表示,這個通用的表示使得子表示適合於各種任務。圖2(c)說明了擬議的統一網絡體系結構。

​ 構建上述統一網絡的方法是將壓縮感知和深度學習結合起來,主要的理論基礎可以在我們之前的工作中找到[16,17,18]。在[16]中,我們證明了用擴展字典重構殘差的有效性。在[17,18]中,我們使用稀疏編碼來重建CNN的特征圖,使其更具魯棒性。這項工作的貢獻總結如下

  • 我們提出了一個能夠完成各種任務的統一網絡,它通過整合隱式知識和顯式知識來學習一個通用表示,通過這個通用表示可以完成各種任務。所提出的網絡有效地提高了模型的性能,只需很小的額外成本(不到參數和計算量的1萬)。
  • 將kernel空間對齊、預測修正和多任務學習引入到內隱知識學習過程中,驗證了它們的有效性。
  • 分別討論了利用向量、神經網絡、矩陣分解等工具對隱含知識進行建模的方法,並驗證了其有效性。
  • 我們證實了所提出的內隱表征學習方法能夠准確地對應於特定的物理特征,並且我們還以視覺的方式呈現了它。我們還證實,如果算子符合目標的物理意義,它可以用來整合內隱知識和外顯知識,並會產生乘法效應。
  • 結合最新的方法,我們提出的統一網絡在目標檢測方面達到了與Scaled-YOLOv4-P7[15]相當的精度,推理速度提高了88%。

Top---Bottom

2、相關工作

我們對這一研究課題的相關文獻進行了綜述。本文的文獻綜述主要分為三個方面:

  • 外顯深度學習:它將涵蓋一些基於輸入數據自動調整或選擇特征的方法;

  • 內隱深度學習:它將涵蓋內隱深度知識學習和內隱微分導數的相關文獻;

  • 知識建模:列舉了幾種可以用來整合內隱知識和外顯知識的方法。

2.1 外顯深度學習

​ 外顯深度學習可以通過以下方式進行。其中Transformer[14,5,20]是一種方式,它主要使用查詢、鍵或值來獲得自我關注。非局域網絡[21,4,24]是另一種獲取注意力的方式,它主要在時間和空間上提取成對的注意力。另一種常用的顯式深度學習方法[7,25]是通過輸入數據自動選擇合適的內核。

2.2 內隱深度學習

​ 屬於內隱深度學習范疇的方法主要有內隱神經表征[11]和深度均衡模型[2,3,19]。前者主要是獲得離散輸入的參數化連續映射表示,以執行不同的任務;后者是將隱式學習轉化為殘差形式的神經網絡,並對其進行平衡點計算。

2.3 知識模型

​ 對於屬於知識建模范疇的方法,主要包括稀疏表示[1,23]和記憶網絡[22,12]。前者使用樣例、預定義過完備或學習詞典進行建模,后者則依賴於多種嵌入形式的結合來形成內存,使內存能夠動態地添加或更改。


Top---Bottom

3、如何讓內隱知識工作?

​ 本研究的主要目的是建立一個能夠有效訓練內隱知識的統一網絡,因此在后續的研究中,我們首先將重點放在如何訓練內隱知識和快速推理上。由於隱式表示\(z_{i}\)與觀測無關,我們可以把它看作一組常數張量\(Z=\{z_{1},z_{2},\cdots,z_{k}\}\)。在本節中,我們將介紹作為常量張量的內隱知識如何應用於各種任務。

3.1 多維空間降維

​ 我們認為,一個好的表征應該能夠在它所屬的多維空間中找到一個合適的投影,並有助於后續目標任務的順利完成。例如,如圖3所示,如果目標類別可以通過投影空間中的超平面成功分類,那將是最好的結果。在上面的例子中,我們可以利用投影向量的內積和隱式表示來達到降低流形空間維數的目的,有效地完成各種任務。

3.2 內核空間對齊

​ 在多任務和多頭神經網絡中,核空間失調是一個常見的問題,圖4(a)舉例說明了多任務和多頭神經網絡中的核空間失調。為了解決這個問題,我們可以對輸出特征和隱式表示進行加法和乘法,這樣就可以對核空間進行平移、旋轉和縮放,以對齊神經網絡的每個輸出核空間,如圖4(b)所示。上述操作模式可廣泛應用於不同領域,如特征金字塔網絡(FPN)[8]中大對象與小對象的特征對齊、利用知識提煉來集成大模型與小模型、零例域轉移的變換等問題。


Top---Bottom

3.3 更多的功能

​ 除了可以應用於不同任務的功能外,內隱知識還可以擴展為更多的功能。如圖5所示,通過引入加法,可以使神經網絡預測中心坐標的偏移量。還可以引入乘法來自動搜索錨點的超參數集,這是基於anchor的目標檢測經常需要的。此外,點乘法和串聯可分別用於執行多任務特征選擇和為后續計算設置前提條件。


Top---Bottom

4、統一網絡的內隱知識

​ 在本節中,我們將比較傳統網絡和提出的統一網絡的目標函數,並解釋為什么引入隱含知識對訓練多用途網絡很重要。同時,我們還將詳細闡述本文提出的方法。

4.1 內隱知識的公式

4.1.1 卷積網絡

​ 對於卷積網絡的目標函數,如下:

\[\underset{\text{minimize}\ \varepsilon}{y}=f_{\theta}\left( \textbf{X}\right)+\varepsilon \]

卷積網絡訓練,即最小化誤差\(\varepsilon\),使卷積網絡盡可能貼近真實數據 \(y\)。如圖6(a)所示,我們需要對同一標注有不同的樣本,以獲取數據的豐度。換句話說,我們期望得到的解空間僅對當前任務\(t_{i}\)是有區別的,並且對各種潛在任務中除\(t_{i}\)以外的任務是不變的,其中\(T=\left \{ t_{1},\cdots ,t_{n} \right \}\)

​ 對於一般用途的神經網絡,我們希望所得到的表示能服務於\(T\)。因此,我們需要放松\(\varepsilon\),以便在流形空間上同時找到每個任務的解,如圖6(b)所示。然而,上述要求使得我們不可能用簡單的數學方法,如一個one-hot向量的最大值或歐氏距離的閾值來求解\(t_{i}\)。為了解決這個問題,我們必須對錯誤項\(\varepsilon\)進行建模,以便為不同的任務找到解決方案,如圖6(c)所示。


Top---Bottom

4.1.2 統一網絡

​ 為了訓練所提出的統一網絡,我們將顯式知識和隱式知識結合起來對誤差項進行建模,然后用它來指導多用途網絡的訓練過程。相應的訓練公式如下:

\[y=f_{\theta}\left( \textbf{x}\right)+\varepsilon + g_{\phi }\left ( \epsilon_{ex} \left ( \textbf{x} \right ), \epsilon_{im} \left ( \textbf{z} \right ) \right ) \\ \text{minimize} \quad \epsilon + g_{\phi }\left ( \epsilon_{ex} \left ( \textbf{x} \right ), \epsilon_{im} \left ( \textbf{z} \right ) \right ) \]

其中\(\epsilon_{ex}\)\(\epsilon_{im}\)是分別對觀測值\(\textbf{X}\)和潛在代碼\(\textbf{Z}\)的顯式誤差和隱式誤差進行建模的運算。\(g_{\phi}\)這里是一個特定於任務的操作,用於從顯性知識和隱性知識中組合或選擇信息。

​ 已有的將顯式知識整合到\(f_{θ}\)的方法,可以將(2)改寫為(3)。

\[y = f_{\theta}\left( \textbf{x}\right) \star g_{\phi}\left( \textbf{z}\right) \]

其中\(\star\)表示了\(f\)\(g\)之間的可能操作。在這項工作中,將使用第3節中介紹的運算符,即加法、乘法和級聯。

​ 如果我們把誤差項的推導過程擴展到處理多個任務,我們可以得到如下公式:

\[F\left ( \textbf{x},\theta, \textbf{Z} ,\Phi ,Y,\Psi \right )=0 \]

其中,\(\textbf{Z}=\left \{ \textbf{z}_{1},\textbf{z}_{2},\cdots ,\textbf{z}_{T} \right \}\)是不同任務的隱式代碼,\(\Phi\)是用於從\(\textbf{Z}\)生成內隱知識表示的參數,\(\Psi\)用於從顯式表示和隱式表示的不同組合中計算最終輸出參數。

​ 對於不同的任務 ,我們可以使用下面的公式獲得預測:

\[d_{\Psi }\left ( f_{\theta }\left ( \textbf{x} \right ), g_{\Phi }\left ( \textbf{z} \right ), y \right )=0 \]

對於所有的任務我們都從一個統一表示\(f_{\theta }\left ( \textbf{x} \right )\),完成特定任務的隱式表示\(g_{\Phi }\left ( \textbf{z} \right )\)開始,最后用任務識別器\(d_{\Psi }\)完成不同的任務。


Top---Bottom

4.2 內隱知識建模

我們提出的隱性知識可以通過以下方式建模:

4.2.1 Vector / Matrix / Tensor

\[\textbf{z} \]

向量\(\textbf{z}\)直接作為內隱知識的先驗,直接作為隱式表示。此時,必須假設每個維度彼此獨立。

4.2.2 神經網絡

\[\textbf{Wz} \]

​ 利用向量z作為隱式知識的先驗,然后利用權矩陣W進行線性組合或非線性化,成為隱式表示。此時,必須假設每個維度相互依賴。我們也可以使用更復雜的神經網絡來生成隱式表示。或者用馬爾可夫鏈來模擬不同任務間隱式表示的相關性。

4.2.3 矩陣分解

\[\textbf{Z}^{T}\textbf{c} \]

​ 利用多個向量作為隱式知識的先驗,這些隱式先驗基\(\textbf{Z}\)和系數\(\textbf{c}\)構成隱式表示。我們還可以進一步對\(\textbf{c}\)進行稀疏約束,並將其轉化為稀疏表示形式。此外,我們還可以對\(\textbf{Z}\)\(\textbf{c}\)施加非負約束,將它們轉化為非負矩陣分解(NMF)形式。


Top---Bottom

4.3 訓練

​ 假設我們的模型在開始時沒有任何先驗的隱式知識,也就是說,它不會對\(f_{\theta}\left( \textbf{x} \right)\)的顯式表示產生任何影響。當操作\(\star \in \left\{ addition,\ concatenation \right\}\),我們設置內隱知識服從\(\textbf{z} \sim N\left( 0, \ \sigma \right)\);當操作是乘法時,\(\textbf{z} \sim N\left( 1, \ \sigma \right)\)。這里的標准差是一個非常接近零的數。對於\(\textbf{z}\)\(\phi\),在訓練過程中均采用反向傳播算法進行訓練。


Top---Bottom

4.4 推理

​ 由於隱式知識與觀測值\(\textbf{x}\)無關,因此無論隱式模型\(g_{\phi}\)有多復雜,都可以在推理階段開始前將其化為一組常數張量。換句話說,隱式信息的形成對算法的計算復雜度幾乎沒有影響。另外,當上面的運算是乘法時,如果后面的層是一個卷積層,那么我們用下面的(9)來積分。當遇到加法運算符時,如果前一層是卷積層並且沒有激活函數,則使用下面所示的(10)進行積分。

\[\textbf{x}_{(l+1)}=\sigma \left( W_{l} \left( g_{\phi} \left( \textbf{z} \right) \textbf{x}_{l} \right) + b_{l} \right)\\ =\sigma \left( {W}'_{l} \left( \textbf{x}_{l} \right) + b_{l} \right) \]

其中,\({W}'_{l}=W_{l} g_{\phi} \left( \textbf{z} \right)\)

\[\textbf{x}_{(l+1)}= W_{l} \left( \textbf{x}_{l} \right) + b_{l} + g_{\phi} \left( \textbf{z} \right)\\ = W_{l} \left( \textbf{x}_{l} \right) + {b}'_{l} \]

其中,\({b}'_{l}=b_{l} + g_{\phi} \left( \textbf{z} \right)\)


Top---Bottom


Top---Bottom

完!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM