回覆列表
  • 1 # 北航秦曾昌

    深度神經網路因為其強大的擬合能力,近幾年來廣受研究人員的追捧。在自然語言處理、計算機視覺、強化學習等領域廣為應用。下面就是各種深度卷積神經網路框架的引數大小和在影象分類上的精度。

    可以看出為了實現較高的精度,網路的計算複雜度要求越來越高,特別是網路訓練和執行往往依賴於高效能的GPU。但是在實際應用中,面向的則是在計算能力、功耗上很有限的移動裝置、嵌入式裝置等,同時對實時性要求很高。因此就造成具有高精度的深度神經網路很難在這樣的裝置上進行有效的應用和計算。

    基於上述的原因,就需要在保證效能基本不變的情況下,透過減小網路的計算量和大小來對神經網路進行壓縮和加速。目前主流的方法包括如下幾個方面:

    1.網路引數剪枝

    其基於的想法就是,神經網路容易過擬合,因此在網路中就可能存在著許多無用的引數。具體的做法就是,減少每一層中卷積核的數量或者透過新增稀疏正則項來修剪權重矩陣。

    2.矩陣低秩分解(Low-rank)

    在神經網路中主要的計算量在,矩陣之間的相乘。同大矩陣的乘法可以分解成同若干個小矩陣的乘法,從而減少了引數的儲存。目前常用的方法是CP分解、Tucker分解、Tensor Train分解以及Block Term分解。

    3.引數量化

    神經網路的引數常常使用的都是浮點數來進行計算和更新的,比如一個float32的引數就需要4byte來儲存,因此就會佔據大量的空間來儲存引數。而透過降低引數的精度如使用1byte來訓練和執行網路就會成倍地減少模型的大小。

    利用上述的方法實現對深度神經網路的壓縮之後,還需要對模型進行fine-tuning來保證模型的精度。

  • 中秋節和大豐收的關聯?
  • 是不是男孩子都喜歡忽遠忽近的女生?