當前位置:
首頁 > 知識 > 數據並行化對神經網路訓練有何影響?谷歌大腦進行了實證研究

數據並行化對神經網路訓練有何影響?谷歌大腦進行了實證研究

選自arXiv

作者:Christopher J. Shallue 等

機器之心編譯

參與:路、張倩

近期的硬體發展實現了前所未有的數據並行化,從而加速神經網路訓練。利用下一代加速器的最簡單方法是增加標準小批量神經網路訓練演算法中的批大小。最近谷歌大腦發表了一篇論文,旨在通過實驗確定在訓練階段增加批大小的作用,評價指標是得到目標樣本外誤差所需的訓練步數。最後,批大小增加到一定量將不再減少所需訓練步數,但批大小和訓練步數之間的確切關係對從業者、研究者和硬體設計人員來說非常重要。谷歌大腦研究不同訓練演算法、模型和數據集中批大小和訓練步數之間關係的變化,以及工作負載之間的最大變化。該研究還解決了批大小是否影響模型質量這一問題。

神經網路在解決大量預測任務時非常高效。在較大數據集上訓練的大型模型是神經網路近期成功的原因之一,我們期望在更多數據上訓練的模型可以持續取得預測性能改進。儘管當下的 GPU 和自定義神經網路加速器可以使我們以前所未有的速度訓練當前最優模型,但訓練時間仍然限制著這些模型的預測性能及應用範圍。很多重要問題的最佳模型在訓練結束時仍然在提升性能,這是因為研究者無法一次訓練很多天或好幾周。在極端案例中,訓練必須在完成一次數據遍歷之前終止。減少訓練時間的一種方式是提高數據處理速度。這可以極大地促進模型質量的提升,因為它使得訓練過程能夠處理更多數據,同時還能降低實驗迭代時間,使研究者能夠更快速地嘗試新想法和新配置條件。更快的訓練還使得神經網路能夠部署到需要頻繁更新模型的應用中,比如訓練數據定期增刪的情況就需要生成新模型。

數據並行化是一種直接且常用的訓練加速方法。本研究中的數據並行化指將訓練樣本分配到多個處理器來計算梯度更新(或更高階的導數信息),然後對這些局部計算的梯度更新求和。只要訓練目標函數可分解為在訓練樣本上的和,則數據並行化可以適用於任意模型,應用到任意神經網路架構。而模型並行化(對於相同的訓練樣本,將參數和計算分配到不同處理器)的最大程度則依賴於模型大小和結構。儘管數據並行化易於實現,但大規模系統應該考慮所有類型的並行化。這篇論文主要研究在同步訓練設置下數據並行化的成本和收益。

神經網路訓練硬體具備越來越強大的數據並行化處理能力。基於 GPU 或定製 ASIC 的專門系統輔以高性能互連技術使得能夠處理的數據並行化規模前所未有地大,而數據並行化的成本和收益尚未得到深入研究。一方面,如果數據並行化能夠顯著加速目前的系統,我們應該構建更大的系統。另一方面,如果額外的數據並行化收益小、成本高,則我們在設計系統時或許需要考慮最大化串列執行速度、利用其他並行化類型,甚至優先考慮能量使用、成本。

該研究嘗試對數據並行化對神經網路訓練的影響進行大量嚴謹的實驗研究。為了實現該目標,研究者考慮目前數據並行化局限條件下的實際工作負載,嘗試避免假設批大小函數對最優元參數的影響。該研究主要關注小批量隨機梯度下降(SGD)的變體,它們是神經網路訓練中的主要演算法。該研究的貢獻如下:

1. 該研究展示了批大小和達到樣本外誤差所需訓練步數之間的關係在六個不同的神經網路家族、三種訓練演算法和七個不同數據集上具備同樣的特徵。

具體來說,對於每個工作負載(模型、訓練演算法和數據集),增加批大小最初都會導致訓練步數的下降,但最終增加批大小將無法減少訓練步數。該研究首次通過實驗驗證不同模型、訓練演算法和數據集上批大小與訓練步數的關係,其分別調整每個批大小的學習率、動量和學習率調度器。

2. 該研究證明最大有用批大小因工作負載而異,且依賴於模型、訓練演算法和數據集的特性。具體而言,

帶動量(和 Nesterov 動量)的 SGD 能夠比普通的 SGD 更好地利用較大的批大小,未來可以研究其他演算法的批大小擴展特性。

一些模型在允許訓練擴展至更大的批大小方面優於其他模型。研究者將實驗數據和不同模型特性與最大有用批大小之間的關係結合起來,表明該關係與之前研究中表達的不同(如更寬的模型未必能夠更好地擴展至更大的批大小)。

數據集對最大有用批大小的影響不如模型和訓練演算法的影響,但該影響並非一貫依賴於數據集規模。

3. 訓練元參數的最優值(如學習率)並非一直遵循與批大小的簡單關係,儘管目前有大量啟發式方法可以調整元參數。學習率啟發式方法無法處理所有問題或所有批大小。假設簡單的啟發式方法(如隨著批大小的變化對學習率進行線性擴展)可能導致最差解或對規模遠遠小於基礎批大小的批量進行離散訓練。

4. 該研究回顧了之前研究中使用的實驗方案,部分解決了增加批大小是否降低模型質量這一問題。研究人員假設不同批大小對應的計算預算和元參數選擇能夠解釋文獻中的諸多分歧,然後發現沒有證據能夠證明批大小與模型質量下降存在必然關係,但是額外的正則化方法在批量較大的情況下變得更加重要。

實驗

實驗所用數據集如下所示:

實驗所用模型:

實驗依賴大量元參數調整,如學習率、動量和學習率調度器。在每次實驗中,研究者檢查最佳試驗與元參數搜索空間邊界是否太過接近,從而驗證元參數搜索空間。

圖 1:對於上圖中所有問題,訓練步數與批大小之間的關係具備同樣的特徵。

圖 2:對於不同(相近)性能目標,Steps-to-result 圖具備類似形式。

一些模型能夠更好地利用大批量

如下圖所示:

圖 3:a-c 展示了在相同數據集上,一些模型架構能夠從大批量中獲益更多。d、f 展示了寬度和深度變化會影響模型利用大批量的能力,但是該情況並不適用於所有模型架構。圖中所有的 MNIST 模型都使用了 mini-batch SGD,而其他模型使用了帶 Nesterov 動量的 SGD。每個圖的目標驗證誤差允許所有模型變體都能夠達到目標誤差。

帶動量的 SGD 可在大批量上實現完美擴展,但在小批量上能力與普通 SGD 相當。

如下圖所示:

數據集對最大有用批大小有影響,但影響程度可能不如模型或優化器

圖 5:數據集對最大有用批大小有影響。

圖 6:數據集大小的影響。

正則化在某些批大小上更加有用

圖 7:上圖是 ImageNet 數據集上的 ResNet-50 模型。每個點對應不同的元參數,因此每個點的學習率、Nesterov 動量和學習率調度器都是獨立選擇的。每個批大小的訓練預算是固定的,但是不同批大小的訓練預算不同。

最佳學習率和動量隨批大小的變化而改變

圖 8:最佳學習率未必遵循線性或平方根擴展啟發式方法。

圖 9:在固定訓練數量的 epoch 中,達到目標誤差的元參數空間區域隨著批大小增加而縮小。

圖 10:在固定的訓練步數下,達到目標誤差的元參數空間區域隨著批大小增加而擴大。

解的質量更多地依賴計算預算而不是批大小

圖 12:驗證誤差更多地依賴計算預算,而非批大小。

實驗缺陷

在元參數調整時難免會有一定程度的人類判斷。研究分析沒有考慮到取得目標誤差的魯棒性。

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。

------------------------------------------------

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

來自谷歌首席的靈魂追問:想當研究科學家,一事無成你受得了嗎?
華為聯合LSE提出KONG:有序近鄰圖的核函數

TAG:機器之心 |