0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Google:數(shù)據(jù)并行對(duì)神經(jīng)網(wǎng)絡(luò)訓(xùn)練用時(shí)的影響

zhKF_jqr_AI ? 來源:未知 ? 2018-11-29 08:57 ? 次閱讀

編者按:談到加速模型訓(xùn)練,并行計(jì)算現(xiàn)在已經(jīng)成為一個(gè)人人可以信手拈來的術(shù)語和技巧——通過把單線程轉(zhuǎn)為多線程同時(shí)進(jìn)行,我們可以把訓(xùn)練用時(shí)從一禮拜縮短到幾天甚至幾小時(shí)。但無論你有沒有嘗試過并行訓(xùn)練,你是否思考過這樣一些問題:模型訓(xùn)練是否存在一個(gè)閾值,當(dāng)batch size變化到一定程度后,訓(xùn)練所用的步數(shù)將不再減少;對(duì)于不同模型,這個(gè)閾值是否存在巨大差異……

摘要

近年來,硬件的不斷發(fā)展使數(shù)據(jù)并行計(jì)算成為現(xiàn)實(shí),并為加速神經(jīng)網(wǎng)絡(luò)訓(xùn)練提供了解決方案。為了開發(fā)下一代加速器,最簡(jiǎn)單的方法是增加標(biāo)準(zhǔn)minibatch神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法中的batch size。在這篇論文中,我們的目標(biāo)是通過實(shí)驗(yàn)表征增加batch size對(duì)訓(xùn)練時(shí)間的影響,其中衡量訓(xùn)練時(shí)間的是到達(dá)目標(biāo)樣本外錯(cuò)誤時(shí)模型所需的訓(xùn)練步驟數(shù)。

當(dāng)batch size增加到一定程度后,模型訓(xùn)練步數(shù)不再發(fā)生變化??紤]到batch size和訓(xùn)練步驟之間的確切關(guān)系對(duì)從業(yè)者、研究人員和硬件設(shè)計(jì)師來說都至關(guān)重要,我們還研究了不同訓(xùn)練算法、模型和數(shù)據(jù)記下這種關(guān)系的具體變化,并發(fā)現(xiàn)了它們之間的巨大差異。在論文最后,我們調(diào)整了以往文獻(xiàn)中關(guān)于batch size是否會(huì)影響模型性能的說法,并探討了論文結(jié)果對(duì)更快、更好訓(xùn)練神經(jīng)網(wǎng)絡(luò)的意義。

研究結(jié)果

通過全面定性定量的實(shí)驗(yàn),我們最終得出了以下結(jié)論:

1. 實(shí)驗(yàn)表明,在測(cè)試用的六個(gè)不同的神經(jīng)網(wǎng)絡(luò)、三種訓(xùn)練算法和七個(gè)數(shù)據(jù)集下,batch size和訓(xùn)練步驟之間關(guān)系都具有相同的特征形式。

具體來說,就是對(duì)于每個(gè)workload(模型、訓(xùn)練算法和數(shù)據(jù)集),如果我們?cè)趧傞_始的時(shí)候增加batch size,模型所需的訓(xùn)練步驟數(shù)確實(shí)會(huì)按比例逐漸減少,但越到后期,步驟數(shù)的減少量就越低,直到最后不再發(fā)生變化。與之前那些對(duì)元參數(shù)做出強(qiáng)有力假設(shè)的工作不同,我們的實(shí)驗(yàn)嚴(yán)格對(duì)照了不同網(wǎng)絡(luò)、不同算法和不同數(shù)據(jù)集的變化,這個(gè)結(jié)論更具普遍性。

2. 我們也發(fā)現(xiàn),最大有用batch size在不同workload上都有差異,而且取決于模型、訓(xùn)練算法和數(shù)據(jù)集的屬性。

相比一般SGD,具有動(dòng)量的SGD(以及Nesterov動(dòng)量)的最大有用batch size更大,這意味著未來大家可以研究不同算法和batch size縮放屬性之間的關(guān)系。

有些模型的最大有用batch size很大,有些則很小,而且它們的這種關(guān)系并不像以前論文中介紹的那么簡(jiǎn)單(比如更寬的模型并不總能更好地?cái)U(kuò)展到更大的batch size)。

相比神經(jīng)網(wǎng)絡(luò)和算法,數(shù)據(jù)集對(duì)最大有用batch size的影響較小,但它的影響方式有些復(fù)雜。

3. 我們還發(fā)現(xiàn),訓(xùn)練元參數(shù)的最佳值并不總是遵循和batch size的任何簡(jiǎn)單數(shù)學(xué)關(guān)系。比如近期有一種比較流行的學(xué)習(xí)率設(shè)置方法是直接線性縮放batch size,但我們發(fā)現(xiàn)這種方法并不適用于所有問題,也不適用于所有batch size。

4. 最后,通過回顧先前工作中使用的實(shí)驗(yàn)方案細(xì)節(jié),我們沒有找到任何關(guān)于增加batch size必然會(huì)降低模型性能的證據(jù),但當(dāng)batch size過大時(shí),額外的正則化確實(shí)會(huì)變得至關(guān)重要。

實(shí)驗(yàn)

下表是實(shí)驗(yàn)采用的數(shù)據(jù)集,size一欄指的是訓(xùn)練集中的樣本數(shù),訓(xùn)練數(shù)據(jù)分為圖像和文本兩類。

下表是實(shí)驗(yàn)用的模型,它們都是從業(yè)者會(huì)在各類任務(wù)中使用的主流模型。表中也展示了我們用于每個(gè)模型和數(shù)據(jù)集的學(xué)習(xí)率。學(xué)習(xí)率的作用是加速神經(jīng)網(wǎng)絡(luò)訓(xùn)練,但找到最佳學(xué)習(xí)率本身是一個(gè)優(yōu)化問題。

下圖展示了不同workload下batch size和訓(xùn)練步驟之間關(guān)系變化??梢园l(fā)現(xiàn),雖然使用的神經(jīng)網(wǎng)絡(luò)、算法和數(shù)據(jù)集不同,但這九幅圖都表現(xiàn)出了同樣的特征,就是在初始階段,隨著batch size逐漸增加,訓(xùn)練步驟數(shù)會(huì)有一段線性遞減的區(qū)間,緊接著是一個(gè)收益遞減的區(qū)域。最后,當(dāng)batch size突破最大有用batch size閾值后,訓(xùn)練步數(shù)不再明顯下降,即便增加并行線程也不行。

下圖不同模型下batch size和訓(xùn)練步驟之間關(guān)系變化。其中a、b、c三個(gè)模型的最大有用batch size比其他模型大得多,d和f表明改變神經(jīng)網(wǎng)絡(luò)的深度和寬度可以影響模型利用較大batch size的能力,但這種做法只適用于同模型對(duì)比,不能推廣到不同模型架構(gòu)的對(duì)比中。

在上圖的實(shí)驗(yàn)中,MNIST模型用的都是常規(guī)的mini-batch SGD,而其他模型則用了Nesterov momentum。經(jīng)過比較,我們發(fā)現(xiàn)Nesterov在處理較大batch size上比mini-batch SGD更好一些,所以這些模型的最大可用batch size也更大。

下圖顯示了不同數(shù)據(jù)集對(duì)batch size和訓(xùn)練步驟之間關(guān)系的影響。如圖所示,雖然不大,但影響確實(shí)是客觀存在的,而且非常復(fù)雜。比如對(duì)于MNIST,子集大小對(duì)最大有用batch size的影響幾乎為0;但對(duì)于ImageNet,子集小一點(diǎn)似乎訓(xùn)練起來更快。

小結(jié)

這里我們只呈現(xiàn)了部分實(shí)驗(yàn)圖表,感興趣的讀者可以閱讀原文進(jìn)行更深入的研究??偠灾?,這篇論文帶給我們的啟示是,盡管增加batch size在短期來看是加速神經(jīng)網(wǎng)絡(luò)訓(xùn)練最便捷的方法,但如果我們盲目操作,即便擁有最先進(jìn)的硬件條件,它在到達(dá)閾值后也不會(huì)為我們帶來額外收益。

當(dāng)然,這些實(shí)驗(yàn)數(shù)據(jù)也我們發(fā)掘了不少優(yōu)化算法,它們可能能夠在許多模型和數(shù)據(jù)集中始終如一地加速模型訓(xùn)練。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4777

    瀏覽量

    100989
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4625

    瀏覽量

    93143
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1209

    瀏覽量

    24767

原文標(biāo)題:Google:數(shù)據(jù)并行對(duì)神經(jīng)網(wǎng)絡(luò)訓(xùn)練用時(shí)的影響

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    人工神經(jīng)網(wǎng)絡(luò)原理及下載

    這個(gè)網(wǎng)絡(luò)輸入和相應(yīng)的輸出來“訓(xùn)練”這個(gè)網(wǎng)絡(luò),網(wǎng)絡(luò)根據(jù)輸入和輸出不斷地調(diào)節(jié)自己的各節(jié)點(diǎn)之間的權(quán)值來滿足輸入和輸出。這樣,當(dāng)訓(xùn)練結(jié)束后,我們給定
    發(fā)表于 06-19 14:40

    當(dāng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)用于應(yīng)用的時(shí)候,權(quán)值是不是不能變了?

    當(dāng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)用于應(yīng)用的時(shí)候,權(quán)值是不是不能變了????就是已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)是不是相當(dāng)于得到一個(gè)公式了,權(quán)值不能變了
    發(fā)表于 10-24 21:55

    請(qǐng)問Labveiw如何調(diào)用matlab訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型呢?

    我在matlab中訓(xùn)練好了一個(gè)神經(jīng)網(wǎng)絡(luò)模型,想在labview中調(diào)用,請(qǐng)問應(yīng)該怎么做呢?或者labview有自己的神經(jīng)網(wǎng)絡(luò)工具包嗎?
    發(fā)表于 07-05 17:32

    【案例分享】ART神經(jīng)網(wǎng)絡(luò)與SOM神經(jīng)網(wǎng)絡(luò)

    神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)新知識(shí)的同時(shí)要保持對(duì)之前學(xué)習(xí)的知識(shí)的記憶,而不是狗熊掰棒子SOM神經(jīng)網(wǎng)絡(luò)是一種競(jìng)爭(zhēng)學(xué)習(xí)型的無監(jiān)督神經(jīng)網(wǎng)絡(luò),它能將高維輸入數(shù)據(jù)映射到低維空間(通常為二維),同時(shí)保持輸入
    發(fā)表于 07-21 04:30

    如何設(shè)計(jì)BP神經(jīng)網(wǎng)絡(luò)圖像壓縮算法?

    稱為BP神經(jīng)網(wǎng)絡(luò)。采用BP神經(jīng)網(wǎng)絡(luò)模型能完成圖像數(shù)據(jù)的壓縮處理。在圖像壓縮中,神經(jīng)網(wǎng)絡(luò)的處理優(yōu)勢(shì)在于:巨量并行性;信息處理和存儲(chǔ)單元結(jié)合在一
    發(fā)表于 08-08 06:11

    怎么解決人工神經(jīng)網(wǎng)絡(luò)并行數(shù)據(jù)處理的問題

    本文提出了一個(gè)基于FPGA 的信息處理的實(shí)例:一個(gè)簡(jiǎn)單的人工神經(jīng)網(wǎng)絡(luò)應(yīng)用Verilog 語言描述,該數(shù)據(jù)流采用模塊化的程序設(shè)計(jì),并考慮了模塊間數(shù)據(jù)傳輸信號(hào)同 步的問題,有效地解決了人工神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 05-06 07:22

    基于光學(xué)芯片的神經(jīng)網(wǎng)絡(luò)訓(xùn)練解析,不看肯定后悔

    基于光學(xué)芯片的神經(jīng)網(wǎng)絡(luò)訓(xùn)練解析,不看肯定后悔
    發(fā)表于 06-21 06:33

    matlab實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò) 精選資料分享

    習(xí)神經(jīng)神經(jīng)網(wǎng)絡(luò),對(duì)于神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)是如何一直沒有具體實(shí)現(xiàn)一下:現(xiàn)看到一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)模型用于訓(xùn)練的輸入
    發(fā)表于 08-18 07:25

    圖像預(yù)處理和改進(jìn)神經(jīng)網(wǎng)絡(luò)推理的簡(jiǎn)要介紹

    為提升識(shí)別準(zhǔn)確率,采用改進(jìn)神經(jīng)網(wǎng)絡(luò),通過Mnist數(shù)據(jù)集進(jìn)行訓(xùn)練。整體處理過程分為兩步:圖像預(yù)處理和改進(jìn)神經(jīng)網(wǎng)絡(luò)推理。圖像預(yù)處理主要根據(jù)圖像的特征,將
    發(fā)表于 12-23 08:07

    優(yōu)化神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法有哪些?

    優(yōu)化神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法有哪些?
    發(fā)表于 09-06 09:52

    如何進(jìn)行高效的時(shí)序圖神經(jīng)網(wǎng)絡(luò)訓(xùn)練

    現(xiàn)有的圖數(shù)據(jù)規(guī)模極大,導(dǎo)致時(shí)序圖神經(jīng)網(wǎng)絡(luò)訓(xùn)練需要格外長(zhǎng)的時(shí)間,因此使用多GPU進(jìn)行訓(xùn)練變得成為尤為重要,如何有效地將多GPU用于時(shí)序圖神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 09-28 10:37

    如何訓(xùn)練和優(yōu)化神經(jīng)網(wǎng)絡(luò)

    神經(jīng)網(wǎng)絡(luò)是人工智能領(lǐng)域的重要分支,廣泛應(yīng)用于圖像識(shí)別、自然語言處理、語音識(shí)別等多個(gè)領(lǐng)域。然而,要使神經(jīng)網(wǎng)絡(luò)在實(shí)際應(yīng)用中取得良好效果,必須進(jìn)行有效的訓(xùn)練和優(yōu)化。本文將從神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-01 14:14 ?509次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的是什么

    、訓(xùn)練過程以及應(yīng)用場(chǎng)景。 1. 卷積神經(jīng)網(wǎng)絡(luò)的基本概念 1.1 卷積神經(jīng)網(wǎng)絡(luò)的定義 卷積神經(jīng)網(wǎng)絡(luò)是一種前饋深度學(xué)習(xí)模型,其核心思想是利用卷積操作提取輸入
    的頭像 發(fā)表于 07-03 09:15 ?473次閱讀

    如何利用Matlab進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練

    ,使得神經(jīng)網(wǎng)絡(luò)的創(chuàng)建、訓(xùn)練和仿真變得更加便捷。本文將詳細(xì)介紹如何利用Matlab進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,包括網(wǎng)絡(luò)創(chuàng)建、
    的頭像 發(fā)表于 07-08 18:26 ?1974次閱讀

    怎么對(duì)神經(jīng)網(wǎng)絡(luò)重新訓(xùn)練

    重新訓(xùn)練神經(jīng)網(wǎng)絡(luò)是一個(gè)復(fù)雜的過程,涉及到多個(gè)步驟和考慮因素。 引言 神經(jīng)網(wǎng)絡(luò)是一種強(qiáng)大的機(jī)器學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、自然語言處理、語音識(shí)別等領(lǐng)域。然而,隨著時(shí)間的推移,數(shù)據(jù)分布可
    的頭像 發(fā)表于 07-11 10:25 ?493次閱讀