今天在寫本科畢業(yè)論文的時(shí)候又回顧了一下神經(jīng)網(wǎng)絡(luò)調(diào)參的一些細(xì)節(jié)問(wèn)題,特來(lái)總結(jié)下。主要從weight_decay,clip_norm,lr_decay說(shuō)起。 以前剛?cè)腴T的時(shí)候調(diào)參只是從hidden_size,hidden_num,batch_size,lr,embed_size開(kāi)始調(diào),但是后來(lái)才逐漸明白embed_size一般是設(shè)置完后不用再調(diào)的,比如設(shè)定為128后,就不要調(diào)了,因?yàn)閑mbed_size只是表示將詞嵌入到幾維的空間而已。lr也一般都有固定值,比如選取優(yōu)化器Adam的時(shí)候,lr=0.001,選取優(yōu)化器SGD的時(shí)候,lr=0.01,hidden_num一般設(shè)置為1的時(shí)候就行,2層以上在簡(jiǎn)單的網(wǎng)絡(luò)上只會(huì)到的適得其反的效果。 所以剩下該調(diào)的也只有hidden_size,batch_size,weight_decay,clip_norm,lr_decay了。但是hidden_size,batch_size大家應(yīng)該知道怎么調(diào),這里就不講了。還有其他的調(diào)參細(xì)節(jié)部分,等以后詳細(xì)用到了再總結(jié)給大家。 weight_decay clip_norm clip_grad即修剪梯度,為了防止梯度爆炸(gradient explosion)。 原理為:損失函數(shù)反向傳播的時(shí)候,使得每個(gè)參數(shù)都有了梯度gradient,如果所有的梯度平方和sum_sq_gradient大于clip_grad,那么求出縮放因子: 接著改變每個(gè)gradient,使每個(gè)gradient都乘scale_factor,達(dá)到縮放的效果,使每個(gè)梯度的sum_sq_gradient都被限制在clip_grad里,來(lái)達(dá)到防止梯度爆炸的效果。通常設(shè)置為10,那么調(diào)參的內(nèi)容為是否需要clip_grad機(jī)制。 pytorch代碼為(只看紅框框里的就行): 可以看出有那么一丟丟效果。隨著不同的數(shù)據(jù)集,效果還是不一樣的。 lr_decay 其中,lr為學(xué)習(xí)率,step為當(dāng)前迭代次數(shù) 因?yàn)橐话闱闆r下循環(huán)迭代次數(shù)越多的時(shí)候,學(xué)習(xí)率的步伐就應(yīng)該越來(lái)越小,這樣才能慢慢接近函數(shù)的極值點(diǎn),。但是有時(shí)候也不一定會(huì)有效,所以這里需要通過(guò)調(diào)參來(lái)查看是否需要開(kāi)啟lr_decay。 依然那句話,不是所有的數(shù)據(jù)集都會(huì)有好的效果,需要自己調(diào)試,選擇適合自己模型的參數(shù)。 IELTS a bit chill n.寒冷;寒意;寒心 adj.寒冷的;冷漠的;掃興的 vt.冷凍,冷藏;使寒心,使感到冷 vi.冷藏;變冷 prescription n.藥方;指示;慣性 mantle n.地幔;斗篷;覆蓋物 vi. 覆蓋;臉紅 vt.覆蓋 n.人名;曼特爾 ascend vi.上升;登高;追溯 vt.攀登;上升 hypothesis n. 假設(shè) |
|
來(lái)自: 太極混元天尊 > 《學(xué)習(xí)資料》