3.1 调试处理-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
| 2.11 總結(jié) | 回到目錄 | 3.2 為超參數(shù)選擇合適的范圍 |
調(diào)試處理 (Tuning Process)
大家好,歡迎回來(lái),目前為止,你已經(jīng)了解到,神經(jīng)網(wǎng)絡(luò)的改變會(huì)涉及到許多不同超參數(shù)的設(shè)置。現(xiàn)在,對(duì)于超參數(shù)而言,你要如何找到一套好的設(shè)定呢?在此視頻中,我想和你分享一些指導(dǎo)原則,一些關(guān)于如何系統(tǒng)地組織超參調(diào)試過(guò)程的技巧,希望這些能夠讓你更有效的聚焦到合適的超參設(shè)定中。
關(guān)于訓(xùn)練深度最難的事情之一是你要處理的參數(shù)的數(shù)量,從學(xué)習(xí)速率 α\alphaα 到Momentum(動(dòng)量梯度下降法)的參數(shù) β\betaβ 。如果使用Momentum或Adam優(yōu)化算法的參數(shù), β1,β2\beta_1,\beta_2β1?,β2? 和 ?\epsilon? ,也許你還得選擇層數(shù),也許你還得選擇不同層中隱藏單元的數(shù)量,也許你還想使用學(xué)習(xí)率衰減。所以,你使用的不是單一的學(xué)習(xí)率 α\alphaα 。接著,當(dāng)然你可能還需要選擇mini-batch的大小。
結(jié)果證實(shí)一些超參數(shù)比其它的更為重要,我認(rèn)為,最為廣泛的學(xué)習(xí)應(yīng)用是 α\alphaα ,學(xué)習(xí)速率是需要調(diào)試的最重要的超參數(shù)。
除了 α\alphaα ,還有一些參數(shù)需要調(diào)試,例如Momentum參數(shù) β\betaβ ,0.9就是個(gè)很好的默認(rèn)值。我還會(huì)調(diào)試mini-batch的大小,以確保最優(yōu)算法運(yùn)行有效。我還會(huì)經(jīng)常調(diào)試隱藏單元,我用橙色圈住的這些,這三個(gè)是我覺(jué)得其次比較重要的,相對(duì)于 α\alphaα 而言。重要性排第三位的是其他因素,層數(shù)有時(shí)會(huì)產(chǎn)生很大的影響,學(xué)習(xí)率衰減也是如此。當(dāng)應(yīng)用Adam算法時(shí),事實(shí)上,我從不調(diào)試 β1,β2\beta_1,\beta_2β1?,β2? 和 ?\epsilon? ,我總是選定其分別為 0.9,0.9990.9,0.9990.9,0.999 和 10?810^{-8}10?8 ,如果你想的話也可以調(diào)試它們。
但希望你粗略了解到哪些超參數(shù)較為重要, α\alphaα 無(wú)疑是最重要的,接下來(lái)是我用橙色圈住的那些,然后是我用紫色圈住的那些,但這不是嚴(yán)格且快速的標(biāo)準(zhǔn),我認(rèn)為,其它深度學(xué)習(xí)的研究者可能會(huì)很不同意我的觀點(diǎn)或有著不同的直覺(jué)。
現(xiàn)在,如果你嘗試調(diào)整一些超參數(shù),該如何選擇調(diào)試值呢?在早一代的機(jī)器學(xué)習(xí)算法中,如果你有兩個(gè)超參數(shù),這里我會(huì)稱之為超參1,超參2,常見(jiàn)的做法是在網(wǎng)格中取樣點(diǎn),像這樣,然后系統(tǒng)的研究這些數(shù)值。這里我放置的是5×5的網(wǎng)格,實(shí)踐證明,網(wǎng)格可以是5×5,也可多可少,但對(duì)于這個(gè)例子,你可以嘗試這所有的25個(gè)點(diǎn),然后選擇哪個(gè)參數(shù)效果最好。當(dāng)參數(shù)的數(shù)量相對(duì)較少時(shí),這個(gè)方法很實(shí)用。
在深度學(xué)習(xí)領(lǐng)域,我們常做的,我推薦你采用下面的做法,隨機(jī)選擇點(diǎn),所以你可以選擇同等數(shù)量的點(diǎn),對(duì)嗎?25個(gè)點(diǎn),接著,用這些隨機(jī)取的點(diǎn)試驗(yàn)超參數(shù)的效果。之所以這么做是因?yàn)?#xff0c;對(duì)于你要解決的問(wèn)題而言,你很難提前知道哪個(gè)超參數(shù)最重要,正如你之前看到的,一些超參數(shù)的確要比其它的更重要。
舉個(gè)例子,假設(shè)超參數(shù)1是 α\alphaα (學(xué)習(xí)速率),取一個(gè)極端的例子,假設(shè)超參數(shù)2是Adam算法中,分母中的 ?\epsilon? 。在這種情況下, α\alphaα 的取值很重要,而 ?\epsilon? 取值則無(wú)關(guān)緊要。如果你在網(wǎng)格中取點(diǎn),接著,你試驗(yàn)了 α\alphaα 的5個(gè)取值,那你會(huì)發(fā)現(xiàn),無(wú)論 ?\epsilon? 取何值,結(jié)果基本上都是一樣的。所以,你知道共有25種模型,但進(jìn)行試驗(yàn)的 α\alphaα 值只有5個(gè),我認(rèn)為這是很重要的。
對(duì)比而言,如果你隨機(jī)取值,你會(huì)試驗(yàn)25個(gè)獨(dú)立的 α\alphaα ,似乎你更有可能發(fā)現(xiàn)效果做好的那個(gè)。
我已經(jīng)解釋了兩個(gè)參數(shù)的情況,實(shí)踐中,你搜索的超參數(shù)可能不止兩個(gè)。假如,你有三個(gè)超參數(shù),這時(shí)你搜索的不是一個(gè)方格,而是一個(gè)立方體,超參數(shù)3代表第三維,接著,在三維立方體中取值,你會(huì)試驗(yàn)大量的更多的值,三個(gè)超參數(shù)中每個(gè)都是。
實(shí)踐中,你搜索的可能不止三個(gè)超參數(shù)有時(shí)很難預(yù)知,哪個(gè)是最重要的超參數(shù),對(duì)于你的具體應(yīng)用而言,隨機(jī)取值而不是網(wǎng)格取值表明,你探究了更多重要超參數(shù)的潛在值,無(wú)論結(jié)果是什么。
當(dāng)你給超參數(shù)取值時(shí),另一個(gè)慣例是采用由粗糙到精細(xì)的策略。
比如在二維的那個(gè)例子中,你進(jìn)行了取值,也許你會(huì)發(fā)現(xiàn)效果最好的某個(gè)點(diǎn),也許這個(gè)點(diǎn)周圍的其他一些點(diǎn)效果也很好,那在接下來(lái)要做的是放大這塊小區(qū)域(小藍(lán)色方框內(nèi)),然后在其中更密集得取值或隨機(jī)取值,聚集更多的資源,在這個(gè)藍(lán)色的方格中搜索,如果你懷疑這些超參數(shù)在這個(gè)區(qū)域的最優(yōu)結(jié)果,那在整個(gè)的方格中進(jìn)行粗略搜索后,你會(huì)知道接下來(lái)應(yīng)該聚焦到更小的方格中。在更小的方格中,你可以更密集得取點(diǎn)。所以這種從粗到細(xì)的搜索也經(jīng)常使用。
通過(guò)試驗(yàn)超參數(shù)的不同取值,你可以選擇對(duì)訓(xùn)練集目標(biāo)而言的最優(yōu)值,或?qū)τ陂_發(fā)集而言的最優(yōu)值,或在超參搜索過(guò)程中你最想優(yōu)化的東西。
我希望,這能給你提供一種方法去系統(tǒng)地組織超參數(shù)搜索過(guò)程。另一個(gè)關(guān)鍵點(diǎn)是隨機(jī)取值和精確搜索,考慮使用由粗糙到精細(xì)的搜索過(guò)程。但超參數(shù)的搜索內(nèi)容還不止這些,在下一個(gè)視頻中,我會(huì)繼續(xù)講解關(guān)于如何選擇超參數(shù)取值的合理范圍。
課程PPT
| 2.11 總結(jié) | 回到目錄 | 3.2 為超參數(shù)選擇合適的范圍 |
總結(jié)
以上是生活随笔為你收集整理的3.1 调试处理-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2.11 总结-深度学习第二课《改善深层
- 下一篇: 3.2 为超参数选择合适的范围-深度学习