並行訓練(parallel training)規模的情況下,在保證模型效能的同時實現訓練速度線性增長 在增加cpu 或 gpu 數量的同時,保證訓練的線性加速以及效能。但由於工人(gpu/cpu)之間存在溝通成本和資源浪費,因此無法實現工作成果隨工人數量的增多呈線性增長。
訓練速度和模型效能 如何在增加工人(卡)數量的同時,保證工人的勞動成果(訓練速度)是線性增長的,同時還要保證整個施工的質量(模型效能)。
1)加速型sgd,最知名的方法是 asgd(非同步隨機梯度下降,asynchronous stochastic gradient descent)
通過大量 gpu 做非同步計算,這是 google 從 2012 年起就在採用的方法。但這個方法的問題在於,增加 gpu 時需要的通訊代價很高,增加了系統設計優化和維護成本,同時基於同樣資料的兩次訓練結果也會不同。
2)asgd 加模型平均
在對大資料做並行處理時,將資料分配給每塊gpu去處理,之後把計算結果取乙個平均值生成新的模型,再給gpu分配資料進行處理,以此類推。這種方法很簡單,但壞處在於卡數上去時模型效能會下降。
3)1-bit sgd
該方法由微軟一位研究員提出,通過梯度量化和壓縮技術減少通訊代價,實現了 geoffrey hinton 30 年前提出的單機訓練經典方法 mini-batch sgd 的並行化。它的主要缺點是, 在保證訓練模型效能的情況下,卡數增加時無法做到訓練線性加速。
深度學習基礎 BP和訓練 常用的梯度下降
梯度下降是線性回歸的一種 linear regression adam adaptive moment estimation 本質上是帶有動量項的rmsprop,它利用梯度的一階矩估計和二階矩估計動態調整每個引數的學習率。adam的優點主要在於經過偏置校正後,每一次迭代學習率都有個確定範圍,使得引數...
深度學習基礎 反向傳播即BP演算法的推導過程
bp演算法簡單的來說就是根據神經網路實際的輸出和目標輸出 也就是輸入樣本對應的標記 之間的誤差計算神經網路各個權值的過程。下面的推導過程參考了 神經網路設計 martin t.hagan等著 戴葵等譯。採用bp演算法從輸出層 經過隱層再到輸入層進行層層計算的原因是如果直接計算誤差函式相對於各權值的偏...
python基礎學習(四) 條件和分支
1.成績分類三種方法的區別 根據成績,進行分類abcde 法1 score int input 請輸入分數 if 100 score 90 print a if 90 score 80 print b if 80 score 70 print c if 70 score 60 print d if ...