微軟亞洲研究院等提出CNN訓練新方法RePr,準確率顯著提升

今天爲大家帶來的論文導讀是由布蘭迪斯大學和微軟亞洲研究院所提出的RePr——專爲卷積神經網絡所設計的訓練方法。該方法通過對濾波器的重要性進行排序,對網絡進行修剪,並迭代訓練完整網絡和子網絡,提升網絡表現和泛化能力。作者設計了充分的ablation study和跨任務網絡實驗,證明了該訓練方法的有效性。這篇論文已被CVPR2019接收爲oral。本文是AI前線第73篇論文導讀。

摘 要

一個訓練良好的卷積神經網絡可以很容易地進行網絡修剪,而不會有明顯的性能損失。這是因爲網絡濾波器捕捉的特徵之間有不必要的重疊。跳躍連接、密集連接,以及Inception單元等網絡結構上的創新都在一定程度上減輕了這個問題,但是這些改進往往伴隨着運行時計算和內存需求的增加。我們試圖從另一個角度來解決這個問題——不再是通過改變網絡的結構,而是通過改變訓練方法。通過暫時修剪,然後恢復模型的濾波器子集,並循環重複此過程,可以減少學習特徵的重疊,從而提升泛化能力。我們發現,現有的模型修剪標準並不是最佳的,因此我們引入濾波器間正交性作爲排序標準,來確定表示能力較弱的濾波器。我們的方法既適用於最簡單的卷積網絡,也適用於當前複雜的網絡結構,提高了網絡在各項任務上的性能。

介 紹

卷積神經網絡(ConvNet)在許多計算機視覺任務中達到了最先進的水平,其成功的主要原因是由於針對特定任務對網絡結構進行了改進。儘管新的網絡結構層出不窮,多種多樣,但是核心的優化方法依然沒有改變。目前的優化方法將網絡權重看作單獨的個體,然後進行獨立更新。卷積神經網絡的濾波器是其基礎單元,但一個濾波器並不是一個單獨的權重參數,而是由一組空間濾波器核組成的。

由於卷積神經網絡模型往往過度參數化(over-parameterized),一個訓練好的模型濾波器通常是冗餘的。因此大部分修剪濾波器的方法都能去掉大量濾波器,而不損失模型的表現。但是對於小型模型,從頭開始訓練的表現也比不過一個大型網絡修剪到和它一樣大小的表現。標準的訓練過程傾向於讓模型有額外的和可修剪的濾波器。這也意味着卷積神經網絡的訓練還有提升的空間。

爲此,我們提出了一種訓練方案,在該方案中,在經過標準訓練的迭代之後,我們選擇一部分濾波器的子集暫時丟棄。在對修剪後網絡進行額外訓練之後,我們重新引入先前丟棄的濾波器,用新的權重初始化,並繼續標準訓練。我們觀察發現,在重新引入丟棄的濾波器之後,該模型能夠達到比修剪之前更高的性能。如圖1,重複這一過程所獲得的模型,其表現超過了由標準訓練產生的模型。我們發現這一提升適用於多種任務和多種卷積神經網絡。

image

圖1 有32個濾波器的三層ConvNet使用標準訓練方法和RePr方法,訓練100個epoch後在CIFAR-10上的分類準確度。陰影區域表示僅有部分網絡訓練。左:訓練準確率,右:測試準確率。(對A-F各點的詳細介紹請參考論文原文第4部分)

除了所提出的新的訓練方法,該論文的第二個貢獻在於提出了衡量濾波器重要性的指標。我們發現即使是參數化不足(under-parameterized)的網絡也會出現學習參數冗餘的情況,說明濾波器冗餘並不只是由於過度參數化,而是由於訓練過程低效所導致的。我們的目標是減少濾波器的冗餘性,增加捲積網絡的表示能力,而我們通過改變訓練方法而不是網絡結構來實現這個目標。

實驗表明,標準的濾波器修剪方法並不能達到最優的效果,我們提出了一種替代的指標,計算效率較高,並且極大的提升了網絡表現。我們基於卷積層內的濾波器正交性提出了一個濾波器丟棄指標Ortho,該指標的效果超過了目前最先進的濾波器重要性排序算法。

正交特徵

如果一個特徵能幫助提升模型的泛化能力,則該特徵是有用的。特徵之間的相關性與網絡的泛化能力和穩定性都密切相關。對於一個泛化能力較差的模型,其特徵在響應空間只能捕捉到有限的方向,即特徵相關性較高。另一方面,如果特徵之間互相正交,這說明他們分別學習到了響應空間的不同方向,則提高了模型的泛化能力。除了表現性能和泛化能力的提升,權重正交還能夠提升網絡訓練的穩定性。爲了降低特徵之間的相關性,人們提出過多種方法。可以通過分析不同層特徵的相關性,然後將特徵進行聚類。或者在損失函數中加入正則項,最小化特徵的協方差。但這些方法或計算複雜度高,或效果提升一般。在RNN中常採用正交初始化,但是該方法並不適用於卷積神經網絡。因此,我們的動機是增強CNN特徵正交性,並且基於此形成濾波器排序指標。

由於直接計算特徵的正交性需要跨訓練集,所以我們通過計算濾波器的權重來代替。我們使用Canonica相關性分析(CCA)來研究特徵在單層內的重疊。研究人員發現大部分卷積神經網絡結構學習到的都是相似的特徵。增加模型深度並不一定能增加模型的維度,因爲不同層學習的特徵也是相關的。但我們關注的是在同一卷積層內不同濾波器特徵的相關性。在過度參數化的網絡中,例如VGG16,好幾層卷積層都含有多達512個濾波器,而這些濾波器的特徵都是高度相關的。因此VGG16是很容易修剪的網絡——超過50%的濾波器都可以被丟棄,而不改變網絡的表現性能。那麼對於很小的卷積網絡這一點還成立嗎?

我們考慮一個簡單的網絡,只有兩層卷積層,每層32個濾波器,網絡最後有一個softmax層。我們在CIFAR-10數據庫上訓練100個epoch,採用學習率衰減,測試準確率僅爲58.2%,遠遠低於VGG-16所達到的93.5%。對於VGG16來說,我們可能會覺得濾波器之間的相關性只是模型過度參數化導致的假象,因爲數據集的維度根本就不需要每個特徵都達到相互正交。但是,小型網絡明顯沒有捕捉到訓練數據的全部特徵空間,因此濾波器之間的相關性均是由於低效的訓練所導致的,而不是過參數化導致的。

給定一個模型,我們可以通過移除某個濾波器,然後計算準確率的下降情況來評估該濾波器對模型的貢獻,即該濾波器的重要性。我們將這種評價濾波器重要性的標準稱爲“greedy Oracle”。我們可視化了每個濾波器的對模型性能的影響,如圖2(右)。

image

圖2:左:兩層卷積網絡特徵的Canonica相關性分析。右:模型每丟棄一個濾波器時準確率的變化分佈。

從圖中可以看出,Layer2的大部分濾波器對網絡性能的影響不足1%。而Layer1中,部分濾波器對準確率的影響達到了4%,但是大部分依然處於1%。這意味着即使是參數不足的網絡也會出現冗餘權重,也可以進行濾波器修剪而不影響模型的整體表現。說明模型沒有有效的分配濾波器去捕捉必要特徵的廣泛表示。圖2左給出了濾波器特徵線性組合的相關性。很明顯這兩層濾波器之間都存在很高的相關性,有的幾乎達到了完全相關(亮黃色)。第二層(右上三角)的特徵重疊率比第一層(左下三角)更高。充分說明了卷積濾波器的標準訓練程序不能最大化網絡的表示能力。

新的訓練方法:RePr

我們提出了新的訓練算法RePr:首先訓練完整網絡,然後移除冗餘濾波器,形成子網絡,再訓練子網絡,隨後將丟棄的濾波器重新初始化,再補充回網絡,重複該過程,完整網絡和子網絡迭代訓練。算法中最重要的部分是用於對濾波器進行排序的指標:層內濾波器正交性(Ortho)。

該算法可以概括爲:重新初始化(Re-initializing)和修剪(Pruning)。訓練算法如下:

image

濾波器排序指標:濾波器間正交性(Ortho)

卷積網絡一層的多個卷積核可以用一個矩陣表示。一個大小爲k x k的濾波器核,可以視爲一個形狀爲k x k x c的3D張量(tensor)。將這個張量平鋪成一個1D矢量f。Wl爲一個矩陣,其中每一行分別爲網絡第l層平鋪的濾波器矢量f。Jl表示在第l層濾波器的數量。

先對矩陣進行歸一化得到

image

然後計算濾波器f在l層內的正交性:

image

其中矩陣Pl是一個大小爲Jl x Jl的矩陣,第i行表示l層內其他濾波器對第i個濾波器的投影。當其他濾波器與該濾波器均正交時,該行的數值之和最小。因此可以通過每行的數值之和對濾波器的重要性進行排序。這個指標的計算是在一層內完成的,但是排序是對所有層的濾波器進行的。目的是不引入過多的超參數,並且避免層與層之間的差異性。我們的方法在較深的層修剪的濾波器要多於較淺層的濾波器。這與濾波器的重要性在網絡中的分佈也相符(圖2)。

消融研究(Ablation study)

修剪標準

我們提出的濾波器重要性排序指標Ortho能否替代greedy Oracle呢?我們通過衡量不同指標與greedy Oracle之間的相關性來回答這個問題。

image

圖3:左:不同指標與greedy Oracle的Pearson相關係數,右:不同評價指標在CIFAR-10上的測試準確率。

不同指標值的相關性表示了該指標能否替代greedy Oracle,除此之外,更重要的是衡量濾波器排序結果的相關性。圖3給出了不同指標與greedy Oracle的相關性圖。圖3右邊的表格給出了不同評價指標在CIFAR-10上的測試準確率。

修剪濾波器比例

訓練方法中很重要的一個參數是每個階段修剪濾波器的比例。它與Dropout參數類似,影響模型的訓練時間和泛化能力。總的來說修剪比例越高,模型表現越好,然而超過30%之後,效果提升不明顯。到50%,模型就需要從丟棄濾波器中進行恢復。超過該數值後,訓練不穩定,有時會出現無法收斂的情況。

image

圖4 左:RePr訓練方法,不同修剪比例對比圖。右:RePr邊緣收益——CIFAR-10的訓練和測試準確率。

RePr迭代次數

實驗發現,每重複一次RePr過程收益都會縮減,因此應該將迭代次數限制在個位數(如圖4右)。

優化器和S1/S2

圖5左給出了使用不同優化器模型準確率的方差。大部分常用的優化器都適用於我們的模型。

image

圖5:左:不同的優化器+RePr訓練方法的模型準確率方差。右:不同S1/S2比值的結果。

S1和S2分別表示訓練完整網絡和子網絡的迭代次數。

學習率

由於SGD使用固定的學習率,通常不能使模型達到最佳表現。而學習率逐漸衰減是目前常用的方法,能夠讓模型的準確率更高。週期性學習率(Cyclical learning rate)給出了更好的效果。圖6對比了我們的訓練方法分別與固定學習率優化器和週期變化學習率結合的效果。我們的訓練方法不會受到學習率變化的影響,與標準訓練方法相比提升依然很明顯。

image

圖6:使用標準訓練方法和RePr訓練的網絡在CIFAR-10數據庫上的測試識別率。左:固定學習率0.1,0.01,0.001。右:週期學習率,週期爲50個epoch,幅度變化爲0.005,起始學習率爲0.001。

Dropout的影響

我們的方法可以視爲一種非隨機的Dropout,專門適用於卷積網絡。Dropout通過鼓勵權重的共適應性來防止過擬合。這對於過度參數化的模型是有效的,但是對於緊湊的或淺層模型,Dropout或許會降低模型本就有限的表示能力。

圖7給出了三層ConvNet在標準訓練和RePr訓練方法中,有Dropout和沒有Dropout的情況對比。我們發現有Dropout和沒有Dropout,我們的方法都提升了模型的表現,說明了我們算法的效果和Dropout是不同的。

image

圖7:網絡測試準確率對比圖。紅色爲標準訓練模式,藍色爲RePr和Oracle評價標準,綠色爲RePr和Ortho評價標準。左:Dropout爲0.5,右:無Dropout。

正交性損失——OL

增加濾波器的正交性作爲損失函數的一部分不會影響模型的表現。損失函數可以表示爲:

image

其中λ是平衡損失項的超參數。我們對λ不同值進行了實驗,λ=0.01時驗證準確率最高,表1給出了λ=0.01的實驗結果。OL指的是增加正交性損失項。

image

表1:標準訓練過程和RePr分別增加正交性損失的模型識別率。

正交性和知識蒸餾

RePr和知識蒸餾(Knowledge Distillation,KD)都是提升模型表現的方法。RePr減少濾波器表示之間的重疊,而KD從更大的網絡中提取信息。我們對比了這兩種方法,並發現二者可以結合,得到更好的效果。

RePr不斷的修剪權重方向重疊最多的濾波器,因此我們希望修剪濾波器的數量隨訓練時間逐漸減少。圖8(左)顯示了三種不同訓練方法下該數值的變化曲線。可以看出RePr訓練方法+Ortho指標的模型濾波器正交性和最低。

image

圖8:濾波器正交性對比,標準訓練、RePr訓練,以及有知識蒸餾和無知識蒸餾。數值越低,說明重疊的濾波器越少。

圖8(右)對比了加入KD之後三種訓練方法的情況,我們發現所有模型的正交性和都增加了。但是RePr+Ortho方法依然在努力降低模型的正交性和,說明KD對模型的提升並不是由於減少了濾波器重疊。因此,使用這兩種方法的模型泛化性更強。如表2所示。

image

表2:知識蒸餾與RePr對比

實驗結果

我們對訓練方法RePr,以及濾波器重要性排序標準Ortho進行了實驗。表3對比了BAN和DSD兩種方法。DSD和RePr(Weights)的作用相似:模型稀疏化,區別在於DSD作用於單獨的權重,而RePr(Weights)作用於整體濾波器。而RePr(Ortho)的表現超過了其他方法,並且訓練更簡單。

image

表3:不同方法的測試誤差對比

與目前的網絡相比,最簡單的卷積網絡在特徵表示的分配上效率更低,因此我們發現RePr+Ortho在簡單卷積網絡上的提升比在更復雜網絡上的提升更大。表4給出了在CIFAR-10和CIFAR-100數據集上的測試誤差。

image

表4:使用標準訓練方法和RePr訓練方法的不同卷積神經網絡在Cifar-10和Cifar-100數據集上的測試誤差。

RePr訓練方法將簡單神經網絡在CIFAR-10數據集上的表現提高了8%,在CIFAR-100數據集上的表現提高了25%。

image

圖9:隨網絡層數變化,使用RePr訓練方法與標準訓練方法準確率提升程度柱狀圖。

image

表5:ImageNet數據集上不同模型Top-1測試誤差。

對於其他使用類似卷積神經網絡的計算機視覺任務,我們的方法也提升了模型的表現。我們以視覺問題回答和目標檢測任務爲例,這兩個任務都需要使用卷積網絡提取特徵,而RePr算法提升了他們的基線結果。

視覺問題回答

視覺問題回答(VQA)是指給模型一張圖片和一個關於圖片的問題,然後模型需要回答該問題。解決這個問題所採用的模型大部分是採用標準ConvNet來提取圖像特徵,然後用LSTM網絡提取文本特徵。實驗中提取圖像特徵的Inception-v1網絡分別採用標準訓練方法和RePr訓練方法。

image

表6:VQA-LSTM-CNN模型在VQAv1數據集上的準確率。

目標檢測

image

表7:分別採用標準訓練方法和RePr(Ortho)方法訓練的ResNet-50和ResNet-100在COCO數據集上的mAP分數。

總 結

這篇論文提出了RePr訓練方法,通過將表達力較差的濾波器進行修剪和再學習,提升模型的表現。由於卷積神經網絡學習到的特徵表示通常是低效的,作者進一步提出了濾波器間正交性標準,對濾波器的重要性進行排序,並應用在RePr的修剪步驟中。實驗結果表明該訓練方法能大幅提升參數不足(under-parameterized)的網絡的表現,確保模型能力的有效分配。對於過參數化(over-parameterized)的網絡結構,所提出的方法也能提升卷積網絡在多個任務上的表現。

查看論文原文:https://arxiv.org/pdf/1811.07275.pdf

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章