當前位置:
首頁 > 最新 > 神經網路「剪枝」的兩個方法

神經網路「剪枝」的兩個方法

編譯 AI科技大本營

參與 劉 暢

編輯 明 明

【AI科技大本營導讀】本文介紹了兩篇自動學習神經網路架構方向的最新方法,他們主要是通過計算扔掉一些參數/特徵來實現的。第一篇L0方法看起來像是一個更簡單的優化演算法,第二篇Fisher修剪法論文來自於作者及其實驗室。

第一篇論文:《Christos Louizos, Max Welling, Diederik P. Kingma (2018) Learning Sparse Neural Networks through $L_0$ Regularization》

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

第二篇論文:《Lucas Theis, Iryna Korshunova, Alykhan Tejani, Ferenc Huszár (2018) Faster gaze prediction with dense networks and Fisher pruning》

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

第二篇論文的標題中提到的修剪,其含義是在神經網路中減少或控制非零參數的數量,或者是在神經網路中需要用到的特徵圖數量。從更抽象的層面來看,至少有三種方法可以做到這一點,而修剪方法只是其中之一:

為什麼要剪枝?

修剪網路有各種各樣的原因。 最顯然的原因是希望保持相同性能的同時能降低計算成本。而且刪除那些在深度網路中沒有真正使用的特徵,也可以加速推理和訓練過程。你也可以將修剪看作是一種結構探索:即找出在每層中需要多少個特徵才能獲得最佳性能。

第二個原因是通過減少參數數量,也就是減少參數空間中的冗餘,可以實現提升模型的泛化能力。正如我們在近期關於深度網路泛化能力的研究中所看到的那樣,參數的原始數量(L_0 norm)實際上並不能預測其泛化能力。也就是說,根據經驗,我們發現修剪網路有助於提升泛化能力。同時,深度學習社區正在開發新的參數相關量來預測/描述泛化。 Fisher-Rao norm就是一個很好的例子。有趣的是,Fisher修剪(Theis et al,2018)被證明與Fisher-Rao norm之間有很好的相關性,這可能意味著修剪,參數冗餘和泛化之間,有著更深層次的關係。

L_0 正則化

我發現Louizos等人(2018年)關於L_0的論文非常有趣,它可以被看作是幾個月前我在機器學習食譜(譯者註:博客作者另外的博文,地址http://www.inference.vc/design-patterns/)中所寫的機器學習問題轉換的直接應用。這是一個很好的例子,說明如何使用這些一般的想法,將一個棘手的機器學習優化問題轉化為可以實際運作的模型。

所以我將這篇文章總結為以下步驟,每個步驟逐步改變著模型優化問題:

1、首先從難以優化的損失函數開始:在常用的損失函數上加上L_0範數,兩者線性組合。 L_0範數簡單的計算了向量中的非零項,它是一個不可微分的常量函數。 所以這是一個非常困難的組合優化問題。

2、應用變分優化方法將不可微的函數轉化為可微函數。這通常是通過在參數$ theta $上引入一個概率分布p_ { psi}( theta)。即使目標對於任何 theta 參數都是不可微的,但是在 p_ { psi} 下的平均損失可能是可微的w.r.t.$$ PSI。為了找到最優 psi ,通常可以使用一個增強(REINFORCE)梯度估計器,從而得到優化的策略。 但是這種方法通常具有高方差,因此我們會用步驟三的方法。

3、將重構造參數(reparametrization)技巧應用於pψ上,以此構造一個低方差梯度估計器。但是,這隻適用於連續變數。為了處理離散性,我們轉向步驟四。

4、使用concrete relaxation,通過連續近似逼近離散隨機變數。現在我們有一個較低的方差(與REINFORCE相比)梯度估計器,可以通過反向傳播和簡單的蒙特卡羅採樣來計算。 您可以在SGD(Adam)中使用這些梯度,也正是這篇論文做的工作。

有趣的是,步驟3並沒有提到優化策略或變分優化之類的東西。取而代之的出發點是基於不同連接的spike-and-slab先驗。我建議閱讀這篇論文時,可以考慮到這一點。

作者表明這確實在減少參數數量方面起了作用,並且與其他方法相比更有優勢。根據這些步驟,思考從一個問題轉換到另一個問題,讓您也可以概括或改進這個想法。例如,REBAR或RELAX梯度估計器相比其他的估計器,它能夠達到無偏差和低方差的效果,而且這種方法在這個問題上也可以有很好的效果。

Fisher修剪法

我想談的第二篇論文是來自我們自己實驗室的。(Theis等人,2018)這篇論文不是純粹的方法,而是關注於具體應用,即如何構建一個快速神經網路來預測圖像顯著性。修剪網路的方法來源於在Twitter上裁剪照片的原理。

我們的目標也是為了降低網路的計算成本,特別是在遷移學習環境中:當使用預訓練的神經網路開始構建時,您將繼承解決原始任務所需的大量複雜性計算,而這對於解決你的目標任務可能是多餘的。我們的高級(high-level)修剪方法有一個不同之處:與L0範數或組稀疏度不同,我們用一個稍微複雜的公式來直接估計方法的前向計算時間。這個公式是相鄰層間相互作用的每層參數數量的二次函數。有趣的是,這樣做的結果是網路結構是厚層和薄層間的交替運算,如下所示:

我們使用一次去掉一個卷積的特徵圖的方法,來修剪訓練好的網路。選擇下一個待修剪特徵圖的一個原則是盡量減少由此造成的訓練損失增加。從這個原則出發,利用損失函數的二階泰勒展開式,再做出更多的假設,我們能得到下面關於參數θi的修剪關係:

Fi表示Fisher信息矩陣的第i個對角線值。雖然上面的公式去除了單個參數,但是我們可以延伸到如何去除整個特徵圖。而修剪是通過去除每個迭代中具有最小Δ的參數或特徵映射,並且在迭代間再重新訓練網路來實現的。欲了解更多詳情,請參閱論文。

除了論文中提到的內容之外,我想指出一下Fisher修剪法與我之前在這個博客上討論過的想法之間的一些聯繫。

Fisher-Rao範數

第一個聯繫是Fisher-Rao範數。假設某一分鐘Fisher矩陣信息是對角的,在理論上這是一個大而且不合理的假設,但是在應用中簡化了它,就得到了能用於實踐的演算法。有了這個假設,θ的Fisher-Rao範數變成:

用這種形式寫下來,你就能看到FR範數與Fisher修剪法之間的聯繫了。根據所使用的Fisher信息矩陣的特定定義,您可以近似解釋FR範數,如下:

在現實世界中,Fisher信息矩陣並不是對角的,這實際上是理解泛化的一個重要方面。首先,只考慮對角線值使Fisher修剪與網路的某些參數(非對角線雅可比矩陣)之間有些聯繫。但是也許在Fisher-Rao範數和參數冗餘之間有更深層次的聯繫。

彈性權重鞏固(Elastic Weight Consolidation)

使用對角Fisher信息值來指導修剪也與(Kirkpatrick等,2017)提出的彈性權重鞏固有相似之處。在EWC中,Fisher信息值用於確定哪些權重能夠在解決以前的任務中更重要。而且,雖然演算法是從貝葉斯在線學習中推導出來的,但是你也可以像Fisher修剪那樣從泰勒展開的角度來決定。

我用來理解和解釋EWC的一個比喻是共享硬碟。(提醒:與其他所有的比喻一樣,這可能完全沒有意義)。神經網路的參數就像是某類硬碟或存儲卷。訓練神經網路的任務過程包括壓縮訓練數據並將信息保存到硬碟上。如果你沒有機制來保持數據不被複寫,那麼該硬碟就將被複寫。在神經網路中,災難性遺忘是以同樣的方式發生。EWC就像是一份在多個用戶之間共享硬碟的協議,而用戶不需要複寫其它用戶的數據。 EWC中的Fisher信息值可以被看作軟體層面的不複寫標誌。在對第一個任務進行訓練之後,我們計算出Fisher信息值,該值表示該任務的關鍵信息是由哪些參數存儲的。Fisher值較低的是冗餘的參數,其可以被重複使用並用來存儲新的信息。在這個比喻中, Fisher信息值的總和就是衡量了硬碟容量的大小,而修剪實際上就是丟棄了硬碟上不用於存儲任何東西的部分。

總結

在我看來,這兩種方法/論文本身都很有趣。 L0方法看起來像是一個更簡單的優化演算法,可能是Fisher修剪的迭代,一次刪除一個特徵方法更可取。然而,當你在遷移學習中,從一個大的預訓練模式開始時,Fisher修剪則更適用。

作者FerencHuszár

http://www.inference.vc/pruning-neural-networks-two-recent-papers/?nsukey=z6NQe6fC2toltaVCEoqq6242x7AScSRUSIk3%2FLoeKf00ExXKTajTwEDOasmj3OZI0jZbDeeDMHzvIKeD9vp8d%2FyH488zjFxznt3z2vIzLtnhaSVmWtcGHHF9ySKsvx8eBmmJRUjYz2oj2pykWs4mALvrFL%2BDxuKQFZ7xveeDramYMpnf1iHKWfj60GBlO7%2FORv7jpBNOz8hIs2i7pmtw4A%3D%3D


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI科技大本營 的精彩文章:

蘋果智能音箱HomePod確定開售時間,權威人士質疑:是否太晚?
重磅!阿里開源AI核心技術,95%演算法工程師受用

TAG:AI科技大本營 |