小程序代理多少錢新余seo
1. 神經(jīng)網(wǎng)絡(luò)的超參數(shù)分類
神經(jīng)網(wǎng)路中的超參數(shù)主要包括:
1. 學(xué)習(xí)率?η
2. 正則化參數(shù)?λ
3. 神經(jīng)網(wǎng)絡(luò)的層數(shù)?L
4. 每一個隱層中神經(jīng)元的個數(shù)?j
5. 學(xué)習(xí)的回合數(shù)Epoch
6. 小批量數(shù)據(jù)?minibatch?的大小
7. 輸出神經(jīng)元的編碼方式
8. 代價函數(shù)的選擇
9. 權(quán)重初始化的方法
10. 神經(jīng)元激活函數(shù)的種類
11.參加訓(xùn)練模型數(shù)據(jù)的規(guī)模
這十一類超參數(shù)。
這些都是可以影響神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)速度和最后分類結(jié)果,其中神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速度主要根據(jù)訓(xùn)練集上代價函數(shù)下降的快慢有關(guān),而最后的分類的結(jié)果主要跟在驗證集上的分類正確率有關(guān)。因此可以根據(jù)該參數(shù)主要影響代價函數(shù)還是影響分類正確率進(jìn)行分類,如圖1所示

圖1. 十一類超參數(shù)的分類情況
因為不同的超參數(shù)的類別不同,因此在調(diào)整超參數(shù)的時候也應(yīng)該根據(jù)對應(yīng)超參數(shù)的類別進(jìn)行調(diào)整。再調(diào)整超參數(shù)的過程中有根據(jù)機理選擇超參數(shù)的方法,有根據(jù)訓(xùn)練集上表現(xiàn)情況選擇超參數(shù)的方法,也有根據(jù)驗證集上訓(xùn)練數(shù)據(jù)選擇超參數(shù)的方法。他們之間的關(guān)系如圖2所示。

圖2. 不同超參數(shù)的選擇方法不同。
2. 寬泛策略
根據(jù)上面的分析我們已經(jīng)根據(jù)機理將神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元的種類、輸出層的模式(即是否采用softmax)、代價函數(shù)及輸出層的編碼方式進(jìn)行了設(shè)定。所以在這四個超參數(shù)被確定了之后變需要確定其他的超參數(shù)了。假設(shè)我們是從頭開始訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)的,我們對于其他參數(shù)的取值本身沒有任何經(jīng)驗,所以不可能一上來就訓(xùn)練一個很復(fù)雜的神經(jīng)網(wǎng)絡(luò),這時就要采用寬泛策略。
寬泛策略的核心在于簡化和監(jiān)控。簡化具體體現(xiàn)在,如簡化我們的問題,如將一個10分類問題轉(zhuǎn)變?yōu)橐粋€2分類問題;簡化網(wǎng)絡(luò)的結(jié)構(gòu),如從一個僅包含10個神經(jīng)元你的隱層開始訓(xùn)練,逐漸增加網(wǎng)絡(luò)的層數(shù)和神經(jīng)元的個數(shù);簡化訓(xùn)練用的數(shù)據(jù),在簡化問題中,我們已經(jīng)減少了80%的數(shù)據(jù)量,在這里我們該要精簡檢驗集中數(shù)據(jù)的數(shù)量,因為真正驗證的是網(wǎng)絡(luò)的性能,所以僅用少量的驗證集數(shù)據(jù)也是可以的,如僅采用100個驗證集數(shù)據(jù)。監(jiān)控具體指的是提高監(jiān)控的頻率,比如說原來是每5000次訓(xùn)練返回一次代價函數(shù)或者分類正確率,現(xiàn)在每1000次訓(xùn)練就返回一次。其實可以將“寬泛策略”當(dāng)作是一種對于網(wǎng)絡(luò)的簡單初始化和一種監(jiān)控策略,這樣可以更加快速地實驗其他的超參數(shù),或者甚至接近同步地進(jìn)行不同參數(shù)的組合的評比。
直覺上看,這看起來簡化問題和架構(gòu)僅僅會降低你的效率。實際上,這樣能夠?qū)⑦M(jìn)度加快,因為你能夠更快地找到傳達(dá)出有意義的信號的網(wǎng)絡(luò)。一旦你獲得這些信號,你可以嘗嘗通過微調(diào)超參數(shù)獲得快速的性能提升。
3. 學(xué)習(xí)率的調(diào)整
假設(shè)我們運行了三個不同學(xué)習(xí)速率(?η=0.025η=0.025、η=0.25η=0.25、η=2.5η=2.5)的 MNIST 網(wǎng) 絡(luò),其他的超參數(shù)假設(shè)已經(jīng)設(shè)置為進(jìn)行30回合,minibatch 大小為10,然后?λ=5.0λ=5.0?,使用50000幅訓(xùn)練圖像,訓(xùn)練代價的變化情況如圖3

圖3. 不同學(xué)習(xí)率下代價函數(shù)曲線的變化情況
因此學(xué)習(xí)率的調(diào)整步驟為:首先,我們選擇在訓(xùn)練數(shù)據(jù)上的代價立即開始下降而非震蕩或者增加時的作為?ηη?閾值的估計,不需要太過精確,確定量級即可。如果代價在訓(xùn)練的前面若干回合開始下降,你就可以逐步增加?ηη?的量級,直到你找到一個的值使得在開始若干回合代價就開始震蕩或者增加;相反,如果代價函數(shù)曲線開始震蕩或者增加,那就嘗試減小量級直到你找到代價在開始回合就下降的設(shè)定,取閾值的一半就確定了學(xué)習(xí)速率 。在這里使用訓(xùn)練數(shù)據(jù)的原因是學(xué)習(xí)速率主要的目的是控制梯度下降的步長,監(jiān)控訓(xùn)練代價是最好的檢測步長過大的方法。
4. 迭代次數(shù)
提前停止表示在每個回合的最后,我們都要計算驗證集上的分類準(zhǔn)確率,當(dāng)準(zhǔn)確率不再提升,就終止它也就確定了迭代次數(shù)(或者稱回合數(shù))。另外,提前停止也能夠幫助我們避免過度擬合。
我們需要再明確一下什么叫做分類準(zhǔn)確率不再提升,這樣方可實現(xiàn)提前停止。正如我們已經(jīng)看到的,分類準(zhǔn)確率在整體趨勢下降的時候仍舊會抖動或者震蕩。如果我們在準(zhǔn)確度剛開始下降的時候就停止,那么肯定會錯過更好的選擇。一種不錯的解決方案是如果分類準(zhǔn)確率在一段時間內(nèi)不再提升的時候終止。建議在更加深入地理解 網(wǎng)絡(luò)訓(xùn)練的方式時,僅僅在初始階段使用 10 回合不提升規(guī)則,然后逐步地選擇更久的回合,比如 20 回合不提升就終止,30回合不提升就終止,以此類推。
5. 正則化參數(shù)
我建議,開始時代價函數(shù)不包含正則項,只是先確定?ηη?的值。使用確定出來的?ηη,用驗證數(shù)據(jù)來選擇好的?λλ?。嘗試從?λ=1λ=1?開始,然后根據(jù)驗證集上的性能按照因子 10 增加或減少其值。一旦我已經(jīng)找到一個好的量級,你可以改進(jìn)?λλ?的值。這里搞定?λλ?后,你就可以返回再重新優(yōu)化?ηη?。
6. 小批量數(shù)據(jù)的大小
選擇最好的小批量數(shù)據(jù)大小也是一種折衷。太小了,你不會用上很好的矩陣庫的快速計算;太大,你是不能夠足夠頻繁地更新權(quán)重的。你所需要的是選擇一個折衷的值,可以最大化學(xué)習(xí)的速度。幸運的是,小批量數(shù)據(jù)大小的選擇其實是相對獨立的一個超參數(shù)(網(wǎng)絡(luò)整體架構(gòu)外的參數(shù)),所以你不需要優(yōu)化那些參數(shù)來尋找好的小批量數(shù)據(jù)大小。因此,可以選擇的方式就是使用某些可以接受的值(不需要是最優(yōu)的)作為其他參數(shù)的選擇,然后進(jìn)行不同小批量數(shù)據(jù)大小的嘗試,像上面那樣調(diào)整?ηη?。畫出驗證準(zhǔn)確率的值隨時間(非回合)變化的圖,選擇哪個得到最快性能的提升的小批量數(shù)據(jù)大小。得到了小批量數(shù)據(jù)大小,也就可以對其他的超參數(shù)進(jìn)行優(yōu)化了。
7. 總體的調(diào)參過程
首先應(yīng)該根據(jù)機理確定激活函數(shù)的種類,之后確定代價函數(shù)種類和權(quán)重初始化的方法,以及輸出層的編碼方式;其次根據(jù)“寬泛策略”先大致搭建一個簡單的結(jié)構(gòu),確定神經(jīng)網(wǎng)絡(luò)中隱層的數(shù)目以及每一個隱層中神經(jīng)元的個數(shù);然后對于剩下的超參數(shù)先隨機給一個可能的值,在代價函數(shù)中先不考慮正則項的存在,調(diào)整學(xué)習(xí)率得到一個較為合適的學(xué)習(xí)率的閾值,取閾值的一半作為調(diào)整學(xué)習(xí)率過程中的初始值 ;之后通過實驗確定minibatch的大小;之后仔細(xì)調(diào)整學(xué)習(xí)率,使用確定出來的?ηη,用驗證數(shù)據(jù)來選擇好的?λλ?,搞定?λλ?后,你就可以返回再重新優(yōu)化?ηη。而學(xué)習(xí)回合數(shù)可以通過上述這些實驗進(jìn)行一個整體的觀察再確定。