模型加速

蒸餾、剪枝、用小模型、量化、二/三值網路。

(參考CS231n Lecture 15)

一.Algorithm for Effective Inference

1.Purning

模型加速 & 訓練加速

先剪枝,然後再透過retrain恢復準確度,iteratively retrain to recover accuracy。

在人腦中,新生兒50億突觸,一歲大1000萬億突觸,青少年就500萬億突觸。

2.Weight Sharing

將權重值離散化成相近的整數,減少儲存。

模型加速 & 訓練加速

模型加速 & 訓練加速

3.Quantization

模型加速 & 訓練加速

4.Low Rank Approximation

5.Binary/Ternary Net

模型加速 & 訓練加速

6.Winograd Transform

一種能夠減少計算強度的卷積。

模型加速 & 訓練加速

模型加速 & 訓練加速

二.Algorithms for Effective Training

1.Parallelization 並行化

模型加速 & 訓練加速

2.Mixed Precision with FP16 and FP32

模型加速 & 訓練加速

3.Model Distillation

Teacher-Student Model

模型加速 & 訓練加速

4.DSD: Dense-Sparse-Dense Training

模型加速 & 訓練加速

模型加速 & 訓練加速

訓練加速

深度學習訓練的目的有以下幾種:

1)網路結構選擇

比如 CNN 與 RNN,前者更適合並行架構

2)神經元個數的設定

3)權重引數的初始化

Batch Normalization

4)學習率的調整

增大學習率 自適應學習率

5)Mini-batch的調整

加大batch size

6)最佳化演算法的改進

動量、Adam

常見的深度學習訓練的方法有6種:

1)GPU急速

2)資料並行

3)模型並行

4)資料並行和模型並行的混合模式

5)CPU叢集

6)GPU叢集