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

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

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

Batch的大小、災(zāi)難性遺忘將如何影響學(xué)習(xí)速率

zhKF_jqr_AI ? 來(lái)源:未知 ? 作者:李倩 ? 2018-11-14 08:58 ? 次閱讀

編者按:上篇文章中,我們提到了如何高效地訓(xùn)練ResNet。在今天的文章中,我們將對(duì)mini-batch的尺寸進(jìn)行研究,同時(shí)要考慮遺忘性問(wèn)題。

在上一篇文章中,我們得到了一個(gè)18層的ResNet網(wǎng)絡(luò),測(cè)試精度達(dá)到94%需要341秒,并且經(jīng)過(guò)進(jìn)一步調(diào)整后,時(shí)間縮短至297秒。

目前,訓(xùn)練使用的batch大小是128,batch更大,就支持更高效的計(jì)算,所以我們想試試當(dāng)batch增大到512會(huì)發(fā)生什么。如果我們想估計(jì)之前的設(shè)置,就需要保證學(xué)習(xí)率和其他超參數(shù)都經(jīng)過(guò)合適的調(diào)整。

具有mini-batch的隨機(jī)梯度下降幾乎是每次只訓(xùn)練一個(gè)樣本,但不同的是,參數(shù)的更新會(huì)延遲到batch結(jié)束。在低學(xué)習(xí)率的限制下,你可以認(rèn)為這種延遲是更高階的效應(yīng),只要梯度只在mini-batch上求和而不是計(jì)算平均數(shù),批處理就不會(huì)改變?nèi)魏我浑A的順序。我們還在每個(gè)batch之后應(yīng)用了權(quán)重衰減,它會(huì)通過(guò)batch size中的一個(gè)因素增加,從而抵消需要處理的batch數(shù)量。如果梯度根據(jù)mini-batch被平均,那么學(xué)習(xí)速率應(yīng)該增加到可以消除這一影響只留下權(quán)重衰減,因?yàn)闄?quán)重衰減的更新對(duì)應(yīng)著學(xué)習(xí)率的因子。

所以現(xiàn)在我們將batch size定為512開(kāi)始訓(xùn)練。訓(xùn)練時(shí)間為256秒,將學(xué)習(xí)速率增加10%,在128的batch size下,3/5的訓(xùn)練都能達(dá)到94%的測(cè)試精確度。如之前所料,在512的batch size下,驗(yàn)證結(jié)果有更大的噪聲,這是因?yàn)榕?guī)范化的影響。

現(xiàn)在速度增加的很好,但是結(jié)果讓我們很吃驚

考慮到要用不同的mini-batch進(jìn)行訓(xùn)練,我們認(rèn)為這一過(guò)程中我們忽略了兩點(diǎn)。首先,我們認(rèn)為延遲更新,直到這一mini-batch結(jié)束都是更高階的影響,這在較低的學(xué)習(xí)率中是可行的。目前配置中的快速訓(xùn)練速度很大程度上取決于高學(xué)習(xí)率的使用。在凸優(yōu)化的背景下(或僅僅是二次方的梯度下降),我們可以在某一點(diǎn)設(shè)置學(xué)習(xí)速率,達(dá)到最大的訓(xùn)練速度,在這一點(diǎn)處,二階效應(yīng)開(kāi)始平衡一階效應(yīng),并且一階步長(zhǎng)產(chǎn)生的益處可以通過(guò)曲率效應(yīng)抵消。假設(shè)我們處于這種狀態(tài)mini-batch導(dǎo)致的延遲更新應(yīng)該產(chǎn)生相同的曲率懲罰,因?yàn)閷W(xué)習(xí)率的增加,訓(xùn)練會(huì)變得不穩(wěn)定。簡(jiǎn)而言之,如果可以忽略高階效應(yīng),就說(shuō)明訓(xùn)練速度不夠快。

另外,我們發(fā)現(xiàn)訓(xùn)練步驟只有一個(gè),但事實(shí)上,訓(xùn)練是一個(gè)很長(zhǎng)的運(yùn)行過(guò)程,要改變參數(shù)就需要好幾個(gè)步驟。所以,小的batch和大的batch訓(xùn)練之間的二階差異可以隨著時(shí)間積累,導(dǎo)致訓(xùn)練軌跡有很大不同。在之后的文章中我們會(huì)重新討論這一點(diǎn)。

所以,我們?cè)撊绾卧谙拗朴?xùn)練速度的情況下,還可以提高batch size,同時(shí)不用維持曲率效應(yīng)帶來(lái)的不穩(wěn)定性?答案可能是其他因素在限制學(xué)習(xí)速率,而我們并沒(méi)有考慮到曲率效應(yīng)。我們認(rèn)為這一其他因素就是“災(zāi)難性遺忘(Catastrophic Forgetting)”,這也是在較小batch中限制學(xué)習(xí)率的原因。

首先,我們要對(duì)這一概念進(jìn)行解釋。這一術(shù)語(yǔ)通常用于,當(dāng)一個(gè)模型在一個(gè)任務(wù)上訓(xùn)練后,又應(yīng)用到第二第三個(gè)模型上。但是學(xué)習(xí)之后的任務(wù)會(huì)導(dǎo)致性能下降,有時(shí)這種影響是災(zāi)難性的。在我們的案例中,這些任務(wù)是來(lái)自同一個(gè)訓(xùn)練集的不同部分,所以單單在一個(gè)epoch中就會(huì)發(fā)生遺忘現(xiàn)象。學(xué)習(xí)速率越高,訓(xùn)練中參數(shù)所用的越多,在某一點(diǎn)時(shí)這會(huì)削弱模型吸收信息的能力,早期的batch就會(huì)更容易遺忘。

當(dāng)我們提高batch size時(shí),并沒(méi)有立即增加模型的穩(wěn)定性。如果是曲率導(dǎo)致的,穩(wěn)定性會(huì)利可增加。反之,如果是遺忘是主要原因,模型不會(huì)受batch size的影響。

之后,我們進(jìn)行了實(shí)驗(yàn)將曲率的效應(yīng)和遺忘性區(qū)分開(kāi)。曲率效應(yīng)大多依賴于學(xué)習(xí)率,而遺忘主要受學(xué)習(xí)率和數(shù)據(jù)集大小的共同影響。我們繪制了在batch size為128時(shí),訓(xùn)練和測(cè)試損失的折線圖,訓(xùn)練所用的是不同大小的子集。

可以看到,首先,訓(xùn)練和測(cè)試損失都在學(xué)習(xí)速率為8的地方突然變得不穩(wěn)定,這說(shuō)明曲率影響在這里變得非常重要。相反,其他地方的訓(xùn)練和測(cè)試損失都很平穩(wěn)。

如我們所料,優(yōu)化學(xué)習(xí)速率因子(由測(cè)試集損失測(cè)定)和全部的訓(xùn)練數(shù)據(jù)集中的優(yōu)化學(xué)習(xí)速率因子很接近。對(duì)于更小的數(shù)據(jù)集來(lái)說(shuō),優(yōu)化學(xué)習(xí)速率因子更高。這也符合我們上面的假設(shè):對(duì)于一個(gè)足夠小的數(shù)據(jù)及來(lái)說(shuō),遺忘就不再是問(wèn)題了,學(xué)習(xí)速率才是問(wèn)題。對(duì)于更大的數(shù)據(jù)集,在遺忘的影響下,優(yōu)化點(diǎn)會(huì)更低。

同樣,在batch size為512的情況下,曲線圖也很有趣。由于batch size比上方的大了4倍,曲線出現(xiàn)不穩(wěn)定情況的速度更快了,當(dāng)學(xué)習(xí)速率為2時(shí)即出現(xiàn)。我們?nèi)匀幌M?,學(xué)習(xí)速率因子的優(yōu)化值和損失與128時(shí)的相近,因?yàn)檫z忘并不對(duì)batch size產(chǎn)生影響。以下是得到的結(jié)果:

我們?cè)O(shè)置batch size=128,然后用一定學(xué)習(xí)速率訓(xùn)練,在前五個(gè)epoch中線性增加,之后達(dá)到固定的速率并繼續(xù)訓(xùn)練25個(gè)epoch。我們?cè)趦蓚€(gè)數(shù)據(jù)集上進(jìn)行了比較:a)50%的完全訓(xùn)練集沒(méi)有經(jīng)過(guò)數(shù)據(jù)增強(qiáng);b)全部數(shù)據(jù)都經(jīng)過(guò)增強(qiáng)的數(shù)據(jù)集。當(dāng)模型在b上運(yùn)行時(shí),我們將它停止,重新計(jì)算最后幾個(gè)epoch的損失,這樣做的目的是比較模型在最近的數(shù)據(jù)上得到的損失和此前數(shù)據(jù)上計(jì)算出的損失。

以下是學(xué)習(xí)速率是原始訓(xùn)練時(shí)4倍的結(jié)果:

以下是原始訓(xùn)練是現(xiàn)在學(xué)習(xí)速率4倍的結(jié)果:

從第一組圖表中,我們發(fā)現(xiàn),與高學(xué)習(xí)速率相對(duì)應(yīng),測(cè)試損失幾乎和模型在a、b上訓(xùn)練時(shí)的結(jié)果一樣。這說(shuō)明,訓(xùn)練無(wú)法從b和a中提取信息。右邊的圖也證明了這一結(jié)果,最近訓(xùn)練的batch表現(xiàn)出比此前的batch更低的損失,但是在半個(gè)epoch之內(nèi),損失又恢復(fù)到模型在從未見(jiàn)過(guò)的測(cè)試樣本上的水平。這說(shuō)明,模型忘記了在同一個(gè)epoch中它此前看到的東西,這也說(shuō)明這一學(xué)習(xí)速率限制了它能吸收到的信息。

第二組圖表表現(xiàn)出了相反的結(jié)果。全部經(jīng)過(guò)數(shù)據(jù)增強(qiáng)的數(shù)據(jù)集導(dǎo)致了更低的測(cè)試損失,最近的訓(xùn)練batch比此前表現(xiàn)得更好。

結(jié)語(yǔ)

上述結(jié)果表明,如果我們想訓(xùn)練一個(gè)擁有較高學(xué)習(xí)速率的神經(jīng)網(wǎng)絡(luò),那么就要考慮兩點(diǎn)。對(duì)于目前的模型和數(shù)據(jù)集來(lái)說(shuō),在128的batch size下,我們不會(huì)受到遺忘的影響,要么可以找方法降低影響(例如用更大的、伴有稀疏更新的模型或者自然梯度下降),要么可以增大batch size。當(dāng)batch size達(dá)到512時(shí),曲率就開(kāi)始影響結(jié)果,我們關(guān)注的重點(diǎn)應(yīng)該轉(zhuǎn)移到曲率上來(lái)。

對(duì)于更大的數(shù)據(jù)集,例如ImageNet-1k,遺忘的影響會(huì)更嚴(yán)重。這就能解釋為什么在小的batch size、高學(xué)習(xí)率的訓(xùn)練中加速會(huì)失敗。

在接下來(lái)的文章中,我們會(huì)加速批規(guī)范化,加入一些正則化,同時(shí)替換另一種基準(zhǔn)。

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

    關(guān)注

    4

    文章

    1197

    瀏覽量

    24538
  • resnet
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    3144

原文標(biāo)題:如何訓(xùn)練你的ResNet(二):Batch的大小、災(zāi)難性遺忘將如何影響學(xué)習(xí)速率

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    影響閃存遺忘的主要因素

    正如艾賓浩斯記憶曲線所示:輸入的信息經(jīng)過(guò)人腦的注意過(guò)程后被學(xué)習(xí),學(xué)習(xí)的信息進(jìn)入人腦短時(shí)記憶。遺忘學(xué)習(xí)后立即開(kāi)始,若不及時(shí)加以復(fù)習(xí),短時(shí)記憶中的信息就會(huì)被
    的頭像 發(fā)表于 12-08 10:41 ?616次閱讀
    影響閃存<b class='flag-5'>遺忘</b>的主要因素

    *** 災(zāi)難性故障,求救,經(jīng)驗(yàn)分享

    我用***不久,出現(xiàn) 災(zāi)難性故障的次數(shù)很多(操作失敗),有人說(shuō)是盜版,有人說(shuō)是誤操作,有人說(shuō)是電腦內(nèi)存小。請(qǐng)問(wèn)有沒(méi)有人出現(xiàn)過(guò)同樣的問(wèn)題,又有如何的應(yīng)對(duì)方法,分享一下你的經(jīng)驗(yàn),250元的考證,要是出現(xiàn)了這個(gè)問(wèn)題,學(xué)子們又得浪費(fèi)父母的250RMB了,跪求解決!
    發(fā)表于 05-03 14:36

    ***災(zāi)難性故障

    打開(kāi)不了,顯示出Exception EOleException in moudle ***.exe at0036E780.災(zāi)難性故障
    發(fā)表于 10-15 12:10

    有沒(méi)人在使用AD過(guò)程中出現(xiàn)災(zāi)難性故障啊,怎么解決的?

    有沒(méi)人在使用AD過(guò)程中出現(xiàn)災(zāi)難性故障啊,怎么解決的。我最近使用的AD軟件總是出現(xiàn)
    發(fā)表于 11-20 09:11

    AD畫圖出現(xiàn)“災(zāi)難性故障 (異常來(lái)自 HRESULT:0x8000FFFF (E_UNEXPECTED))”

    在AD畫原理圖中將原理圖庫(kù)中的元件拖入原理圖時(shí)出現(xiàn)“災(zāi)難性故障 (異常來(lái)自 HRESULT:0x8000FFFF (E_UNEXPECTED))”
    發(fā)表于 01-22 17:11

    PCB災(zāi)難性故障

    未知情況,我把所有封裝都選好了往PCB導(dǎo)的時(shí)候出現(xiàn)的這個(gè)問(wèn)題,不知道為什么
    發(fā)表于 03-10 15:31

    DeepMind徹底解決人工智能災(zāi)難性遺忘問(wèn)題

    人工智能系統(tǒng)在設(shè)計(jì)上就傾向于在每次開(kāi)始新的學(xué)習(xí)之前,忘記先前學(xué)到的所有東西,這被稱為災(zāi)難性遺忘。
    的頭像 發(fā)表于 09-03 11:11 ?3220次閱讀

    理解Batch Normalization中Batch所代表具體含義的知識(shí)基礎(chǔ)

    所謂“Mini-Batch”,是指的從訓(xùn)練數(shù)據(jù)全集T中隨機(jī)選擇的一個(gè)訓(xùn)練數(shù)據(jù)子集合。假設(shè)訓(xùn)練數(shù)據(jù)集合T包含N個(gè)樣本,而每個(gè)Mini-BatchBatch Size為b,于是整個(gè)訓(xùn)練數(shù)據(jù)可被分成N
    的頭像 發(fā)表于 10-19 09:19 ?3.5w次閱讀

    在沒(méi)有災(zāi)難性遺忘的情況下,實(shí)現(xiàn)深度強(qiáng)化學(xué)習(xí)的偽排練

    來(lái)自中國(guó)的研究人員通過(guò)提出一種新的動(dòng)態(tài)特征融合(DFF)策略來(lái)管理動(dòng)態(tài)特征融合,該策略為不同的圖像和位置分配不同的融合權(quán)重。DFF包括兩個(gè)模塊,特征提取器和自適應(yīng)權(quán)重融合組件。該模型通過(guò)實(shí)施權(quán)重模型來(lái)實(shí)現(xiàn)動(dòng)態(tài)特征融合,從而能夠針對(duì)輸入特征圖中的每一單個(gè)位置推斷多級(jí)特征上的適當(dāng)融合權(quán)重。
    的頭像 發(fā)表于 03-05 17:13 ?3380次閱讀
    在沒(méi)有<b class='flag-5'>災(zāi)難性</b><b class='flag-5'>遺忘</b>的情況下,實(shí)現(xiàn)深度強(qiáng)化<b class='flag-5'>學(xué)習(xí)</b>的偽排練

    實(shí)現(xiàn)人工智能戰(zhàn)略遺忘的三個(gè)方法

    神經(jīng)網(wǎng)絡(luò)的邏輯與此不同,如果一個(gè)神經(jīng)網(wǎng)絡(luò)被訓(xùn)練學(xué)習(xí)英語(yǔ),那么其會(huì)通過(guò)調(diào)用參數(shù)解決英語(yǔ)問(wèn)題。如果你想教它學(xué)習(xí)西班牙語(yǔ),那么神經(jīng)網(wǎng)絡(luò)對(duì)于西班牙語(yǔ)的認(rèn)知就會(huì)覆蓋掉之前為英語(yǔ)學(xué)習(xí)所儲(chǔ)備的知識(shí),有效清空所有內(nèi)容并從零開(kāi)始。我們將其稱為“
    的頭像 發(fā)表于 03-05 17:44 ?3383次閱讀

    DeepMind最新研究通過(guò)函數(shù)正則化解決災(zāi)難性遺忘

    近年來(lái),人們對(duì)持續(xù)學(xué)習(xí)(也稱為終身學(xué)習(xí))的興趣再度興起,這是指以在線方式從可能與不斷增加的任務(wù)相關(guān)的數(shù)據(jù)中學(xué)習(xí)的系統(tǒng)。持續(xù)學(xué)習(xí)系統(tǒng)必須適應(yīng)所有早期任務(wù)的良好表現(xiàn),而無(wú)需對(duì)以前的數(shù)據(jù)進(jìn)行
    的頭像 發(fā)表于 06-29 07:53 ?2862次閱讀
    DeepMind最新研究通過(guò)函數(shù)正則化解決<b class='flag-5'>災(zāi)難性</b><b class='flag-5'>遺忘</b>

    batch normalization時(shí)的一些缺陷

    導(dǎo)讀 batch normalization時(shí)的一些缺陷。 Batch Normalization確實(shí)是深度學(xué)習(xí)領(lǐng)域的重大突破之一,也是近年來(lái)研究人員討論的熱點(diǎn)之一。Batch
    的頭像 發(fā)表于 11-03 17:27 ?3046次閱讀
    <b class='flag-5'>batch</b> normalization時(shí)的一些缺陷

    增量學(xué)習(xí)的概念

    在機(jī)器學(xué)習(xí)領(lǐng)域,增量學(xué)習(xí)致力于解決模型訓(xùn)練的一個(gè)普遍缺陷:「災(zāi)難性遺忘(catastrophic forgetting)」 ,也就是說(shuō),一般的機(jī)器學(xué)
    的頭像 發(fā)表于 03-05 15:50 ?3782次閱讀

    有關(guān)batch size的設(shè)置范圍

    我們知道,batch size 決定了深度學(xué)習(xí)訓(xùn)練過(guò)程中,完成每個(gè) epoch 所需的時(shí)間和每次迭代(iteration)之間梯度的平滑程度。batch size 越大,訓(xùn)練速度則越快,內(nèi)存占用更大,但收斂變慢。
    的頭像 發(fā)表于 07-12 10:15 ?6589次閱讀

    基于先驗(yàn)指導(dǎo)的對(duì)抗樣本初始化方法提升FAT效果

    這種現(xiàn)象最先由Wong等人發(fā)現(xiàn),隨后他們又發(fā)現(xiàn)使用FGSM生成對(duì)抗樣本時(shí)使用隨機(jī)初始化可以延緩災(zāi)難性遺忘發(fā)生的時(shí)間,但是隨著訓(xùn)練的進(jìn)行,災(zāi)難性遺忘還是無(wú)法避免。
    的頭像 發(fā)表于 12-19 09:42 ?627次閱讀