當前位置:
首頁 > 最新 > 阿里提出新神經網路演算法,壓縮掉最後一個比特

阿里提出新神經網路演算法,壓縮掉最後一個比特

新智元專欄

來源:阿里巴巴

【新智元導讀】在利用深度網路解決問題的時候人們常常傾向於設計更為複雜的網路收集更多的數據以期獲得更高的性能。但是,隨之而來的是模型的複雜度急劇提升,參數越來越多,給深度學習在設備上的應用帶來挑戰。阿里iDST團隊最新提出的ADMM神經網路壓縮和加速演算法,可以無損地壓縮掉最後一個比特。論文已經被AAAI 2018錄用為oral。

近年來,深度學習在人工智慧領域取得了重大的突破。在計算機視覺、語音識別等諸多領域,深度神經網路(DNN, Deep Neural Network)均被證明是一種極具成效的問題解決方式。如卷積神經網路(CNN, Convolutional neural network)在計算機視覺諸多傳統問題(分類、檢測、分割)都超越了傳統方法,循環神經網路(RNN, Recurrent Neural Networks)則在時序信號處理,如機器翻譯,語音識別等超過傳統方法。

在利用深度網路解決問題的時候人們常常傾向於設計更為複雜的網路收集更多的數據以期獲得更高的性能。但是,隨之而來的是模型的複雜度急劇提升,直觀的表現是模型的層數越來越深,參數越來越多。這會給深度學習帶來兩個嚴重的問題:

隨著模型參數的增多,模型的大小越來越大,給嵌入式端模型的存儲帶來了很大的挑戰。

隨著模型的增大,模型inference的時間越來越長,latency越來越大。

以上兩個問題給深度學習在終端智能設備上的推廣帶來了很大的挑戰。比如,經典的深度卷積網路VGG-16的模型大小達到528M,用戶很難接受下載一個如此大的模型到手機或者其他終端設備上。同時,在一般的智能手機上,VGG-16識別一張圖像的時間高達3000+ms,這個latency對於大多數用戶來說也是難以接受的。此外,由於深度網路的計算量很大,運行深度網路的能耗很高,這對於手機等終端設備也是一個巨大的挑戰。

基於低比特表示技術的神經網路壓縮和加速演算法

在這個工作中,我們提出一種基於低比特表示技術的神經網路壓縮和加速演算法。我們將神經網路的權重表示成離散值,並且離散值的形式為2的冪次方的形式,比如{-4,-2,-1,0,1,2,4}。這樣原始32比特的浮點型權重可以被壓縮成1-3比特的整形權重,同時,原始的浮點數乘法操作可以被定點數的移位操作所替代。在現代處理器中,定點移位操作的速度和能耗是遠遠優於浮點數乘法操作的。

首先,我們將離散值權重的神經網路訓練定義成一個離散約束優化問題。以三值網路為例,其目標函數可以表示為:

更進一步,我們在約束條件中引入一個scale參數。對於三值網路,我們將約束條件寫成{-a, 0, a}, a>0. 這樣做並不會增加計算代價,因為在卷積或者全連接層的計算過程中可以先和三值權重{-1, 0, 1}進行矩陣操作,然後對結果進行一個標量scale。從優化的角度看,增加這個scale參數可以大大增加約束空間的大小,這有利於演算法的收斂。如下圖所示,

對於三值網路而言,scale參數可以將約束空間從離散的9個點擴增到4條直線。

為了求解上述約束優化問題,我們引入ADMM演算法。在此之前,我們需要對目標函數的形式做一個等價變換

其中Ic為指示函數,如果G符合約束條件,則Ic(G)=0,否則Ic(G)為無窮大。該目標函數的增廣拉格朗日形式為:

ADMM演算法將上述問題分成三個子問題進行求解,即

與其它演算法不同的是,我們在實數空間和離散空間分別求解,然後通過拉格朗日乘子的更新將兩組解聯繫起來。

第一個子問題需要找到一個網路權重最小化:

在實驗中我們發現使用常規的梯度下降演算法求解這個問題收斂速度很慢。在這裡我們使用Extra-gradient演算法來對這個問題進行求解。Extra-gradient演算法包含兩個基本步驟,分別是:

第二個子問題在離散空間中進行優化。通過簡單的數學變換第二個子問題可以寫成:

該問題可以通過迭代優化的方法進行求解。當a或Q固定時,很容易就可以獲得Q和a的解析解。

實驗結果

ImageNet圖像識別:我們分別在Alexnet、VGG16、Resnet18、Resnet50、GoogleNet等五個主流的CNN框架上驗證了所提出的演算法。實驗中我們分別嘗試了Binary網路、Ternary網路、{-2, -1, 0, 1, 2}、{-4, -2, -1, 0, 1, 2, 4}四種形式。在Imagenet上Top-1和Top-5準確度結果如下:

Alexnet和VGG16:

Resnet:

GoogleNet:

其中BWN[1]和TWN[2]為我們對比的兩種Binary網路和Ternary網路量化方法。從這些結果可以看出,在各個網路框架下,我們的演算法都顯著超過對比演算法。同時,當比特數達到3時,量化之後的網路精度相比於原始網路幾乎可以達到無損。在Alexnet和VGG16這兩個冗餘度比較高的網路上,量化之後的網路甚至可以取得超過原始網路的精度,這是因為量化操作可以起到一個正則的作用,從而提高這類網路的泛化性能。

Pascal VOC目標檢測:我們在SSD檢測框架下對演算法進行驗證,分別採用了VGG16+SSD和Darknet+SSD兩種網路結構。對於檢測任務,嘗試了Ternary網路和{-4, -2, -1, 0, 1, 2, 4}兩種量化形式。實驗結果如下:

對於Darknet我們使用了兩種設置,第一種設置中所有的權重進行相同的量化;第二種設置中,1x1的卷積核使用INT8量化,即括弧中的結果。和識別中的結果類似,在VGG+SSD結構中,我們的演算法幾乎可以做到無損壓縮。

參考文獻:

[1] Rastegari, M.; Ordonez, V.; Redmon, J.; and Farhadi, A. 2016. Xnor-net: Imagenet classification using binary convolutional neural networks. European Conference on Computer Vision.

[2] Li, F.; Zhang, B.; and Liu, B. 2016. Ternary weight networks. arXiv preprint arXiv:1605.04711.

※論文題目(中英文):極限低比特神經網路:通過ADMM演算法壓縮掉最後一個比特 / Extremely Low Bit Neural Network: Squeeze the Last Bit Out with ADMM

※主要作者(中英文):冷聰 竇則勝 李昊 朱勝火 金榕 / Cong Leng, Zesheng Dou, Hao Li, Shenghuo Zhu, Rong Jin

加入社群

新智元AI技術+產業社群招募中,歡迎對AI技術+產業落地感興趣的同學,加小助手微信號:aiera2015_1入群;通過審核後我們將邀請進群,加入社群後務必修改群備註(姓名-公司-職位;專業群審核較嚴,敬請諒解)。

此外,新智元AI技術+產業領域社群(智能汽車、機器學習、深度學習、神經網路等)正在面向正在從事相關領域的工程師及研究人員進行招募。

加入新智元技術社群,共享AI+開放平台


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

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


請您繼續閱讀更多來自 新智元 的精彩文章:

「2018春運-AI大戰黃牛黨」智能搶票選座,機器學習阻擊黃牛黨

TAG:新智元 |