神經網絡的濾波器嫁接技術 Filter Grafting for Deep Neural Networks

本文提出了一種新的學習範式-濾波器嫁接,旨在提高深神經網絡(DNNs)的表示能力。其動機是dnn具有不重要(無效)的過濾器(例如,l1範數接近0)。這些過濾器限制了dnn的潛力,因爲它們被認爲對網絡幾乎沒有影響。爲了提高效率,過濾修剪去除了這些無效的過濾器,而過濾嫁接則從提高精度的角度重新激活它們。通過將外部信息(權重)嫁接到無效的過濾器中來處理激活。爲了更好地執行嫁接過程,我們提出了一種基於熵的準則來測量濾波器的信息量,並提出了一種自適應加權策略來平衡網絡間的嫁接信息。嫁接操作後,網絡中的無效濾波器與未觸及狀態相比非常少,使得模型具有更大的表示能力。我們還對分類和識別任務進行了大量的實驗,以證明我們的方法的優越性。例如,在CIFAR-100數據集上,嫁接的Mo bileNetV2的性能比未嫁接的Mo-bileNetV2高出約7%。代碼可以在https://github.com/fxmeng/filter-graphy.git上找到。

自從Krizhevsky等人。[7] 在2012年ImageNet競賽中取得突破[16],研究人員在探索DNN的各種體系結構方面取得了重大進展(Simonyan&Zisserman[18];Szegedy等人。[20] ;他等。[4] ;Lu等人。[12,11])。DNNs逐漸成爲計算機視覺[7,10]、語音識別[2]和語言處理[24]等領域非常流行和強大的模型。然而,最近的研究表明dnn具有無效的(不重要的)過濾器[9]。這些濾波器被認爲對輸出精度影響很小。去除某些濾波器可以在不影響性能的前提下加速DNNs的推理。這一發現啓發了許多研究如何確定哪些濾波器是唯一的[13]以及如何有效地去除性能下降可容忍的濾波器[29,19]。
然而,目前尚不清楚直接放棄此類過濾器和組件是否是最佳選擇。如果這種傳統的無效過濾器在某些方面確實有用呢?類似boosting這樣的集成學習也發生了同樣的情況,在這種情況下,雖然單個弱分類器性能較差,但它們的組合和再訓練可能會打開通向最佳性能的大門。此外,考慮到多個網絡,還不清楚一個網絡能否從其他網絡中學習。在這篇文章中,我們探討了通過引入外部信息來重新激活一個網絡中的有效過濾器的可能性。這是通過提出一種新的濾波器嫁接方案來實現的,如圖1所示。濾波器嫁接不同於濾波器修剪,因爲我們通過分配新的權重來重新激活濾波器,從而保持每一層中的層數和濾波器數相同。由於網絡中處理信息的有效濾波器較多,因此嫁接網絡具有更高的表示能力。
過濾嫁接的關鍵步驟是選擇合適的信息源(即我們應該從哪裏移植信息)。本文對這一問題進行了深入的研究,認爲我們應該從外部(其他網絡)而不是內部(自網絡)移植信息。一般來說,我們可以同時訓練幾個網絡。在特定時期的訓練中,我們將一個網絡的有意義的過濾器移植到另一個網絡的無效過濾器中。通過執行嫁接,每個網絡可以從其他網絡學習外部信息。詳情見第3節。
本文的主要貢獻有三點:

•我們提出了一種新的學習範式,稱爲DNNs的過濾嫁接。嫁接可以在不改變網絡結構的情況下,重新激活有效的濾波器以提高DNNs的潛力。
•提出了一種基於熵的準則和一種自適應加權策略,以進一步提高濾波器嫁接方法的性能。
•我們對分類和識別任務進行了廣泛的實驗,結果表明嫁接可以顯著提高DNNs的性能。例如,移植的MobileNetV2在CIFAR-100上的準確率達到78.32%,比未移植的MobileNetV2高出約7%。

2。相關工作
過濾修剪。

過濾剪枝的目的是去除無效的過濾以加速網絡的推理。[9] 首先利用l1範數準則剪除不重要的濾波器。從那時起,更多的標準來衡量過濾器的重要性。[29]利用光譜聚類來決定需要移除哪個濾波器。[19] 提出了一種新的數據驅動方法,該方法利用主成分分析(PCA)來確定應保留能量的比例。[21]將子空間聚類應用於特徵映射以消除卷積濾波器中的冗餘。而不是放棄無效的過濾器,菲爾特嫁接打算激活它們。值得注意的是,儘管過濾嫁接的動機與修剪相反,但嫁接仍然需要選擇適當的標準來決定哪些過濾器不重要。因此,不同的修剪方法很容易用於嫁接。
蒸餾和相互學習。

嫁接可以並行地訓練多個網絡。因此,這個過程類似於蒸餾[6]和相互學習[25]。嫁接和蒸餾的區別在於,蒸餾是一個“兩階段”的過程。首先,我們需要訓練一個大的模型(教師),然後使用訓練的模型來教一個小的模型(學生)。雖然嫁接是一個“一個階段”的過程,但我們在訓練過程中移植參數。相互學習與嫁接的區別在於,相互學習需要相互損失來監督每個網絡的學習,而不能很好地推廣到多個網絡。當我們在訓練過程中加入更多的網絡時,嫁接不需要有監督的損失,並且表現得更好。同時,我們在每一個階段而不是每一次迭代中移植權重,從而大大降低了網絡間的通信成本。

RePr。

RePr[14]類似於我們考慮在過濾級別上改進網絡的工作。然而,RePr的動機是在網絡過濾器捕獲的特徵中存在不必要的重疊。RePr首先對重疊濾波器進行剪枝以訓練子網絡,然後恢復剪枝濾波器並重新訓練整個網絡。從這個意義上講,RePr是一種多階段的訓練算法。相比之下,濾波器嫁接的動機是l1範數較小的濾波器對網絡輸出的貢獻較小。因此,每個方法操作的過濾器是不同的。嫁接也是一種更有效的一步訓練算法。爲了更好地說明嫁接與上述學習類型的區別。我們在表1中畫一張桌子。從表1可以看出,濾波器嫁接是一種單階段學習方法,不需要改變網絡結構,也不需要監督損失。

 

 

 

3.過濾嫁接

本節安排如下:在第3.1節中,我們研究了嫁接過程中所需信息的來源;在第3.2節中,我們提出了計算濾波器信息的兩個準則;在第3.3節中,我們討論瞭如何有效地利用嫁接信息;在第3.4節中,我們將嫁接方法擴展到多個網絡,並提出了最終基於熵的嫁接算法。

3.1。嫁接信息源
另一方面,我們將原始的無效過濾器稱爲“砧木”,將有意義的過濾器或信息稱爲“接穗”,這與植物學對嫁接的解釋是一致的。過濾嫁接是將信息(權重)從接穗傳遞到砧木上,因此選擇有用的信息對嫁接至關重要。本文提出了三種獲得接穗的方法。
3.1.1接穗噪音
一種簡單的方法是將高斯噪聲N(0,σt)移植到無效濾波器中,因爲高斯噪聲通常用於DNNs的權值初始化[8,3]。嫁接前,無效濾波器的l1範數較小,對輸出的影響較小。但嫁接後,無效濾波器的l1範數變大,對DNNs的影響也越來越大。

σt =at(0<a<1) (1)

我們還讓σt隨時間而減小(見(1)),因爲大量的噪聲可能使模型更難收斂。

3.1.2作爲接穗的內部過濾器
在無效濾波器(l1範數較小)中加入其它濾波器(l1範數較大)的權重,而不是加入隨機噪聲。嫁接是在一個網絡內進行的。具體來說,對於每一層,我們根據l1範數對濾波器進行排序,並設置閾值γ。對於l1範數小於γ的濾波器,我們將這些濾波器視爲無效濾波器。然後將第i大濾波器的權值嫁接到第i小濾波器中。這個過程如圖2所示。

 

 

 

 

     圖2。嫁接內部過濾器。首先根據l1範數對濾波器進行排序,然後將l1範數較大的濾波器的權值嫁接到l1範數較小的濾波器中。(最好用彩色觀看)

由於無效濾波器具有新的l1範數較大的權重,因此可以激活它們以對輸出產生較大的影響。但是這種方法並沒有給網絡帶來新的信息,因爲權值是在自網絡中嫁接的。我們通過信息語言理論對其進行了進一步的評價。爲了簡化證明過程,我們在網絡的某一層處理兩個濾波器(見定理1,證明可在補充材料中找到)。根據定理1,選擇內部濾波器作爲接穗不會帶來新的信息。第4.1節的實驗也與我們的分析相符。
定理1假設網絡的某一層有兩個濾波器,分別表示爲隨機變量X和Y。Z是另一個滿足Z=X+Y的變量,然後H(X,Y)=H(X,Z)=H(Y,Z),其中H表示信息論中的熵。

3.1.3作爲接穗的外部過濾器
針對在單個網絡中加入隨機噪聲和權值的缺點,我們從其他網絡中選擇外部濾波器作爲接穗。具體來說,我們可以並行地訓練兩個網絡,即M1和M2。在特定時期的訓練中,我們將M1的有效濾波器權值移植到M2的無效濾波器中。與第3.1.2節中的嫁接過程相比,我們做了兩個修改:
•嫁接是在層一級進行的,而不是在膜一級進行的,這意味着我們將M1中某一層中的所有濾光片的重量嫁接到M2中的同一層中(也將M2反向地嫁接到M1中)。由於兩個網絡使用不同的權值初始化,因此無效濾波器的位置在統計上是不同的,只有將信息移植到一個層中的部分濾波器中可能會破壞層一致性(參見補充材料中的更多分析和實驗結果)。通過嫁接,兩個網絡的無效濾波器可以互相學習信息。

 

 

兩個網絡的嫁接過程如圖所示-
第3題。從等式(2)和圖3中,有兩個鍵
嫁接要點:1)如何計算
W M1和W M2;2)如何確定加權係數ii
α. 我們在第3.2節和第3.3節中深入研究了這兩個問題。同時,我們希望增加兩個網絡的多樣性,從而使兩個網絡的初始化不同,並且兩個網絡的一些超參數也不同(例如,學習率、數據採樣順序……)。值得注意的是,當在兩個網絡上執行嫁接算法時,兩個網絡在從(2)開始的嫁接過程之後具有相同的權重。但嫁接只在每個時期進行。對於其他迭代步驟,由於兩個網絡是用不同的超參數來學習的,所以它們的權重是不同的。另外,當我們在嫁接算法中加入更多的網絡(N>2)時,這個問題就消失了。可在第3.4節中找到多個網絡嫁接。

 

 

 

 

3.2。纖維層信息計算準則
在這一部分中,我們研究了兩個準則來計算濾波器或層的信息。
3.2.1 L1規範
在前面的章節中,我們使用l1範數來度量過濾器的信息。表示Wi,j∈RNi×K×K爲第i卷積層中第j個濾波器的權重,其中Ni爲第i層中濾波器的數目。其l1規範可通過以下方式來表示:

 

 

 

l1範數準則在許多研究中被廣泛使用[9,23,22]。但最近的研究表明,較小的規範不太重要的標準並不總是正確的。一個特殊的情況是,0-1個規則排列的過濾器比所有1個過濾器都好。[5] 同時指出,利用這一小范數不太重要的準則有一些先決條件。另一方面,修剪可能會損害有效的過濾器。

3.2.2熵
l1範數準則只關注濾波器權值的絕對值,而我們更關注權值的變化。l1範數準則的一個問題是l1範數忽略了權重的變化。假設一個濾波器的權重Wi,j∈RNi×K×K滿足Wi,j(n,k1,k2)=a,對於每個n∈{1,…,Ni}和k1,k2∈{1,…,K},Wi,j中的每個單值都是相同的。因此,當使用Wi,j對輸入進行卷積運算時,即使a很大,輸入的每個部分對輸出的貢獻也是相等的。因此,濾波器不能區分哪個部分的輸入更重要。基於以上分析,我們選擇測量weight的變化。我們假設Wi,j的每個值都是從隨機變量X的分佈中抽取的,並用熵來度量分佈。假設分佈滿足P(X=a)=1,則Wi,j中的每個單值相同,熵爲0。在計算連續分佈的熵比較困難的情況下,我們遵循了文獻[17,1]中的策略。我們首先將連續分佈轉化爲離散分佈。具體來說,我們將值的範圍劃分爲m個不同的容器,並計算每個容器的概率。最後,變量的熵可以計算如下:

3.3。嫁接中的自適應加權
在這一部分中,我們提出了一種自適應加權策略

 

 

 

 

 

 

 

 

 

 

3.4條。擴展到多個網絡的嫁接方法可以很容易地擴展到多個網絡的情況,如圖5所示。在訓練的每個階段,每個網絡Mk接受來自Mk-1的信息。經過一定的訓練階段,每個網絡都包含來自所有其他網絡的信息。並自適應地計算了加權係數。在4.5節中,我們發現通過使用嫁接來訓練多個網絡,每個網絡都獲得了很大的性能增益。我們在算法1中提出了基於熵的嫁接。值得注意的是,嫁接是在多個網絡上並行執行的,這意味着當我們使用WMk-1更新WMk時,ll WMk-1尚未通過嫁接進行更新。

四。實驗
本節安排如下:在第4.1節中,我們考察了不同信息源對嫁接方法的影響;在第4.2節中,我們證明基於熵的嫁接優於基於l1範數的嫁接;在第4.3節中,我們分析了進行嫁接時的訓練多樣性;在第4.4節中,我們將嫁接與其他學習方法進行了比較;在第4.5節中,我們展示了通過使用多個網絡,嫁接可以極大地提高網絡的性能;在第4.6節和第4.7節中,我們檢驗了在閉集分類和開集識別任務上的嫁接;在第4.8節中,我們進一步分析了嫁接算法的有效性。所有的實驗都是可重複的。該代碼可根據需要提供,並將在線發佈。

我們在第3節中提出了三種獲得scion的方法,並在表2中對CIFAR-10和CIFAR-100數據集上的三種方法進行了實驗檢驗。以無嫁接的DNN訓練爲基線。所有的方法都使用MobileNetV2作爲基礎模型。爲了進行公平的比較,每個方法都部署了相同的超參數:mini batch size(256)、optimizer(SGD)、initial learning rate(0.1)、momentum(0.9)、weight decay(0.0005)、number of epochs(200)、learning rate decay(0.1 at per 60 epochs)。這裏的“外部”包括並行訓練兩個網絡。在實踐中,我們發現每個網絡在“外部”方法中的性能是非常接近的。因此在重新維護時,我們總是記錄第一個網絡的性能。

從表2可以看出,“內部接穗”的性能類似於“噪聲”,因爲我們在定理1中證明了選擇內部濾波器作爲接穗不會給網絡帶來新的信息。選擇外部濾波器作爲接穗,在三種方法中效果最好。在嫁接過程中,所有的嫁接試驗都選擇外部濾子作爲接穗。

4.2。比較L1範數和熵準則,我們在第3.2節中提出了兩個衡量濾波器固有信息的準則。在這一部分中,我們基於CIFAR-10和CIFAR-100數據集對l1範數嫁接和熵嫁接進行了定量評估。結果見表3。兩個網絡用於嫁接,具有相同的模型結構和訓練超參數。從表3可以看出,基於熵的嫁接在每個模型和數據集設置上都優於基於l1範數的嫁接。

4.3。嫁接中訓練多樣性的評估我們發現,當我們增加兩個網絡的訓練多樣性時,性能會提高。由於嫁接是在模型之間傳遞權重,因此如果外部信息(權重)有更多的變化,則網絡可以更好地學習。爲了達到這一目的,我們可以多樣化的超參數設置(採樣順序和學習率在我們的情況下)看看這些因素如何影響嫁接性能。結果見表4。在不同的LR情況下,爲每個模型設置了具有不同初始學習率的餘弦退火LR調度(這確保了在每個步驟中,每個模型的學習率是不同的)。我們發現,抽樣順序和學習率帶來的權重變化豐富了嫁接信息,從而鼓勵模型更好地學習。另一方面,在進行嫁接時,所有網絡在數據裝載器和學習率方面使用不同的超參數。

4.4。嫁接與其它方法的比較
我們在表1中深入研究了嫁接和其他學習方法的區別。在這一部分中,我們對錶5中的CIFAR-10和CIFAR-100數據集的嫁接與其他方法進行了實驗比較。
爲了公平比較,“蒸餾”、“相互學習”和“過濾嫁接”都涉及訓練兩個網絡。蒸餾和嫁接的區別在於蒸餾是一個兩階段的訓練過程。當進行蒸餾時,我們首先訓練一個網絡直到收斂,

然後我們利用網絡,作爲教師,將知識提煉成學生網絡。爲了公平地與嫁接進行比較,教師和學生的網絡結構是相同的,這與[25]中的設置是一致的。而對於grating,訓練是在一個階段完成的,不需要再培訓過程。互學習與嫁接的區別在於,互學習訓練的兩個網絡具有另一個很強的監督損失,網絡間的通信成本很高。在使用互學習方法時,應仔細選擇互監督損失係數和主損失係數。而對於移植物,轉移重量不需要監督。利用熵對權重進行嫁接,自適應計算權重係數,效率更高。表5的結果表明,在所有學習方法中,濾波器嫁接的效果最好。

4.5條。多網絡嫁接
濾波器嫁接的威力在於,我們可以通過在嫁接算法中加入更多的網絡來大大提高性能。我們在表6中檢查了多網絡嫁接的效果。

隨着網絡數量的增加,性能會更好。例如,6個模組的嫁接效果可以比基線提高約7%,這是一個很大的改進。這是因爲Mo-bileNetV2是基於深度可分卷積的,因此濾波器可能學習到的知識不足。過濾器抓取可以幫助過濾器從其他網絡中學習互補的知識,這大大提高了網絡的性能。值得注意的是,6個模型的嫁接效果甚至優於6個模型的組合。但與集成不同,嫁接只維護一個測試網絡。然而,在嫁接算法中,當模型的個數增加到8時,性能會停滯。我們假設原因可能是網絡從外部接收了太多的信息,這可能會影響網絡學習的自我信息。如何很好地解釋這一現象是一個有趣的未來工作。
4.6條。ImageNet上的嫁接
爲了在更大的數據集上測試嫁接的性能,我們還驗證了ImageNet上的嫁接,ImageNet是一個擁有超過1400萬張圖像的圖像分類數據集。我們比較了在ResNet18和ResNet34模型上與基線的嫁接。基線超參數的設置與ImageNet1的官方Pythorch設置一致:小批量(256)、初始學習率(0.1)、學習率衰減(每30個階段0.1)、動量(0.9)、權重衰減(0.0001)、階段數(90)和優化器(SGD)。爲了提高訓練的多樣性,在進行嫁接時,我們對兩個網絡使用不同的學習速率和數據裝載器。其他超參數的設置與基線一致。結果見表7。

4.7條。ReID任務的嫁接
嫁接是循環神經網絡的一種通用訓練方法。因此,嫁接不僅可以應用於分類任務,還可以應用於其他計算機視覺任務。在這一部分中,我們評估了在分佈式多攝像機監控中的一個開放集檢索問題——嫁接人再識別(ReID)任務,以匹配出現在不同非重疊攝像機視圖中的人。我們對兩個人的ReID數據集進行了實驗:Mar-ket1501[26]和DukeMTMC-ReUD(Duke)[15,27]。基線超參數的設置與[28]一致:小批量(32),預訓練(真),優化器(ams-梯度),初始學習率(0.1),學習率衰減(每20個階段0.1),階段數(60)。除數據加載和學習率外,其他超參數的設置與基線一致,結果如表8所示。

從表8可以看出,對於每個模型和每個數據集,嫁接的性能都優於基線。此外,如前所述,增加接枝中的網絡數目可以進一步提高性能。
4.8條。嫁接效果
在這一部分,我們進一步分析了嫁接方法的有效性。爲了證明嫁接確實提高了網絡的性能,我們計算了訓練過程後的無效濾波器數目和信息增益。選擇MobileNetV2作爲實驗對象,在CIFAR-10上進行嫁接算法訓練。選擇相同的無嫁接網絡結構作爲基線。實驗結果如圖6和圖7所示。
從圖6可以看出,在1e-3的閾值下,大約有50%的過濾器對基本網絡無效或不重要,而嫁接網絡只有一小部分過濾器被認爲是“無效的”,這表明嫁接確實有助於網絡減少無效的過濾器。從圖7可以看出,嫁接訓練的模型比基線包含更多的信息。通過訓練多個網絡進行嫁接,網絡可以獲得更多的信息。因此,通過以上分析,我們證實了嫁接可以提高神經網絡的潛力。在補充材料中可以找到更多的分析,包括評估無效濾波器的位置、保持層一致性的必要性和自適應加權策略的效率。

 

 

 

 

 

 

 

五。結論與討論
本文提出了一種新的學習範式“過濾嫁接”。本文認爲有效地應用濾波器嫁接算法有兩個關鍵點:1)如何選擇合適的準則來計算DNNs中濾波器的固有信息。2) 如何平衡網絡間信息的協同效率。針對這兩個問題,我們提出了基於熵的準則和自適應加權策略來提高網絡的性能。但這不是唯一的解決辦法。爲了進一步改進嫁接算法,還可以發展其他的準則或方法。從啓發式的角度來看,有一些未來需要考慮的問題:1)如何在大量網絡的情況下提高網絡的性能;2)如何在不同網絡結構的多個網絡上進行嫁接。

 

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