參數(shù)VS超參數(shù)(Parameters vs Hyperparameters)
想要你的深度神經(jīng)網(wǎng)絡(luò)起很好的效果薪丁,你還需要規(guī)劃好你的參數(shù)以及超參數(shù)猎醇。
什么是超參數(shù)?
比如算法中的learning ratea(學(xué)習(xí)率)硫嘶、iterations(梯度下降法循環(huán)的數(shù)量)、L(隱藏層數(shù)目)称近、n^([l])(隱藏層單元數(shù)目)、choiceofactivationfunction(激活函數(shù)的選擇)都需要你來設(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)性的過程荡短,通常你有個(gè)想法掘托,比如你可能大致知道一個(gè)最好的學(xué)習(xí)率值,可能說a=0.01最好,我會(huì)想先試試看辱士,然后你可以實(shí)際試一下听绳,訓(xùn)練一下看看效果如何椅挣。然后基于嘗試的結(jié)果你會(huì)發(fā)現(xiàn),你覺得學(xué)習(xí)率設(shè)定再提高到0.05會(huì)比較好切油。如果你不確定什么值是最好的,你大可以先試試一個(gè)學(xué)習(xí)率a,再看看損失函數(shù)J的值有沒有下降娩鹉。
然后你可以試一試大一些的值稚伍,然后發(fā)現(xiàn)損失函數(shù)的值增加并發(fā)散了。然后可能試試其他數(shù)个曙,看結(jié)果是否下降的很快或者收斂到在更高的位置垦搬。你可能嘗試不同的a并觀察損失函數(shù)J這么變了,試試一組值对雪,然后可能損失函數(shù)變成這樣米绕,這個(gè)a值會(huì)加快學(xué)習(xí)過程,并且收斂在更低的損失函數(shù)值上(箭頭標(biāo)識(shí))栅干,我就用這個(gè)a值了。
在前面桑李,還有很多不同的超參數(shù)。然而星岗,當(dāng)你開始開發(fā)新應(yīng)用時(shí)戒洼,預(yù)先很難確切知道圈浇,究竟超參數(shù)的最優(yōu)值應(yīng)該是什么。所以通常磷蜀,你必須嘗試很多不同的值褐隆,并走這個(gè)循環(huán),試試各種參數(shù)衫贬。試試看5個(gè)隱藏層歇攻,這個(gè)數(shù)目的隱藏單元,實(shí)現(xiàn)模型并觀察是否成功葬毫,然后再迭代贴捡。
另一個(gè)近來深度學(xué)習(xí)的影響是它用于解決很多問題,從計(jì)算機(jī)視覺到語音識(shí)別栈暇,到自然語言處理箍镜,到很多結(jié)構(gòu)化的數(shù)據(jù)應(yīng)用,比如網(wǎng)絡(luò)廣告或是網(wǎng)頁搜索或產(chǎn)品推薦等等香缺。
我所看到過的就有很多其中一個(gè)領(lǐng)域的研究員图张,這些領(lǐng)域中的一個(gè),嘗試了不同的設(shè)置祸轮,有時(shí)候這種設(shè)置超參數(shù)的直覺可以推廣,但有時(shí)又不會(huì)柄错。所以我經(jīng)常建議人們苦酱,特別是剛開始應(yīng)用于新問題的人們疫萤,去試一定范圍的值看看結(jié)果如何。
然后在后面的筆記中扯饶,我們會(huì)用更系統(tǒng)的方法,用系統(tǒng)性的嘗試各種超參數(shù)取值尾序。
然后其次蔓同,甚至是你已經(jīng)用了很久的模型,可能你在做網(wǎng)絡(luò)廣告應(yīng)用脯爪,在你開發(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)值過一年就會(huì)變化娜庇,因?yàn)殡娔X的基礎(chǔ)設(shè)施塔次,CPU或是GPU可能會(huì)變化很大。
所以有一條經(jīng)驗(yàn)規(guī)律可能每幾個(gè)月就會(huì)變名秀。如果你所解決的問題需要很多年時(shí)間励负,只要經(jīng)常試試不同的超參數(shù),勤于檢驗(yàn)結(jié)果匕得,看看有沒有更好的超參數(shù)數(shù)值继榆,相信你慢慢會(huì)得到設(shè)定超參數(shù)的直覺,知道你的問題最好用什么數(shù)值。
這可能的確是深度學(xué)習(xí)比較讓人不滿的一部分略吨,也就是你必須嘗試很多次不同可能性集币。
但參數(shù)設(shè)定這個(gè)領(lǐng)域,深度學(xué)習(xí)研究還在進(jìn)步中翠忠,所以可能過段時(shí)間就會(huì)有更好的方法決定超參數(shù)的值鞠苟,也很有可能由于CPU、GPU趾访、網(wǎng)絡(luò)和數(shù)據(jù)都在變化,這樣的指南可能只會(huì)在一段時(shí)間內(nèi)起作用云头,只要你不斷嘗試溃槐,并且嘗試保留交叉檢驗(yàn)或類似的檢驗(yàn)方法,然后挑一個(gè)對(duì)你的問題效果比較好的數(shù)值。
近來受深度學(xué)習(xí)影響牺弄,很多領(lǐng)域發(fā)生了變化蛇捌,從計(jì)算機(jī)視覺到語音識(shí)別到自然語言處理到很多結(jié)構(gòu)化的數(shù)據(jù)應(yīng)用,比如網(wǎng)絡(luò)廣告盒音、網(wǎng)頁搜索譬圣、產(chǎn)品推薦等等;
有些同一領(lǐng)域設(shè)置超參數(shù)的直覺可以推廣绳姨,但有時(shí)又不可以,特別是那些剛開始研究新問題的人們應(yīng)該去嘗試一定范圍內(nèi)的結(jié)果如何跪削,甚至那些用了很久的模型得學(xué)習(xí)率或是其他超參數(shù)的最優(yōu)值也有可能會(huì)改變揩局。
有一條經(jīng)驗(yàn)規(guī)律:經(jīng)常試試不同的超參數(shù)付枫,勤于檢查結(jié)果,看看有沒有更好的超參數(shù)取值,你將會(huì)得到設(shè)定超參數(shù)的直覺芹枷。