ICCV 2019 提前看 | 三篇論文,解讀神經網路壓縮

机器之心發表於2019-10-22

神經網路壓縮方向是目前深度學習研究的一個熱門的方向,其主要的研究方向是壓縮,蒸餾,網路架構搜尋,量化等。在 ICCV2019 中,不少的研究單位和學者都發表了神經網路壓縮方向的論文。本文主要以其中三篇論文來研究神經網路壓縮的目前發展趨勢。

論文 1:基於元學習的模型壓縮《MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning》

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

1 論文主旨概述

Meta learning 論文是曠世研究院提出的一種神經網路壓縮方法。通道剪枝 [1] 作為一種神經網路的壓縮方法被廣泛的實現和應用,一般剪枝演算法通過對預訓練的大網路裁剪次要的通道,之後微調,得到最終的剪枝網路。隨著 AutoML[2] 的發展,metapruning 利用 autoML 的自動尋找最優結構的特點,脫離了人工設計的侷限以及彌補剪枝演算法的依賴資料的不足。本文從元學習的角度出發,直接用元學習得到剪枝網路(pruned networks)的結構以及自生成權重,而不是保留原始網路的重要引數。

2 方法:

近年來,有研究 [3] 表明無論是否儲存了原始網路的權值,剪枝網路都可以達到一個和原始網路相同的準確率。因此,通道剪枝的本質是逐層的通道數量,也就是網路結構。鑑於此項研究,Metapruning 決定直接保留裁剪好的通道結構,區別於剪枝的裁剪哪些通道。

本文提出來一個 Meta network,名為 PruningNet,可以生成所有候選的剪枝網路的權重,並直接在驗證集上評估,有效的搜尋最佳結構。

  • Pruningnet training

PruningNet 是一個 meta network,以一組網路編碼向量 (c1,c2,,,cl) 為輸入,輸出為剪枝網路的權重。一個 PruningNet 的訓練方式如下圖 (1) 所示:

ICCV 2019 提前看 | 三篇論文,解讀神經網路壓縮

圖(1)PruningNet 的隨機訓練方法

圖 (1) 中,PruningNet 由多個 block 組成,其中的每個 block 由兩個全連線層組成。

在前向過程中,PruningNet 以網路編碼向量(即剪枝網路的每層通道數)為輸入,生成權重矩陣。同時,剪枝網路以網路編碼向量中的數值為輸出通道,並將生成的權重矩陣裁剪匹配剪枝網路的輸入輸出。對於一個 batach 的輸入影像,我們可以計算帶權重的剪枝網路的前向損失。

在反向過程中,本文並不是更新剪枝網路的權重,而是計算 PruningNet 的梯度,更新 PruningNet 的權重(全連線層引數)。

在整個訓練過程中,由於所有的操作都是可微的,所以能夠進行端到端的學習。通過隨機生成不同的網路編碼向量,可以得到不同的剪枝網路結構。

相關文章