0
本文作者: sanman | 2018-04-24 18:00 |
雷鋒網(wǎng)AI科技評論按:神經(jīng)網(wǎng)絡(luò)功能強大,但是其巨大的存儲和計算代價也使得它的使用特性,特別是在一些計算能力相對較弱的移動設(shè)備上受到了很大的限制。為了解決這個問題, 最近有許多針對于神經(jīng)網(wǎng)絡(luò)壓縮和加速的工作被提出, 例如神經(jīng)網(wǎng)絡(luò)剪枝, 權(quán)重矩陣低秩分解,權(quán)重量化等。這次分享主要是針對于權(quán)重量化這一類方法。
近期,在雷鋒網(wǎng) GAIR 大講堂上,來自香港科技大學(xué)的博士生侯璐同學(xué)分享了深度學(xué)習(xí)網(wǎng)絡(luò)的權(quán)重量化的一些最新進展。以及幾篇ICLR的論文解讀。視頻回放地址:http://www.mooc.ai/open/course/473
侯璐,香港科技大學(xué)在讀博士,主要研究方向為機器學(xué)習(xí)。
分享主題:基于損失函數(shù)的神經(jīng)網(wǎng)絡(luò)量化方法
分享提綱
1. 概述近期神經(jīng)網(wǎng)絡(luò)壓縮和加速的工作, 例如神經(jīng)網(wǎng)絡(luò)剪枝, 權(quán)重矩陣低秩分解,權(quán)重量化等。
2. 回顧近兩年來的權(quán)重量化方法,并分析這些方法的優(yōu)缺點。
3. 介紹基于減小最終目標函數(shù)的量化方法, 并分析這種方法和其他量化方法的關(guān)系和優(yōu)勢。
分享內(nèi)容:
深度學(xué)習(xí)在我們的的生活中已經(jīng)得到了非常廣泛的應(yīng)用,包括自動駕駛、機器翻譯、醫(yī)療、游戲競技等方面。
先介紹一下深度學(xué)習(xí)模型的建立。深度學(xué)習(xí)一般分為訓(xùn)練和測試兩個模塊。在訓(xùn)練部分,訓(xùn)練模型、數(shù)據(jù)集以及耗費的GPU資源一般都很大,但測試時我們往往要把這些模型應(yīng)用到如手機等計算能力較弱的平臺。這是就會遇到兩個問題,一是計算資源不足,二是內(nèi)存不足。
目前也有很多研究工作在試圖解決這個問題。方法包括使用更加先進的硬件,遷移學(xué)習(xí),優(yōu)化算法,但今天的分享內(nèi)容著重講模型的壓縮和加速。
模型壓縮這個領(lǐng)域當(dāng)前比較火的有這幾個方向。一是權(quán)重的剪枝與共享,二是使用一些更加緊湊又有效的模塊,三是使用一些低秩的矩陣,最后就是今天分享的重點——權(quán)重量化。
先介紹一下權(quán)重剪枝。這是2015在NIPS上提出來的,這個方法分為三步,先訓(xùn)練一個全連接的網(wǎng)絡(luò),然后去掉一些不太重要的連接,最再訓(xùn)練剪枝后的網(wǎng)絡(luò)。
在介紹一下權(quán)重共享,這個方法是2016年NIPS的bestpaper中提出的。該方法同樣分為三步,第一步就是剪枝的過程,第二步是量化和權(quán)重共享,最后使用哈弗曼編碼處理達到更高的壓縮率。但這種方法對計算量的減少并不明顯。
第二部分就是使用更加緊湊有效的模型,如SqueezeNet,MobileNet,ShuffleNet等。
SqueezeNet在較小的網(wǎng)絡(luò)上效率提升并不顯著。
其實這兩種方法和別的方法相比實施起來并不容易。第三部分我想介紹一下低秩矩陣的方法,這種方法可以減少計算中乘法和加法的次數(shù)也減少了。但問題也很明顯,即安插到原模型后訓(xùn)練量會增加。
接下來是今天的重點,即權(quán)重量化的內(nèi)容。最簡單的是二值化,用1個比特來表示原來32比特表示的權(quán)重。更精確的是三值化,最常見的是m-bit。
先介紹一下權(quán)重量化與之前方法相比較下的優(yōu)勢,包括訓(xùn)練與量化同時進行等。
然后再說一下量化的流程。簡單介紹就是先用量化之后的權(quán)重做正向傳播,再做反向傳播得到量化權(quán)重的梯度,然后更新權(quán)重進入下一次迭代。
接下來介紹一下二值化網(wǎng)絡(luò)的主要工作,第一個是BinaryConnect,這種方法雖然可以量化,卻無法知曉量化后的效果優(yōu)劣。
第二是Binary Weight Network,這種方法任然無法保證對降低損失函數(shù)有正面效果。
然后是三值化的工作,包括Ternary-connect 和Ternary Weight Networks (TWN)以及Trained Ternary Quantization(TTQ)。
前兩種方法的問題與二值化工作的問題是一樣的,但權(quán)重的精度提高了。
這種方法任然存在與前兩種方法類似的問題。目前更常見的方法是m-bit的方法。包括DoReFa-Net和Low-Bit Neural Network (LBNN)兩種方法。
如上圖所示,這兩種方法各自存在自己的問題。接下來介紹我們團隊在ICLR2017和2018發(fā)表的方法。先將Loss-aware Weight Quantization的框架。
然后求解算法用的是Proximal Newton Algorithm。
再將這個算法應(yīng)用到之前的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ù)據(jù)集。最終模型的實驗效果如下
RNN實驗我們使用WAR andPeace、Linux Kernel、Penn Treebank這三個數(shù)據(jù)集,實驗結(jié)果如下
這兩個實驗我們的算法的表現(xiàn)都是比較好的。這就是我今天全部的分享內(nèi)容。
以上就是雷鋒網(wǎng)對侯璐博士直播全部內(nèi)容的整理,大家如果感興趣可以直接去看觀看視頻回放:http://www.mooc.ai/open/course/473,更多公開課視頻請到雷鋒網(wǎng) AI 慕課學(xué)院觀看。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。