0
雷鋒網AI科技評論按:神經網絡功能強大,但是其巨大的存儲和計算代價也使得它的使用特性,特別是在一些計算能力相對較弱的移動設備上受到了很大的限制。為了解決這個問題, 最近有許多針對于神經網絡壓縮和加速的工作被提出, 例如神經網絡剪枝, 權重矩陣低秩分解,權重量化等。這次分享主要是針對于權重量化這一類方法。
近期,在雷鋒網 GAIR 大講堂上,來自香港科技大學的博士生侯璐同學分享了深度學習網絡的權重量化的一些最新進展。以及幾篇ICLR的論文解讀。視頻回放地址:http://www.mooc.ai/open/course/473
侯璐,香港科技大學在讀博士,主要研究方向為機器學習。
分享主題:基于損失函數(shù)的神經網絡量化方法
分享提綱
1. 概述近期神經網絡壓縮和加速的工作, 例如神經網絡剪枝, 權重矩陣低秩分解,權重量化等。
2. 回顧近兩年來的權重量化方法,并分析這些方法的優(yōu)缺點。
3. 介紹基于減小最終目標函數(shù)的量化方法, 并分析這種方法和其他量化方法的關系和優(yōu)勢。
分享內容:
深度學習在我們的的生活中已經得到了非常廣泛的應用,包括自動駕駛、機器翻譯、醫(yī)療、游戲競技等方面。

先介紹一下深度學習模型的建立。深度學習一般分為訓練和測試兩個模塊。在訓練部分,訓練模型、數(shù)據集以及耗費的GPU資源一般都很大,但測試時我們往往要把這些模型應用到如手機等計算能力較弱的平臺。這是就會遇到兩個問題,一是計算資源不足,二是內存不足。

目前也有很多研究工作在試圖解決這個問題。方法包括使用更加先進的硬件,遷移學習,優(yōu)化算法,但今天的分享內容著重講模型的壓縮和加速。
模型壓縮這個領域當前比較火的有這幾個方向。一是權重的剪枝與共享,二是使用一些更加緊湊又有效的模塊,三是使用一些低秩的矩陣,最后就是今天分享的重點——權重量化。

先介紹一下權重剪枝。這是2015在NIPS上提出來的,這個方法分為三步,先訓練一個全連接的網絡,然后去掉一些不太重要的連接,最再訓練剪枝后的網絡。

在介紹一下權重共享,這個方法是2016年NIPS的bestpaper中提出的。該方法同樣分為三步,第一步就是剪枝的過程,第二步是量化和權重共享,最后使用哈弗曼編碼處理達到更高的壓縮率。但這種方法對計算量的減少并不明顯。

第二部分就是使用更加緊湊有效的模型,如SqueezeNet,MobileNet,ShuffleNet等。

SqueezeNet在較小的網絡上效率提升并不顯著。


其實這兩種方法和別的方法相比實施起來并不容易。第三部分我想介紹一下低秩矩陣的方法,這種方法可以減少計算中乘法和加法的次數(shù)也減少了。但問題也很明顯,即安插到原模型后訓練量會增加。

接下來是今天的重點,即權重量化的內容。最簡單的是二值化,用1個比特來表示原來32比特表示的權重。更精確的是三值化,最常見的是m-bit。

先介紹一下權重量化與之前方法相比較下的優(yōu)勢,包括訓練與量化同時進行等。

然后再說一下量化的流程。簡單介紹就是先用量化之后的權重做正向傳播,再做反向傳播得到量化權重的梯度,然后更新權重進入下一次迭代。

接下來介紹一下二值化網絡的主要工作,第一個是BinaryConnect,這種方法雖然可以量化,卻無法知曉量化后的效果優(yōu)劣。

第二是Binary Weight Network,這種方法任然無法保證對降低損失函數(shù)有正面效果。

然后是三值化的工作,包括Ternary-connect 和Ternary Weight Networks (TWN)以及Trained Ternary Quantization(TTQ)。


前兩種方法的問題與二值化工作的問題是一樣的,但權重的精度提高了。

這種方法任然存在與前兩種方法類似的問題。目前更常見的方法是m-bit的方法。包括DoReFa-Net和Low-Bit Neural Network (LBNN)兩種方法。


如上圖所示,這兩種方法各自存在自己的問題。接下來介紹我們團隊在ICLR2017和2018發(fā)表的方法。先將Loss-aware Weight Quantization的框架。

然后求解算法用的是Proximal Newton Algorithm。

再將這個算法應用到之前的formulation。

我分析一下上面兩步的具體含義,如下:

然后在看一下具體的算法。

這個算法的一些證明如下:

以上是框架介紹,接下來具體介紹Loss-aware Binarization,

以及Loss-aware Ternarization (LAT)。

針對Ternarization,我們提出了精確求解的方法即LATe。

但因為精確解涉及到排序算法,耗費增大。然后我們提出LATa去求近似解。

之后我們還提出Loss-aware Ternarization的兩個變種。


接著介紹一下實驗部分,F(xiàn)NN實驗我們使用了MNIST、CIFAR-10、CIFAR-100、SVHN這四個數(shù)據集。最終模型的實驗效果如下

RNN實驗我們使用WAR andPeace、Linux Kernel、Penn Treebank這三個數(shù)據集,實驗結果如下

這兩個實驗我們的算法的表現(xiàn)都是比較好的。這就是我今天全部的分享內容。
以上就是雷鋒網對侯璐博士直播全部內容的整理,大家如果感興趣可以直接去看觀看視頻回放:http://www.mooc.ai/open/course/473,更多公開課視頻請到雷鋒網 AI 慕課學院觀看。
雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。