模型加速 & 訓練加速
模型加速
蒸餾、剪枝、用小模型、量化、二/三值網路。
(參考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叢集