一個高階張量搞定整個全卷積網絡

最近的研究表明,雖然過度參數化對成功訓練深度神經網絡至關重要,但也會產生大量冗餘。大量的研究工作利用張量來降低冗餘,提高CNN的效率。但本文作者卻另闢蹊徑,提出了一種利用CNN參數冗餘的新方法,即使用單個高階張量來參數化表示整個CNN。目前,該論文已被接收為CVPR 2019 Poster論文。

對於識別、檢測、語義分割、人體姿勢檢測等富有挑戰性的任務,當前最佳性能通常是通過

卷積神經網絡(CNN)取得的。有證據表明,這些方法成功背後的關鍵特徵是過度參數化(over-parametrization),其有助於找出良好的局部最小值。但與此同時,過度參數化導致大量冗餘,並且從統計學角度看,由於過度參數化增加的參數過多,它或許會阻礙泛化。

近來,大量的研究工作利用張量來降低冗餘,提高CCN的效率,並且多數研究集中於重新確定單層的參數。

本文提出一種利用CNN參數冗餘的新方法,即使用張量方法來聯合參數化整個網絡。

本文從根本上區別於以往的研究方向,即與以往使用不同張量來參數化表示單層不同,本文使用單個高階張量來參數化表示整個CNN。研究人員特別提出以單個高階張量來參數化表示CNN,而單個高階張量的各維數分別表示該網絡的不同架構設計參數。

CVPR 2019 | 一個高階張量搞定整個全卷積網絡

圖1:整體網絡架構。全卷積網絡中的每個塊是都基本塊模塊(內部為藍色的塊),其中包括擁有3 × 3 內核的b_depth 卷積層、BatchNorm和ReLU。

對於此處考慮的具有編碼器-解碼器結構的

全卷積網絡(FCN)(也參見圖1),八維張量的各維數分別表示該網絡的不同架構設計參數,如FCN使用的堆棧數、各網絡的深度值、每一卷積塊(convolutional block)的輸入和輸出特徵數以及每一卷積核的空間維數。

通過單個張量對整個FCN建模,本文提出的方法可以學習不同張量維數(tensor dimension)之間的相關性,因而能夠完全捕捉該網絡的結構。此外,通過將一個低秩結構強加於張量,這種參數化(parametrization)可以隱式地正則化整個網絡,大幅減少參數數量。基於這些屬性,相較於以往研究,本文提出的框架具有更強的通用性和靈活性,也能提供更高的準確率和高壓縮率。

總之,本文的貢獻如下:

研究人員提出以單個高階張量對整個網絡進行張量化,並將其用於捕捉全卷積網絡的豐富結構。本文提出的端到端可訓練方法可以實現廣泛的網絡分解和壓縮率,而後兩者可以針對特殊應用進行選擇和優化。

研究人員指出,對於大範圍壓縮率(高壓縮率和低壓縮率)來說,本文提出的方法保持了高準確性。相較於以往基於單卷積層張量化的研究,該方法能夠持續實現高準確性,特別適用於高壓縮率的情況。此外,研究人員還指出,對於低壓縮率而言,該方法優於原始未壓縮網絡。

研究人員對具有挑戰性的人體姿勢估計進行了大量實驗和控制變量研究,闡明瞭該方法的良好性能。這些實驗揭示了該方法的幾個有趣方面,包括改變各個模式張量的秩所帶來的影響以及所使用的分解方法。研究人員進一步在一個不同的密集預測任務(即面部語義分割)上驗證了他們的結論。

論文:T-Net: Parametrizing Fully Convolutional Nets with a Single High-Order Tensor

CVPR 2019 | 一個高階張量搞定整個全卷積網絡

論文鏈接:https://arxiv.org/pdf/1904.02698.pdf

摘要:最近的研究結果表明,雖然過度參數化對成功訓練深度神經網絡至關重要,但也會產生大量冗餘。張量方法有可能利用這種冗餘有效地參數化過完備(over-complete)表徵。在本文中,研究人員提出以單個高階、低秩張量來完全參數化卷積神經網絡(CNN)。

以往的網絡張量化研究僅集中於參數化單個(卷積或全連接)層,並且逐層單獨執行張量化。與之相反,研究人員提出以單個高階張量來參數化神經網絡,從而共同獲取該神經網絡的完整結構,而單個高階張量的模式表示該網絡的每一個架構設計參數(如卷積塊數量、深度值、堆棧數和輸入特徵數等)。這種參數化可以正則化整個網絡,大幅減少參數數量。

本文提出的模型是施加給權重張量的端到端可訓練和低秩結構,充當隱式正則化。本文研究了具有豐富結構的全卷積網絡(FCN),並提出以單個8階張量對該網絡進行參數化表示。研究人員表明其方法可以通過低壓縮率(small compression rate)實現卓越性能,並且對於富有挑戰性的人體姿勢估計任務,這種方法可以通過微小的準確率下降來實現高壓縮率。

結果

研究人員進行的多數實驗是為了解決人體姿勢估計任務。同時,他們還針對於一項不同的密集預測任務(即人臉分割)進行實驗,進而對一些結論予以驗證。

表2顯示了通過壓縮其中一種模式獲得的準確率(PCKh)和壓縮率、各自對應的HG數量(#hg)、每個HG的深度值(hg_depth)、每個HG的三種路徑(hg_subnet)、每個塊的卷積層數(b_depth)以及每個卷積核的輸入特徵數(f_in)、輸出特徵數(f_out)、高度值(h)和寬度值(w)。

CVPR 2019 | 一個高階張量搞定整個全卷積網絡

表2:人體姿勢估計任務。每種模式下8階權重張量的冗餘性研究。研究人員通過降低每一維度在Tucker張量中的相應秩來對其進行壓縮。報告的準確率以PCKh表示。

基於先前實驗中獲得的見解,研究人員挑選了有前景的配置,並同時對多個維度進行壓縮。之後,研究人員將這些配置與基準和當前最先進的方法相比較。結果如下表(表3)所示:

CVPR 2019 | 一個高階張量搞定整個全卷積網絡

表3:人體姿勢估計任務。T-Net與不同基準和當前最先進方法的比較。準確率以PCKh表示。對於基於張量分解的方法,研究人員展示了秩,對於其他方法,研究人員展示了卷積層中通道的數量。

最後,研究人員挑選了兩種表現最好的模型,並就人臉語義分割任務對這兩種模型進行再訓練。本文提出的方法得出了顯著的壓縮率(達到7x),並且準確率幾乎沒有損失(見表4)。

CVPR 2019 | 一個高階張量搞定整個全卷積網絡

表4:人臉分割任務。一個網絡具有與壓縮網絡相同的架構和特徵數,T-Net與該網絡之間的比較。即使是在高壓縮率下,本文提出的方法依然能夠保持高準確率。


分享到:


相關文章: