CVPR 2019 | 一個高階張量搞定整個全卷積網路
選自arXiv
作者:餘凌凡、王敏捷、趙俊博、李金揚、張崢
參與:杜偉、張倩
最近的研究表明,雖然過度引數化對成功訓練深度神經網路至關重要,但也會產生大量冗餘。大量的研究工作利用張量來降低冗餘,提高CNN的效率。但本文作者卻另闢蹊徑,提出了一種利用CNN引數冗餘的新方法,即使用單個高階張量來引數化表示整個CNN。目前,該論文已被接收為CVPR 2019 Poster論文。
對於識別、檢測、語義分割、人體姿勢檢測等富有挑戰性的任務,當前最佳效能通常是通過卷積神經網路(CNN)取得的。有證據表明,這些方法成功背後的關鍵特徵是過度引數化(over-parametrization),其有助於找出良好的區域性最小值。但與此同時,過度引數化導致大量冗餘,並且從統計學角度看,由於過度引數化增加的引數過多,它或許會阻礙泛化。
近來,大量的研究工作利用張量來降低冗餘,提高CCN的效率,並且多數研究集中於重新確定單層的引數。
本文提出一種利用CNN引數冗餘的新方法,即使用張量方法來聯合引數化整個網路。
本文從根本上區別於以往的研究方向,即與以往使用不同張量來引數化表示單層不同,本文使用單個高階張量來引數化表示整個CNN。研究人員特別提出以單個高階張量來引數化表示CNN,而單個高階張量的各維數分別表示該網路的不同架構設計引數。
圖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
論文連結: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)。
表2:人體姿勢估計任務。每種模式下8階權重張量的冗餘性研究。研究人員通過降低每一維度在Tucker張量中的相應秩來對其進行壓縮。報告的準確率以PCKh表示。
基於先前實驗中獲得的見解,研究人員挑選了有前景的配置,並同時對多個維度進行壓縮。之後,研究人員將這些配置與基準和當前最先進的方法相比較。結果如下表(表3)所示:
表3:人體姿勢估計任務。T-Net與不同基準和當前最先進方法的比較。準確率以PCKh表示。對於基於張量分解的方法,研究人員展示了秩,對於其他方法,研究人員展示了卷積層中通道的數量。
最後,研究人員挑選了兩種表現最好的模型,並就人臉語義分割任務對這兩種模型進行再訓練。本文提出的方法得出了顯著的壓縮率(達到7x),並且準確率幾乎沒有損失(見表4)。
表4:人臉分割任務。一個網路具有與壓縮網路相同的架構和特徵數,T-Net與該網路之間的比較。即使是在高壓縮率下,本文提出的方法依然能夠保持高準確率。