- 本文首發(fā)自公眾號:RAIS
?前言
本系列文章為 《Deep Learning》 讀書筆記,可以參看原書一起閱讀,效果更佳。
超參數(shù)
- 參數(shù):網(wǎng)絡(luò)模型在訓(xùn)練過程中不斷學(xué)習(xí)自動調(diào)節(jié)的變量,比如網(wǎng)絡(luò)的權(quán)重和偏差;
- 超參數(shù):控制模型、算法的參數(shù),是架構(gòu)層面的參數(shù),一般不是通過算法學(xué)習(xí)出來的,比如學(xué)習(xí)率、迭代次數(shù)、激活函數(shù)和層數(shù)等。
與超參數(shù)對比的概念是參數(shù),我們平時訓(xùn)練網(wǎng)絡(luò)所說的調(diào)參,指的是調(diào)節(jié) 超參數(shù)。超參數(shù)的確定方法一般是憑借經(jīng)驗,或者類似問題的參數(shù)遷移。
問題來了,為啥超參數(shù)不通過學(xué)習(xí)確定?這是因為這個參數(shù)不那么好優(yōu)化,并且稍不留神通過學(xué)習(xí)方法去優(yōu)化就可能導(dǎo)致過擬合。你可能認(rèn)為模擬人的調(diào)參過程,進(jìn)行超參數(shù)的調(diào)節(jié)不就好了,當(dāng)然這是可以的,超參數(shù)也不是完全不可以用程序優(yōu)化的,但是現(xiàn)有的理論還不成熟,還沒有理論去有效的指導(dǎo)實踐,這還是一個新興領(lǐng)域,因此還有許多工作要做,很多情況下是憑經(jīng)驗,憑直覺進(jìn)行優(yōu)化的,算法表現(xiàn)并不好。
我們知道,更高次的多項式和權(quán)重衰減參數(shù)設(shè)定 λ=0 總是能更好的擬合,會過擬合,對于這個問題,我們會考慮用驗證集的方法,驗證集在我們前文《人工智能二分類問題》中提到過。
驗證集
驗證集是用來訓(xùn)練超參數(shù)的,是用來給網(wǎng)絡(luò)提供反饋的。我們用訓(xùn)練集去訓(xùn)練一個網(wǎng)絡(luò)模型,訓(xùn)練出的參數(shù)固定下來,然后將驗證集的數(shù)據(jù)應(yīng)用到這個模型上,會得到偏差,我們根據(jù)這個偏差,調(diào)整超參數(shù),然后重新去訓(xùn)練網(wǎng)絡(luò),重復(fù)迭代一定的次數(shù),會調(diào)節(jié)出一個超參數(shù)還不錯的網(wǎng)絡(luò),基于這個超參數(shù)訓(xùn)練出的模型,可以最終到測試集合上驗證,最終確定在測試集上表現(xiàn)如何。下面舉個例子:
這是之前在《人工智能二分類問題》中的一張圖,我們看到驗證損失在迭代 4 次之后大幅上升,這就是由于我們訓(xùn)練次數(shù)迭代過多導(dǎo)致的,迭代次數(shù)這個超參數(shù)設(shè)置的不合理,因此我們更改迭代次數(shù)為 4 次。這就是根據(jù)驗證集調(diào)節(jié)超參數(shù)的一個例子。
數(shù)據(jù)量小,訓(xùn)練集:驗證集:測試集=6:2:2,數(shù)據(jù)量足夠大,訓(xùn)練集:驗證集:測試集=98:1:1。這算是一個經(jīng)驗值吧。
K-折交叉驗證
我們在之前的 《預(yù)測房價》 問題中有提到過交叉驗證這個方法,這個方法用于解決的問題就是數(shù)據(jù)量太小的問題,而導(dǎo)致的對網(wǎng)絡(luò)測試誤差估計不準(zhǔn)的問題,K-折交叉驗證 是其中最常見的。
從上圖中,我們可以清楚的看到K-折交叉驗證的方法具體是怎么做的。由于數(shù)據(jù)量不夠大,因此我們把數(shù)據(jù)分為 K 份,循環(huán) K 次,每次分別選取其中的一份作為測試集,這樣根據(jù)我們訓(xùn)練出的網(wǎng)絡(luò),我們可以分別求出每一次的測試誤差,用這 K 個測試誤差求其平均值,我們就估計其為這個網(wǎng)絡(luò)的測試誤差。
總結(jié)
我們本篇文章介紹了參數(shù)和超參數(shù)的區(qū)別,調(diào)參指的是調(diào)節(jié)超參數(shù),并且介紹了在數(shù)據(jù)量較小的情況下如何如何去估計測試誤差。
- 本文首發(fā)自公眾號:RAIS