<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

jmiy_worldofai ? 來源:lq ? 2018-12-19 10:39 ? 次閱讀

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

神經網絡在解決大量預測任務時非常高效。在較大數據集上訓練的大型模型是神經網絡近期成功的原因之一,我們期望在更多數據上訓練的模型可以持續取得預測性能改進。盡管當下的 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:驗證誤差更多地依賴計算預算,而非批大小。

實驗缺陷

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 加速器
    +關注

    關注

    2

    文章

    764

    瀏覽量

    36683
  • 神經網絡
    +關注

    關注

    42

    文章

    4590

    瀏覽量

    99202
  • 數據集
    +關注

    關注

    4

    文章

    1182

    瀏覽量

    24427

原文標題:數據并行化對神經網絡訓練有何影響?谷歌大腦進行了實證研究

文章出處:【微信號:worldofai,微信公眾號:worldofai】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【PYNQ-Z2申請】基于PYNQ的卷積神經網絡加速

    ,得到訓練參數2、利用開發板arm與FPGA聯合的特性,在arm端實現圖像預處理已經卷積核神經網絡的池、激活函數和全連接,在FPGA端實現卷積運算3、對整個系統進行調試。4、在基本實
    發表于 12-19 11:37

    【PYNQ-Z2試用體驗】神經網絡基礎知識

    思考問題的過程。人腦輸入一個問題,進行思考,然后給出答案。神經網絡就是在模擬人的思考這一過程。而我們要做的就是以數學的方式,將這一抽象的過程進行量化。神經元與激活函數人的
    發表于 03-03 22:10

    【案例分享】ART神經網絡與SOM神經網絡

    神經網絡在學習新知識的同時要保持對之前學習的知識的記憶,而不是狗熊掰棒子SOM神經網絡是一種競爭學習型的無監督神經網絡,它能將高維輸入數據映射到低維空間(通常為二維),同時保持輸入
    發表于 07-21 04:30

    如何設計BP神經網絡圖像壓縮算法?

    稱為BP神經網絡。采用BP神經網絡模型能完成圖像數據的壓縮處理。在圖像壓縮中,神經網絡的處理優勢在于:巨量并行性;信息處理和存儲單元結合在一
    發表于 08-08 06:11

    MATLAB訓練好的神經網絡移植到STM32F407上

    我在MATLAB中進行了神經網絡模型訓練,然后將訓練好的模型的閾值和權值導出來,移植到STM32F407單片機上進行計算,但是在單片機上的計
    發表于 06-16 11:14

    如何采用神經網絡技術,對鎳鉻-鎳硅熱電偶進行了非線性校正?

    請問如何采用基于虛擬儀器編程語言CVI編成的BP神經網絡訓練儀對K型鎳鉻-鎳硅熱電偶的非線性進行校正?
    發表于 04-08 06:55

    怎么解決人工神經網絡并行數據處理的問題

    本文提出了一個基于FPGA 的信息處理的實例:一個簡單的人工神經網絡應用Verilog 語言描述,該數據流采用模塊的程序設計,并考慮了模塊間數據傳輸信號同 步的問題,有效地解決了人工
    發表于 05-06 07:22

    基于光學芯片的神經網絡訓練解析,不看肯定后悔

    基于光學芯片的神經網絡訓練解析,不看肯定后悔
    發表于 06-21 06:33

    分享一種400×25×2的三層BP神經網絡

    本文首先簡單的選取了少量的樣本并進行樣本歸一,這樣就得到了可供訓練訓練集和測試集。然后訓練了400×25×2的三層BP
    發表于 07-12 06:49

    matlab實現神經網絡 精選資料分享

    神經神經網絡,對于神經網絡的實現是如何一直沒有具體實現一下:現看到一個簡單的神經網絡模型用于訓練的輸入
    發表于 08-18 07:25

    卷積神經網絡模型發展及應用

    十余年來快速發展的嶄新領域,越來越受到研究者的關注。卷積神經網絡(CNN)模型是深度學習模型中最重要的一種經典結構,其性能在近年來深度學習任務上逐步提高。由于可以自動學習樣本數據的特征表示,卷積
    發表于 08-02 10:39

    優化神經網絡訓練方法哪些?

    優化神經網絡訓練方法哪些?
    發表于 09-06 09:52

    如何進行高效的時序圖神經網絡訓練

    現有的圖數據規模極大,導致時序圖神經網絡訓練需要格外長的時間,因此使用多GPU進行訓練變得成為尤為重要,如何有效地將多GPU用于時序圖
    發表于 09-28 10:37

    卷積神經網絡簡介:什么是機器學習?

    模型。第 3 部分將研究使用專用 AI 微控制器測試模型的特定用例。什么是卷積神經網絡?神經網絡是系統或神經元結構,使人工智能能夠更好地理解數據
    發表于 02-23 20:11

    什么是神經網絡?為什么說神經網絡很重要?神經網絡如何工作?

    神經網絡是一個具有相連節點層的計算模型,其分層結構與大腦中的神經元網絡結構相似。神經網絡可通過數據進行
    的頭像 發表于 07-26 18:28 ?2479次閱讀
    什么是<b class='flag-5'>神經網絡</b>?為什么說<b class='flag-5'>神經網絡</b>很重要?<b class='flag-5'>神經網絡</b>如何工作?
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>