Python人工智能深度學(xué)習(xí)模型訓(xùn)練經(jīng)驗(yàn)總結(jié)
一、假如訓(xùn)練集表現(xiàn)不好
1.嘗試新的激活函數(shù)
ReLU:Rectified Linear Unit
圖像如下圖所示:當(dāng)z<0時(shí),a = 0, 當(dāng)z>0時(shí),a = z,也就是說這個(gè)激活函數(shù)是對(duì)輸入進(jìn)行線性轉(zhuǎn)換。使用這個(gè)激活函數(shù),由于有0的存在,計(jì)算之后會(huì)刪除掉一些神經(jīng)元,使得神經(jīng)網(wǎng)絡(luò)變窄。
該函數(shù)也有其他變體,如下圖所示,主要是對(duì)于z小于0的時(shí)候,對(duì)應(yīng)
Maxout:以上幾種函數(shù)的一般形式
簡單來說就是誰大輸出誰,通過Maxout可以自己學(xué)習(xí)激活函數(shù)。當(dāng)給出的參數(shù)不同的時(shí)候,可以得到上面所描述的各類函數(shù)。如下圖所示,當(dāng)輸入給1個(gè)計(jì)算單元時(shí),得到藍(lán)色的線,假如第二個(gè)計(jì)算單元參數(shù)均為0,則是X軸上的一條線,那么在這兩個(gè)之中取大的那個(gè),就是ReLU;當(dāng)?shù)诙€(gè)計(jì)算單元參數(shù)不為0的時(shí)候,就可以得到其他形式的結(jié)果。
2.自適應(yīng)學(xué)習(xí)率
①Adagrad
Adagrad是使用前面的梯度進(jìn)行平方和再開方,作為計(jì)算梯度時(shí)系數(shù)的一部分。
②RMSProp
是Adagrad的進(jìn)階版,在Adagrad中,是使用了前面所有的梯度平方和再開方,這個(gè)系數(shù)中沒有考慮當(dāng)前的梯度。在RMSProp中,是考慮了現(xiàn)在的梯度,也對(duì)其進(jìn)行平方,并對(duì)兩項(xiàng)進(jìn)行一個(gè)權(quán)重的分配。
③ Momentum
加入動(dòng)量的梯度下降
下圖中,v就是上一次的方向。在計(jì)算本次方向的時(shí)候,加入lambda倍的上一次的方向。其實(shí)v就是過去算出來的所有的梯度的總和。
④Adam
將RMSProp和Momentum結(jié)合
二、在測試集上效果不好
1.提前停止
通過交叉驗(yàn)證集,提前停止訓(xùn)練
2.正則化
和其他的算法正則化方式一致,有L1和L2正則,此處不再詳細(xì)描述。
3.Dropout
每次訓(xùn)練的時(shí)候,都以p%的幾率去掉一些神經(jīng)元以及輸入值。得到如下圖所示的更瘦一些的神經(jīng)網(wǎng)絡(luò)。直接去訓(xùn)練這個(gè)神經(jīng)網(wǎng)絡(luò)。下一次訓(xùn)練的時(shí)候,對(duì)整個(gè)網(wǎng)絡(luò)重新進(jìn)行采樣。(類似于隨機(jī)森林)
在測試的時(shí)候不進(jìn)行dropout,如果訓(xùn)練的時(shí)候的dropout幾率是p%,那么在測試集上,所有的權(quán)重都乘上(1-p)%
以上就是Python人工智能深度學(xué)習(xí)模型訓(xùn)練經(jīng)驗(yàn)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Python人工智能模型訓(xùn)練經(jīng)驗(yàn)的資料請(qǐng)關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。