參數(shù)VS超參數(shù)(Parameters vs Hyperparameters)
想要你的深度神經(jīng)網(wǎng)絡(luò)起很好的效果,你還需要規(guī)劃好你的參數(shù)以及超參數(shù)。
什么是超參數(shù)?
比如算法中的learning rate a(學(xué)習(xí)率)、iterations(梯度下降法循環(huán)的數(shù)量)、L(隱藏層數(shù)目)、n^([l])(隱藏層單元數(shù)目)、choice of activation function(激活函數(shù)的選擇)都需要你來(lái)設(shè)置,這些數(shù)字實(shí)際上控制了最后的參數(shù)W和b的值,所以它們被稱作超參數(shù)。
實(shí)際上深度學(xué)習(xí)有很多不同的超參數(shù),之后我們也會(huì)介紹一些其他的超參數(shù),如momentum、mini batch size、regularization parameters等等。
如何尋找超參數(shù)的最優(yōu)值?
走Idea—Code—Experiment—Idea這個(gè)循環(huán),嘗試各種不同的參數(shù),實(shí)現(xiàn)模型并觀察是否成功,然后再迭代。
今天的深度學(xué)習(xí)應(yīng)用領(lǐng)域,還是很經(jīng)驗(yàn)性的過(guò)程,通常你有個(gè)想法,比如你可能大致知道一個(gè)最好的學(xué)習(xí)率值,可能說(shuō)a=0.01最好,我會(huì)想先試試看,然后你可以實(shí)際試一下,訓(xùn)練一下看看效果如何。然后基于嘗試的結(jié)果你會(huì)發(fā)現(xiàn),你覺(jué)得學(xué)習(xí)率設(shè)定再提高到0.05會(huì)比較好。如果你不確定什么值是最好的,你大可以先試試一個(gè)學(xué)習(xí)率a,再看看損失函數(shù)J的值有沒(méi)有下降。
然后你可以試一試大一些的值,然后發(fā)現(xiàn)損失函數(shù)的值增加并發(fā)散了。然后可能試試其他數(shù),看結(jié)果是否下降的很快或者收斂到在更高的位置。你可能?chē)L試不同的a并觀察損失函數(shù)J這么變了,試試一組值,然后可能損失函數(shù)變成這樣,這個(gè)a值會(huì)加快學(xué)習(xí)過(guò)程,并且收斂在更低的損失函數(shù)值上(箭頭標(biāo)識(shí)),我就用這個(gè)a值了。
在前面,還有很多不同的超參數(shù)。然而,當(dāng)你開(kāi)始開(kāi)發(fā)新應(yīng)用時(shí),預(yù)先很難確切知道,究竟超參數(shù)的最優(yōu)值應(yīng)該是什么。所以通常,你必須嘗試很多不同的值,并走這個(gè)循環(huán),試試各種參數(shù)。試試看5個(gè)隱藏層,這個(gè)數(shù)目的隱藏單元,實(shí)現(xiàn)模型并觀察是否成功,然后再迭代。
另一個(gè)近來(lái)深度學(xué)習(xí)的影響是它用于解決很多問(wèn)題,從計(jì)算機(jī)視覺(jué)到語(yǔ)音識(shí)別,到自然語(yǔ)言處理,到很多結(jié)構(gòu)化的數(shù)據(jù)應(yīng)用,比如網(wǎng)絡(luò)廣告或是網(wǎng)頁(yè)搜索或產(chǎn)品推薦等等。
我所看到過(guò)的就有很多其中一個(gè)領(lǐng)域的研究員,這些領(lǐng)域中的一個(gè),嘗試了不同的設(shè)置,有時(shí)候這種設(shè)置超參數(shù)的直覺(jué)可以推廣,但有時(shí)又不會(huì)。所以我經(jīng)常建議人們,特別是剛開(kāi)始應(yīng)用于新問(wèn)題的人們,去試一定范圍的值看看結(jié)果如何。
然后在后面的筆記中,我們會(huì)用更系統(tǒng)的方法,用系統(tǒng)性的嘗試各種超參數(shù)取值。
然后其次,甚至是你已經(jīng)用了很久的模型,可能你在做網(wǎng)絡(luò)廣告應(yīng)用,在你開(kāi)發(fā)途中,很有可能學(xué)習(xí)率的最優(yōu)數(shù)值或是其他超參數(shù)的最優(yōu)值是會(huì)變的,所以即使你每天都在用當(dāng)前最優(yōu)的參數(shù)調(diào)試你的系統(tǒng),你還是會(huì)發(fā)現(xiàn),最優(yōu)值過(guò)一年就會(huì)變化,因?yàn)?a href="http://www.ttokpm.com/v/tag/1247/" target="_blank">電腦的基礎(chǔ)設(shè)施,CPU或是GPU可能會(huì)變化很大。
所以有一條經(jīng)驗(yàn)規(guī)律可能每幾個(gè)月就會(huì)變。如果你所解決的問(wèn)題需要很多年時(shí)間,只要經(jīng)常試試不同的超參數(shù),勤于檢驗(yàn)結(jié)果,看看有沒(méi)有更好的超參數(shù)數(shù)值,相信你慢慢會(huì)得到設(shè)定超參數(shù)的直覺(jué),知道你的問(wèn)題最好用什么數(shù)值。
這可能的確是深度學(xué)習(xí)比較讓人不滿的一部分,也就是你必須嘗試很多次不同可能性。
但參數(shù)設(shè)定這個(gè)領(lǐng)域,深度學(xué)習(xí)研究還在進(jìn)步中,所以可能過(guò)段時(shí)間就會(huì)有更好的方法決定超參數(shù)的值,也很有可能由于CPU、GPU、網(wǎng)絡(luò)和數(shù)據(jù)都在變化,這樣的指南可能只會(huì)在一段時(shí)間內(nèi)起作用,只要你不斷嘗試,并且嘗試保留交叉檢驗(yàn)或類似的檢驗(yàn)方法,然后挑一個(gè)對(duì)你的問(wèn)題效果比較好的數(shù)值。
近來(lái)受深度學(xué)習(xí)影響,很多領(lǐng)域發(fā)生了變化,從計(jì)算機(jī)視覺(jué)到語(yǔ)音識(shí)別到自然語(yǔ)言處理到很多結(jié)構(gòu)化的數(shù)據(jù)應(yīng)用,比如網(wǎng)絡(luò)廣告、網(wǎng)頁(yè)搜索、產(chǎn)品推薦等等;
有些同一領(lǐng)域設(shè)置超參數(shù)的直覺(jué)可以推廣,但有時(shí)又不可以,特別是那些剛開(kāi)始研究新問(wèn)題的人們應(yīng)該去嘗試一定范圍內(nèi)的結(jié)果如何,甚至那些用了很久的模型得學(xué)習(xí)率或是其他超參數(shù)的最優(yōu)值也有可能會(huì)改變。
有一條經(jīng)驗(yàn)規(guī)律:經(jīng)常試試不同的超參數(shù),勤于檢查結(jié)果,看看有沒(méi)有更好的超參數(shù)取值,你將會(huì)得到設(shè)定超參數(shù)的直覺(jué)。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4717瀏覽量
100000 -
語(yǔ)音識(shí)別
+關(guān)注
關(guān)注
38文章
1696瀏覽量
112248 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5422瀏覽量
120588
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論