褚瑩, 凌力
(復(fù)旦大學(xué) 通信科學(xué)與工程系,上海 200433)
隨著ImageNet數(shù)據(jù)集的出現(xiàn),學(xué)術(shù)界涌現(xiàn)出許多高性能的卷積神經(jīng)網(wǎng)絡(luò)模型。在過去幾年中,卷積神經(jīng)網(wǎng)絡(luò)模型的結(jié)構(gòu)愈發(fā)復(fù)雜,直接導(dǎo)致參數(shù)和卷積操作數(shù)大幅增加,使得模型體積增大、運(yùn)行時間增長。當(dāng)這些網(wǎng)絡(luò)被布置到傳感器和移動設(shè)備上時,由于有限的存儲空間和計算資源,使得模型的運(yùn)行效果無法達(dá)到最佳。因此針對卷積神經(jīng)網(wǎng)路模型壓縮和加速的研究成為卷積神經(jīng)網(wǎng)絡(luò)領(lǐng)域的一大熱點(diǎn)。傳統(tǒng)模型壓縮研究的方法主要分為兩種:
(1)通過剪枝去除冗余權(quán)重。如Denton[1]等人利用神經(jīng)網(wǎng)絡(luò)的線性結(jié)構(gòu),通過尋找一個合適的低秩逼近以達(dá)到到減少參數(shù)的目的。奇異值分解(SVD)和塔克分解同樣可以減少權(quán)重的數(shù)目[2]。在此基礎(chǔ)上,優(yōu)化矩陣的存儲方式可以進(jìn)一步減少參數(shù)的存儲空間。如Han提出的深度壓縮[3]中利用聚類和哈夫曼編碼大幅壓縮了參數(shù)的存儲空間。
(2)優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)減少參數(shù)數(shù)量。近年來也涌現(xiàn)出不少神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的創(chuàng)新之作,如使用卷積層或全局平均池化代替全連接層。Network In Network[4]和GoogleNet[5]的網(wǎng)絡(luò)結(jié)構(gòu)都采用了替換卷積層的思想,從而獲得了不錯的成績。
一般來說,我們通過將低于閾值的權(quán)重置為零來實(shí)現(xiàn)剪枝,此時再通過優(yōu)化存儲方式可以進(jìn)一步減少存儲空間,但若未引入針對稀疏矩陣的相乘方法,無法實(shí)現(xiàn)模型加速。
在此基礎(chǔ)上,本文提出了剪枝和DSD(Dense-Sparse-Dense)訓(xùn)練技術(shù)相結(jié)合的模型壓縮方法。……