版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、尋找合適的學(xué)習(xí)率(learning rate)學(xué)習(xí)率是一個(gè)非常非常重要的超參數(shù),這個(gè)參數(shù)呢,面對(duì)不同規(guī)模、不 同batch-size、不同優(yōu)化方式、不同數(shù)據(jù)集,其最合適的值都是不確定的, 我們無法光憑經(jīng)驗(yàn)來準(zhǔn)確地確定lr的值,我們唯一可以做的,就是在訓(xùn)練中 不斷尋找最合適當(dāng)前狀態(tài)的學(xué)習(xí)率。比如下圖利用fastai中的lr_find()函數(shù)尋找合適的學(xué)習(xí)率,根據(jù)下方的 學(xué)習(xí)率-損失曲線得到此時(shí)合適的學(xué)習(xí)率為1e-2。learning-rate 與 batch-size 的關(guān)系一般來說,越大的batch-size使用越大的學(xué)習(xí)率。原理很簡(jiǎn)單,越大的batch-size意味著我們學(xué)習(xí)的時(shí)候,收斂方向
2、的 confidence越大,我們前進(jìn)的方向更加堅(jiān)定,而小的batch-size則顯得比較雜 亂,毫無規(guī)律性,因?yàn)橄啾扰未蟮臅r(shí)候,批次小的情況下無法照顧到更多 的情況,所以需要小的學(xué)習(xí)率來保證不至于出錯(cuò)??梢钥聪聢D損失Loss與學(xué)習(xí)率Lr的關(guān)系:LOSS vs. LEARNING RATE FOR DIFFERENT BATCH SIZESBATCH SIZE小 Vi? .的唬-*WW-在顯存足夠的條件下,最好采用較大的batch-size進(jìn)行訓(xùn)練,找到合適 的學(xué)習(xí)率后,可以加快收斂速度。另外,較大的batch-size可以避免batch normalization出現(xiàn)的一些小問題, 參考如
3、下Pytorch庫Issue。權(quán)重初始化權(quán)重初始化相比于其他的trick來說在平常使用并不是很頻繁。因?yàn)榇蟛糠秩耸褂玫哪P投际穷A(yù)訓(xùn)練模型,使用的權(quán)重都是在大型數(shù)據(jù) 集上訓(xùn)練好的模型,當(dāng)然不需要自己去初始化權(quán)重了。只有沒有預(yù)訓(xùn)練模型 的領(lǐng)域會(huì)自己初始化權(quán)重,或者在模型中去初始化神經(jīng)網(wǎng)絡(luò)最后那幾個(gè)全連 接層的權(quán)重。常用的權(quán)重初始化算法是 kaiming_normal或者xavier_normal。 dropoutdropout是指在深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練過程中,對(duì)于神經(jīng)網(wǎng)絡(luò)單元,按照一 定的概率將其暫時(shí)從網(wǎng)絡(luò)中丟棄。注意是,對(duì)于隨機(jī)梯度下降來說,由于是 隨機(jī)丟棄,故而每一個(gè)mini-batch都在訓(xùn)練
4、不同的網(wǎng)絡(luò)。Dropout類似于bagging ensemble減少variance。也就是投通過投票來減 少可變性。通常我們?cè)谌B接層部分使用dropout,在卷積層則不使用。但dropout并不適合所有的情況,不要無腦上Dropout。Dropout 一般適合于全連接層部分,而卷積層由于其參數(shù)并不是很多, 所以不需要dropout,加上的話對(duì)模型的泛化能力并沒有太大的影響。hidden layersinput layer 4Diit pnt I fiyr.r我們一般在網(wǎng)絡(luò)的最開始和結(jié)束的時(shí)候使用全連接層,而hidden layers 則是網(wǎng)絡(luò)中的卷積層。所以一般情況,在全連接層部分,采用較
5、大概率的 dropout而在卷積層采用低概率或者不采用dropout。數(shù)據(jù)集處理主要有數(shù)據(jù)篩選以及數(shù)據(jù)增強(qiáng)o fastai中的圖像增強(qiáng)技術(shù)為什么相對(duì)比較好9難例挖掘 hard-negative-mining分析模型難以預(yù)測(cè)正確的樣本,給出針對(duì)性方法。多模型融合Ensemble是論文刷結(jié)果的終極核武器,深度學(xué)習(xí)中一般有以下幾種方式o同樣的參數(shù),不同的初始化方式o不同的參數(shù),通過cross-validation,選取最好的幾組同樣的參數(shù),模型訓(xùn)練的不同階段,即不同迭代次數(shù)的模型。不同的模型,進(jìn)行線性融合.例如RNN和傳統(tǒng)模型.提高模型性能和魯棒性大法:probs融合和投票法。假設(shè)這里有 model
6、 1, model 2, model 3,可以這樣融合:modell probs + model2 probs + model3 probs = final labelmodel1 label , model2 label , model3 label = voting = final labelmodel1_1 probs + . + model1_n probs = mode1 label, model2 label 與 model3 獲取的 label 方式與 1 相同= voting = final label第三個(gè)方式的啟發(fā)來源于,如果一個(gè)model的隨機(jī)種子沒有固定,多次 預(yù)測(cè)得到
7、的結(jié)果可能不同。以上方式的效果要根據(jù)label個(gè)數(shù),數(shù)據(jù)集規(guī)模等特征具體問題具體分 析,表現(xiàn)可能不同,方式無非是probs融合和投票法的單獨(dú)使用or結(jié)合。差分學(xué)習(xí)率與遷移學(xué)習(xí)首先說下遷移學(xué)習(xí),遷移學(xué)習(xí)是一種很常見的深度學(xué)習(xí)技巧,我們利用 很多預(yù)訓(xùn)練的經(jīng)典模型直接去訓(xùn)練我們自己的任務(wù)。雖然說領(lǐng)域不同,但是 在學(xué)習(xí)權(quán)重的廣度方面,兩個(gè)任務(wù)之間還是有聯(lián)系的。由上圖,我們拿來model A訓(xùn)練好的模型權(quán)重去訓(xùn)練我們自己的模 型權(quán)重(Model B _| ),其中,modelA可能是ImageNet的預(yù)訓(xùn)練權(quán)重,而 ModelB則是我們自己想要用來識(shí)別貓和狗的預(yù)訓(xùn)練權(quán)重。那么差分學(xué)習(xí)率和遷移學(xué)習(xí)有什么關(guān)
8、系呢?我們直接拿來其他任務(wù)的訓(xùn) 練權(quán)重,在進(jìn)行optimize的時(shí)候,如何選擇適當(dāng)?shù)膶W(xué)習(xí)率是一個(gè)很重要的問 題。一般地,我們?cè)O(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)(如下圖)一般分為三個(gè)部分,輸入層,隱 含層和輸出層,隨著層數(shù)的增加,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的特征越抽象。因此,下 圖中的卷積層和全連接層的學(xué)習(xí)率也應(yīng)該設(shè)置的不一樣,一般來說,卷積層 設(shè)置的學(xué)習(xí)率應(yīng)該更低一些,而全連接層的學(xué)習(xí)率可以適當(dāng)提高。C - Cqiwq心sLayvrsD - DdhMlearningfa他lgy larger learningC - CorivoiutiOfLayers - Osnse Layera這就是差分學(xué)習(xí)率的意思,在不同的層設(shè)置不同的
9、學(xué)習(xí)率,可以提高神 經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果,具體的介紹可以查看下方的連接。I arg 頑 optimal learning余弦退火(cosine annealing)和熱重啟的隨機(jī)梯度下降余弦就是類似于余弦函數(shù)的曲線,退火就是下降,余弦退火就 是學(xué)習(xí)率類似余弦函數(shù)慢慢下降。熱重啟就是在學(xué)習(xí)的過程中,學(xué)習(xí)率慢慢下降然后突然再回彈(重啟)然后繼續(xù)慢慢下降。兩個(gè)結(jié)合起來就是下方的學(xué)習(xí)率變化圖:CDM14 Wl4bn!a l4*rFW)fl WfWllUfe* HHbLBTLli嘗試過擬合一個(gè)小數(shù)據(jù)集這是一個(gè)經(jīng)典的小trick 了,但是很多人并不這樣做,可以嘗試一下。關(guān)閉正則化/隨機(jī)失活/數(shù)據(jù)擴(kuò)充,使用訓(xùn)練
10、集的一小部分,讓神經(jīng)網(wǎng)絡(luò)訓(xùn)練 幾個(gè)周期。確??梢詫?shí)現(xiàn)零損失,如果沒有,那么很可能什么地方出錯(cuò)了。多尺度訓(xùn)練多尺度訓(xùn)練是一種直接有效的方法,通過輸入不同尺度的圖像數(shù)據(jù) 集,因?yàn)樯窠?jīng)網(wǎng)絡(luò)卷積池化的特殊性,這樣可以讓神經(jīng)網(wǎng)絡(luò)充分地學(xué)習(xí)不同 分辨率下圖像的特征,可以提高機(jī)器學(xué)習(xí)的性能。也可以用來處理過擬合效應(yīng),在圖像數(shù)據(jù)集不是特別充足的情況下,可 以先訓(xùn)練小尺寸圖像,然后增大尺寸并再次訓(xùn)練相同模型,這樣的思想在 Yolo-v2的論文中也提到過。需要注意的是:多尺度訓(xùn)練并不是適合所有的深度學(xué)習(xí)應(yīng)用,多尺度訓(xùn) 練可以算是特殊的數(shù)據(jù)增強(qiáng)方法,在圖像大小這一塊做了調(diào)整。如果有可能 最好利用可視化代碼將多尺度后
11、的圖像近距離觀察一下,看看多尺度會(huì)對(duì) 圖像的整體信息有沒有影響,如果對(duì)圖像信息有影響的話,這樣直接訓(xùn)練 的話會(huì)誤導(dǎo)算法導(dǎo)致得不到應(yīng)有的結(jié)果。Cross Validation 交叉驗(yàn)證交叉驗(yàn)證往往是對(duì)實(shí)際應(yīng)用中數(shù)據(jù)不充足而采用的,基本目的就是 重復(fù)使用數(shù)據(jù)。在平常中我們將所有的數(shù)據(jù)分為訓(xùn)練集和驗(yàn)證集就已經(jīng)是簡(jiǎn) 單的交叉驗(yàn)證了,可以稱為1折交叉驗(yàn)證。注意,交叉驗(yàn)證和測(cè)試集沒關(guān) 系,測(cè)試集是用來衡量我們的算法標(biāo)準(zhǔn)的,不參與到交叉驗(yàn)證中來。 交叉驗(yàn)證只針對(duì)訓(xùn)練集和驗(yàn)證集。交叉驗(yàn)證是Kaggle比賽中特別推崇的一種技巧,我們經(jīng)常使用的是5- 折(5-fold)交叉驗(yàn)證,將訓(xùn)練集分成5份,隨機(jī)挑一份做驗(yàn)證
12、集其余為訓(xùn)練集, 循環(huán)5次,這種比較常見計(jì)算量也不是很大。還有一種叫做leave-one-out cross validation留一交叉驗(yàn)證,這種交叉驗(yàn)證就是n-折交叉,n表示數(shù)據(jù)集 的容量,這種方法只適合數(shù)據(jù)量比較小的情況,計(jì)算量非常大的情況很少用 到這種方法。優(yōu)化算法按理說不同的優(yōu)化算法適合于不同的任務(wù),不過我們大多數(shù)采用的優(yōu)化算法還是是 adam 和 SGD+monmentum。Adam可以解決一堆奇奇怪怪的問題(有時(shí)loss降不下去,換Adam瞬 間就好了),也可以帶來一堆奇奇怪怪的問題(比如單詞詞頻差異很大,當(dāng) 前batch沒有的單詞的詞向量也被更新;再比如Adam和L2正則結(jié)合產(chǎn)
13、生的 復(fù)雜效果)。用的時(shí)候要膽大心細(xì),萬一遇到問題找各種魔改 Adam (比如 MaskedAdam, AdamW 啥的)搶救。但看一些博客說adam的相比SGD,收斂快,但泛化能力差,更優(yōu)結(jié)果 似乎需要精調(diào)SGD。adam,adadelta等,在小數(shù)據(jù)上,我這里實(shí)驗(yàn)的效果不如sgd, sgd收斂速度 會(huì)慢一些,但是最終收斂后的結(jié)果,一般都比較好。如果使用sgd的話,可以選擇從1.0或者0.1的學(xué)習(xí)率開始,隔一段時(shí)間,在 驗(yàn)證集上檢查一下,如果cost沒有下降,就對(duì)學(xué)習(xí)率減半.我看過很多論文都這 么搞,我自己實(shí)驗(yàn)的結(jié)果也很好.當(dāng)然,也可以先用ada系列先跑,最后快收斂的 時(shí)候,更換成sgd繼續(xù)
14、訓(xùn)練.同樣也會(huì)有提升.據(jù)說adadelta 一般在分類問題上 效果比較好,adam在生成問題上效果比較好。adam收斂雖快但是得到的解往往沒有sgd+momentum得到的解更好,如果不考慮時(shí)間成本的話還是用sgd吧。adam是不需要特別調(diào)lr,sgd要多花點(diǎn)時(shí)間調(diào)lr和initial weights。數(shù)據(jù)預(yù)處理方式zero-center ,這個(gè)挺常用的。JX = npt mean(X axis = 0)X/ = npt stdX. axis = 0)PCA whitening,這個(gè)用的比較少。訓(xùn)練技巧要做梯度歸一化,即算出來的梯度除以minibatch sizeclip c(梯度裁剪):限制
15、最大梯度,其實(shí)是value = sqrt(w2+w2”2.)如果 value超過了閾值,就算一個(gè)衰減系系數(shù),讓value的值等于閾值:5,10,15 dropout對(duì)小數(shù)據(jù)防止過擬合有很好的效果,值一般設(shè)為0.5小數(shù)據(jù)上dropout+sgd在我的大部分實(shí)驗(yàn)中,效果提升都非常明顯.因此可能 的話,建議一定要嘗試一下。dropout的位置比較有講究,對(duì)于RNN,建議放到輸入-RNN與RNN-輸出的 位置。除了 gate之類的地方,需要把輸出限制成0-1之外,盡量不要用sigmoid,可以用 tanh或者relu之類的激活函數(shù).sigmoid函數(shù)在-4到4的區(qū)間里,才有較大的梯度。之外的區(qū)間,梯度
16、接近0, 很容易造成梯度消失問題。輸入0均值,sigmoid函數(shù)的輸出不是0均值的。rnn 的 dim 和 embdding size, 一般從 128 上下開始調(diào)整.batch size, 一般從 128 左右開始調(diào)整.batch size合適最重要,并不是越大越好.word2vec初始化,在小數(shù)據(jù)上,不僅可以有效提高收斂速度,也可以可以提高結(jié) 果.盡量對(duì)數(shù)據(jù)做shuffleLSTM的forget gate的bias,用1.0或者更大的值做初始化,可以取得更好的結(jié) 果。這里實(shí)驗(yàn)設(shè)成1.0,可以提高收斂速度.實(shí)際使用中,不同的任務(wù),可能需要 嘗試不同的值.Batch Normalization
17、 據(jù)說可以提升效果。如果你的模型包含全連接層(MLP),并且輸入和輸出大小一樣,可以考慮將MLP替換成Highway Network,我嘗試對(duì)結(jié)果有一點(diǎn)提升,建議作為最后 提升模型的手段,原理很簡(jiǎn)單,就是給輸出加了一個(gè)gate來控制信息的流動(dòng)。 技巧:一輪加正則,一輪不加正則,反復(fù)進(jìn)行。在數(shù)據(jù)集很大的情況下,一上來就跑全量數(shù)據(jù)。建議先用1/100、1/10的數(shù) 據(jù)跑一跑,對(duì)模型性能和訓(xùn)練時(shí)間有個(gè)底,外推一下全量數(shù)據(jù)到底需要跑多 久。在沒有足夠的信心前不做大規(guī)模實(shí)驗(yàn)。subword總是會(huì)很穩(wěn)定地漲點(diǎn),只管用就對(duì)了。o GPU上報(bào)錯(cuò)時(shí)盡量放在CPU上重跑,錯(cuò)誤信息更友好。例如GPU報(bào) ERROR:tensorflow:Model diverged with loss = NaN其實(shí)很有可能是輸入ID超出了 softmax詞表的范圍。o在確定初始學(xué)習(xí)率的時(shí)候,從一個(gè)很小的值(例如1e-7)開始,然后每一步 指數(shù)增大學(xué)習(xí)率(例如擴(kuò)大1.05倍)進(jìn)行訓(xùn)練。訓(xùn)練幾百步應(yīng)該能觀察到損 失函數(shù)隨訓(xùn)練步數(shù)呈對(duì)勾形,選擇損失下降最快那一段的學(xué)習(xí)率即可。o補(bǔ)充一個(gè)rnn trick,仍然是不考慮時(shí)間成本的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高層大廈供配電課程設(shè)計(jì)
- 托班喝水課程設(shè)計(jì)
- 騎單車音樂課程設(shè)計(jì)
- 防盜警報(bào)課程設(shè)計(jì)
- 教育行業(yè)中的語文作業(yè)設(shè)計(jì)與優(yōu)化
- 文化教育與家庭教育之間的緊密聯(lián)系解析
- 教育領(lǐng)域的安全管理與事故預(yù)防策略研究
- 2025年《做一個(gè)有價(jià)值的老師》心得體會(huì)(四篇)
- 2025年上半年組織辦工作總結(jié)樣本(三篇)
- 家庭教育中情感教育的跨文化對(duì)比研究
- 扣款通知單 采購部
- 湖北教育出版社三年級(jí)下冊(cè)信息技術(shù)教案
- 鐵路工程主要建材碳排放因子、常用施工機(jī)械臺(tái)班能源用量、類運(yùn)輸方式、能源碳排放因子、不同植栽方式綠化固碳量
- 設(shè)計(jì)基礎(chǔ)全套教學(xué)課件
- 藥品養(yǎng)護(hù)記錄表
- IATF16949包裝方案評(píng)審表
- 食堂服務(wù)外包投標(biāo)方案(技術(shù)標(biāo))
- 綠建評(píng)分報(bào)告模板
- 1 運(yùn)行方案說明
- 大骨節(jié)病專業(yè)知識(shí)講座課件
- PHILIPS HeartStart XL+操作培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論