近期的硬件發(fā)展實現(xiàn)了前所未有的數(shù)據(jù)并行化,從而加速神經(jīng)網(wǎng)絡訓練。利用下一代加速器的最簡單方法是增加標準小批量神經(jīng)網(wǎng)絡訓練算法中的批大小。最近谷歌大腦發(fā)表了一篇論文,旨在通過實驗確定在訓練階段增加批大小的作用,評價指標是得到目標樣本外誤差所需的訓練步數(shù)。最后,批大小增加到一定量將不再減少所需訓練步數(shù),但批大小和訓練步數(shù)之間的確切關系對從業(yè)者、研究者和硬件設計人員來說非常重要。谷歌大腦研究不同訓練算法、模型和數(shù)據(jù)集中批大小和訓練步數(shù)之間關系的變化,以及工作負載之間的最大變化。該研究還解決了批大小是否影響模型質量這一問題。
神經(jīng)網(wǎng)絡在解決大量預測任務時非常高效。在較大數(shù)據(jù)集上訓練的大型模型是神經(jīng)網(wǎng)絡近期成功的原因之一,我們期望在更多數(shù)據(jù)上訓練的模型可以持續(xù)取得預測性能改進。盡管當下的 GPU 和自定義神經(jīng)網(wǎng)絡加速器可以使我們以前所未有的速度訓練當前最優(yōu)模型,但訓練時間仍然限制著這些模型的預測性能及應用范圍。很多重要問題的最佳模型在訓練結束時仍然在提升性能,這是因為研究者無法一次訓練很多天或好幾周。在極端案例中,訓練必須在完成一次數(shù)據(jù)遍歷之前終止。減少訓練時間的一種方式是提高數(shù)據(jù)處理速度。這可以極大地促進模型質量的提升,因為它使得訓練過程能夠處理更多數(shù)據(jù),同時還能降低實驗迭代時間,使研究者能夠更快速地嘗試新想法和新配置條件。更快的訓練還使得神經(jīng)網(wǎng)絡能夠部署到需要頻繁更新模型的應用中,比如訓練數(shù)據(jù)定期增刪的情況就需要生成新模型。
數(shù)據(jù)并行化是一種直接且常用的訓練加速方法。本研究中的數(shù)據(jù)并行化指將訓練樣本分配到多個處理器來計算梯度更新(或更高階的導數(shù)信息),然后對這些局部計算的梯度更新求和。只要訓練目標函數(shù)可分解為在訓練樣本上的和,則數(shù)據(jù)并行化可以適用于任意模型,應用到任意神經(jīng)網(wǎng)絡架構。而模型并行化(對于相同的訓練樣本,將參數(shù)和計算分配到不同處理器)的最大程度則依賴于模型大小和結構。盡管數(shù)據(jù)并行化易于實現(xiàn),但大規(guī)模系統(tǒng)應該考慮所有類型的并行化。這篇論文主要研究在同步訓練設置下數(shù)據(jù)并行化的成本和收益。
神經(jīng)網(wǎng)絡訓練硬件具備越來越強大的數(shù)據(jù)并行化處理能力?;?GPU 或定制 ASIC 的專門系統(tǒng)輔以高性能互連技術使得能夠處理的數(shù)據(jù)并行化規(guī)模前所未有地大,而數(shù)據(jù)并行化的成本和收益尚未得到深入研究。一方面,如果數(shù)據(jù)并行化能夠顯著加速目前的系統(tǒng),我們應該構建更大的系統(tǒng)。另一方面,如果額外的數(shù)據(jù)并行化收益小、成本高,則我們在設計系統(tǒng)時或許需要考慮最大化串行執(zhí)行速度、利用其他并行化類型,甚至優(yōu)先考慮能量使用、成本。
該研究嘗試對數(shù)據(jù)并行化對神經(jīng)網(wǎng)絡訓練的影響進行大量嚴謹?shù)膶嶒炑芯俊榱藢崿F(xiàn)該目標,研究者考慮目前數(shù)據(jù)并行化局限條件下的實際工作負載,嘗試避免假設批大小函數(shù)對最優(yōu)元參數(shù)的影響。該研究主要關注小批量隨機梯度下降(SGD)的變體,它們是神經(jīng)網(wǎng)絡訓練中的主要算法。該研究的貢獻如下:
1. 該研究展示了批大小和達到樣本外誤差所需訓練步數(shù)之間的關系在六個不同的神經(jīng)網(wǎng)絡家族、三種訓練算法和七個不同數(shù)據(jù)集上具備同樣的特征。
具體來說,對于每個工作負載(模型、訓練算法和數(shù)據(jù)集),增加批大小最初都會導致訓練步數(shù)的下降,但最終增加批大小將無法減少訓練步數(shù)。該研究首次通過實驗驗證不同模型、訓練算法和數(shù)據(jù)集上批大小與訓練步數(shù)的關系,其分別調整每個批大小的學習率、動量和學習率調度器。
2. 該研究證明最大有用批大小因工作負載而異,且依賴于模型、訓練算法和數(shù)據(jù)集的特性。具體而言,
帶動量(和 Nesterov 動量)的 SGD 能夠比普通的 SGD 更好地利用較大的批大小,未來可以研究其他算法的批大小擴展特性。
一些模型在允許訓練擴展至更大的批大小方面優(yōu)于其他模型。研究者將實驗數(shù)據(jù)和不同模型特性與最大有用批大小之間的關系結合起來,表明該關系與之前研究中表達的不同(如更寬的模型未必能夠更好地擴展至更大的批大小)。
數(shù)據(jù)集對最大有用批大小的影響不如模型和訓練算法的影響,但該影響并非一貫依賴于數(shù)據(jù)集規(guī)模。
3. 訓練元參數(shù)的最優(yōu)值(如學習率)并非一直遵循與批大小的簡單關系,盡管目前有大量啟發(fā)式方法可以調整元參數(shù)。學習率啟發(fā)式方法無法處理所有問題或所有批大小。假設簡單的啟發(fā)式方法(如隨著批大小的變化對學習率進行線性擴展)可能導致最差解或對規(guī)模遠遠小于基礎批大小的批量進行離散訓練。
4. 該研究回顧了之前研究中使用的實驗方案,部分解決了增加批大小是否降低模型質量這一問題。研究人員假設不同批大小對應的計算預算和元參數(shù)選擇能夠解釋文獻中的諸多分歧,然后發(fā)現(xiàn)沒有證據(jù)能夠證明批大小與模型質量下降存在必然關系,但是額外的正則化方法在批量較大的情況下變得更加重要。
實驗
實驗所用數(shù)據(jù)集如下所示:
實驗所用模型:
實驗依賴大量元參數(shù)調整,如學習率、動量和學習率調度器。在每次實驗中,研究者檢查最佳試驗與元參數(shù)搜索空間邊界是否太過接近,從而驗證元參數(shù)搜索空間。
圖 1:對于上圖中所有問題,訓練步數(shù)與批大小之間的關系具備同樣的特征。
圖 2:對于不同(相近)性能目標,Steps-to-result 圖具備類似形式。
一些模型能夠更好地利用大批量
如下圖所示:
圖 3:a-c 展示了在相同數(shù)據(jù)集上,一些模型架構能夠從大批量中獲益更多。d、f 展示了寬度和深度變化會影響模型利用大批量的能力,但是該情況并不適用于所有模型架構。圖中所有的 MNIST 模型都使用了 mini-batch SGD,而其他模型使用了帶 Nesterov 動量的 SGD。每個圖的目標驗證誤差允許所有模型變體都能夠達到目標誤差。
帶動量的 SGD 可在大批量上實現(xiàn)完美擴展,但在小批量上能力與普通 SGD 相當。
如下圖所示:
數(shù)據(jù)集對最大有用批大小有影響,但影響程度可能不如模型或優(yōu)化器
圖 5:數(shù)據(jù)集對最大有用批大小有影響。
圖 6:數(shù)據(jù)集大小的影響。
正則化在某些批大小上更加有用
圖 7:上圖是 ImageNet 數(shù)據(jù)集上的 ResNet-50 模型。每個點對應不同的元參數(shù),因此每個點的學習率、Nesterov 動量和學習率調度器都是獨立選擇的。每個批大小的訓練預算是固定的,但是不同批大小的訓練預算不同。
最佳學習率和動量隨批大小的變化而改變
圖 8:最佳學習率未必遵循線性或平方根擴展啟發(fā)式方法。
圖 9:在固定訓練數(shù)量的 epoch 中,達到目標誤差的元參數(shù)空間區(qū)域隨著批大小增加而縮小。
圖 10:在固定的訓練步數(shù)下,達到目標誤差的元參數(shù)空間區(qū)域隨著批大小增加而擴大。
解的質量更多地依賴計算預算而不是批大小
圖 12:驗證誤差更多地依賴計算預算,而非批大小。
實驗缺陷
在元參數(shù)調整時難免會有一定程度的人類判斷。研究分析沒有考慮到取得目標誤差的魯棒性。
-
加速器
+關注
關注
2文章
833瀏覽量
39579 -
神經(jīng)網(wǎng)絡
+關注
關注
42文章
4819瀏覽量
106066 -
數(shù)據(jù)集
+關注
關注
4文章
1229瀏覽量
25914
原文標題:數(shù)據(jù)并行化對神經(jīng)網(wǎng)絡訓練有何影響?谷歌大腦進行了實證研究
文章出處:【微信號:worldofai,微信公眾號:worldofai】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
評論