深度學習模型壓縮方法的特點總結和對比
不管你是計算機視覺新手還是專家,你可能聽說過 AlexNet 于2012年贏得了ImageNet挑戰賽。這是計算機視覺發展史上的轉折點,因為它表明,深度學習模型能夠以前所未有的精度完成非常困難的任務。
但是你是否知道 AlexNet有6.2千萬訓練參數?
另一個廣為人知的模型 VGGNet 則有1.38億訓練參數,是AlexNet 的兩倍之多。
我們知道,模型層數越多,那么表現的性能越好,那么是否需要關注和強調參數的數量呢?
上述模型在機器視覺領域已經是基準了。但是在現實生產場景中,是否會被人們選擇部署呢?你是否在實際應用中使用這些模型?
在回答上述問題之前,我們先了解如下背景知識。 物聯網裝備預測在2030年將達到1.25-5千億臺套的規模,并且其中20%都帶有攝像頭,這是一個130億的市場。
物聯網攝像頭設備包括家庭安全攝像頭(如Amazon Ring和Google Nest),當您到家時會打開門或在看到未知的人時通知您,智能車輛上的攝像頭可幫助您駕駛,停車場的攝像頭在您進出時打開大門,物聯網攝像頭設備的應用場景十分廣泛!其中一些物聯網設備已經在某種程度上使用人工智能,而其他設備正在慢慢趕上。
許多現實場景的應用程序需要實時的設備處理能力。自動駕駛汽車就是一個很好的例子。為了使汽車在任何道路上安全行駛,它們必須實時觀察道路,如果有人走在汽車前面,必須停車。在這種情況下,需要在設備上實時地處理視覺信息和做出決策。
那么,現在回到之前的問題:我們能否使用前述模型部署到生活場景中?
如果你從事的是計算機視覺領域應用和研究,你的應用程序很可能需要物聯網設備。 主要的挑戰是物聯網設備資源受限;它們的內存有限,計算能力低。而模型中可訓練的參數越多,其規模就越大。深度學習模型的計算時間隨著可訓練參數個數的增加而增加。此外,與較少參數的模型相比,所消耗的能量和占用的空間也越大。最終的結果是,當模型很大時,深度學習模型很難在資源受限的設備上部署。雖然這些模型已經成功地在實驗室中取得了巨大的成果,但它們在許多實際應用中并不可用。
在實驗室,通過昂貴的GPU可以實現模型的高效計算,但是在生產場景中,資金、能源、溫度等問題使得GPU的計算方式行不通。 盡管將這些模型部署在云端能夠提供高計算性能和存儲使用性,但是卻存在高時延的問題,因此不能滿足現實應用的需求。
簡而言之,人工智能需要在靠近數據源的地方進行處理,最好是在物聯網設備本身進行處理!因此,我們可供選擇之一就是:減少模型的規模。
在不影響準確性的前提下,制作一個能在邊緣設備約束下運行的更小的模型是一個關鍵的挑戰。因為僅僅擁有一個可以在資源受限的設備上運行的小模型是不夠的,它應該無論是在準確性和計算速度方面都具有很好的性能。
接下來將介紹幾種降低模型規模的方法。
修剪通過刪除對性能不敏感的冗余、不重要的連接來減少參數的數量。這不僅有助于減小整個模型的大小,而且節省了計算時間和能耗。
好處
· 可以在訓練時和訓練后執行該操作
· 可以改善給定模型的計算時間/模型規模
· 既可以用于卷積網絡,也可以用于全連接層
不足
· 相較于直接修改模型結構,剪枝的效果稍遜一籌
· 對于 TensorFlow模型,往往只能減小模型規模,但是不能降低計算時間
在DNN中,權重存儲為32位浮點數字。量化是通過減少比特數來表示這些權重的思想。權重可以量化為16位、8位、4位甚至1位。通過減少使用的比特數,深度神經網絡的規??梢燥@著減小。
好處
· 可以在訓練時和訓練后執行該操作
· 既可以用于卷積網絡,也可以用于全連接層
不足
· 量化權值使得神經網絡更難收斂。為了保證網絡具有良好的性能,需要較小的學習速率
· 量化權重使得反向傳播不可行,因為梯度不能通過離散神經元反向傳播。需要使用近似方法來估計損失函數相對于離散神經元輸入的梯度
· TensorFlow的量化感知訓練在訓練過程中不做任何量化。訓練期間只收集統計數據,用于量化訓練后的數據。
在知識蒸餾中,一個大型的、復雜的模型是在一個大型數據集上訓練的。當這個大的模型能夠對看不見的數據進行泛化并表現良好時,它就被傳輸到一個較小的網絡中。較大的網絡模型也稱為教師模型,較小的網絡也稱為學生網絡。
好處
· 如果你有一個預先訓練好的教師網絡,訓練較小的(學生)網絡所需的訓練數據較少。
· 如果你有一個預先訓練好的教師網絡,訓練較小的(學生)網絡所需的時間很短。
· 可以縮小一個網絡而不管教師和學生網絡之間的結構差異。
不足
· 如果沒有預先選練好的教師模型,那么訓練學生模型將需要大規模的數據集和較長時間。
選擇性注意是指把注意力集中在感興趣的對象或元素上,而拋棄其他對象(通常是背景或其他與任務無關的對象)。它的靈感來自人眼生物學機制。當我們看東西的時候,我們一次只關注一個或幾個物體,其他的區域就會模糊。
這就需要在你現有的人工智能系統上添加一個選擇性的注意力網絡。
好處
· 更短的計算時間
· 規模更小的模型(通過這一方法生成的人臉識別器只有44KB大?。?/span>
· 精度保障
不足
· 只支持從頭開始的訓練
利用矩陣/張量分解來估計信息參數。一個(m,n)維且秩為r的權矩陣A被更小維的矩陣代替。這種技術有助于將大矩陣分解成更小的矩陣。
好處
· 可被用于訓練階段和訓練后
· 可被用于卷積網絡,也可用于全連接層
· 用于訓練階段時,可以降低訓練時間
最棒的是,所有這些技術是相輔相成的。它們可以按原樣應用,也可以與一種或多種技術相結合。通過使用剪枝、量化和Huffman編碼三級流水線來減小預訓練模型的大小,在ImageNet數據集上訓練的VGG16模型從550MB降到了11.3MB。
上面討論的大多數技術都可以應用于預先訓練的模型,作為后處理步驟,可以減小模型大小并提高計算速度。但它們也可以在訓練期間使用。量化越來越受歡迎,現在已經被引入機器學習框架。我們可以預期修剪很快也會被引入流行的框架中。
在本文中,我們研究了將基于深度學習的模型部署到資源受限設備(如物聯網設備)的動機,以及減小模型大小以使其適應物聯網設備而不影響準確性的需求。我們還討論了一些現代技術壓縮深度學習模型的利弊。最后,我們談到了每一種技術可以單獨應用,也可以組合使用。
作者:Sabina Pokhrel
deephub翻譯組 Oliver Lee