近年來,深度學習在人工智能領域取得了重大的突破。在計算機視覺、語音識別等諸多領域,深度神經網絡(DNN, Deep Neural Network)均被證實是一種極具成效的問題解決方式。如卷積神經網絡(CNN, Convolutional neural network)在計算機視覺諸多傳統問題(分類、檢測、分割)都超越了傳統方法,循環神經網絡(RNN, Recurrent Neural Networks)則在時序信號處理,如機器翻譯,語音識別等超過傳統方法。html
在利用深度網絡解決問題的時候人們經常傾向於設計更爲複雜的網絡收集更多的數據以期得到更高的性能。可是,隨之而來的是模型的複雜度急劇提高,直觀的表現是模型的層數愈來愈深,參數愈來愈多。這會給深度學習帶來兩個嚴重的問題:算法
以上兩個問題給深度學習在終端智能設備上的推廣帶來了很大的挑戰。好比,經典的深度卷積網絡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算法。在此以前,咱們須要對目標函數的形式作一個等價變換。翻譯