深度模型擁有很多超參:
- 學(xué)習(xí)步長:alpha
- momentum 梯度下降參數(shù):beta
- Adam 梯度下降參數(shù):beta1, beta2, epsilon
- 網(wǎng)絡(luò)層數(shù)layers
- 每層隱藏層的神經(jīng)元的數(shù)量hidden units
- learning rate decay
- mini-batch size
- activation functions
超參優(yōu)化的優(yōu)先級(jí)
- 學(xué)習(xí)步長alpha最重要
- momentum參數(shù)beta,默認(rèn)=0.9; mini-batch; hidden units;
- layers; learning rate decay;
- beta1, 默認(rèn)=0.9; bera2, 默認(rèn)=0.999; epsilon, 默認(rèn)=pow(10, -8)
train/dev/test sets
所有的數(shù)據(jù)將被劃分為 training set/development set/test set
首先在training set上訓(xùn)練很多模型,然后在dev set上驗(yàn)證(可以cross validation)一個(gè)最好的模型,最后在test set上測試模型的性能。
數(shù)據(jù)集劃分
在傳統(tǒng)的機(jī)器學(xué)習(xí)算法中,數(shù)據(jù)集通常劃分為70%的training set和30%的test set,或者60% training set, 20%dev set, 20%test set。當(dāng)數(shù)據(jù)集的總量在10000量級(jí)以內(nèi),這種劃分方法最合適不過了。
當(dāng)如果數(shù)據(jù)總量很大,比如在百萬集的量級(jí)時(shí),我們也許需要重新思考數(shù)據(jù)的劃分策略了。通常,我們會(huì)傾向與劃分更小比例的數(shù)據(jù)到dev set和test set。劃分dev set的目標(biāo)是校驗(yàn)?zāi)P筒⑶艺{(diào)整以及選擇一個(gè)最佳的模型,同樣,劃分test set的目標(biāo)是評(píng)估最優(yōu)模型的性能。
所以,不必要?jiǎng)澐痔嗟臄?shù)據(jù)到這兩個(gè)數(shù)據(jù)集上。如果,擁有一百萬量級(jí)的數(shù)據(jù),那么,分別劃分10000條數(shù)據(jù)到dev set和test set就足夠了。
此外,為了讓模型擁有更好的泛化能力,training set/dev set/test set的數(shù)據(jù)分布比例必須大致相同。
Bias & Variance
Bias和Variance代表訓(xùn)練出來的模型往往是偏執(zhí)的,為了更好地解釋這個(gè)概念,本人認(rèn)為偏執(zhí)一般與泛化相對(duì)。其中,Bias指的是訓(xùn)練偏執(zhí),Variance是測試偏執(zhí)。如何降低模型的偏執(zhí),增強(qiáng)泛化能力呢?
首先,如果模型在訓(xùn)練數(shù)據(jù)上擬合不足,我們認(rèn)為模型已經(jīng)Bias了;相反,如果模型在訓(xùn)練集上過度擬合,認(rèn)為模型Variance,并且出現(xiàn)了overfitting。這兩種情況都不是理想的訓(xùn)練結(jié)果。
下面解釋Bias和Variance的判斷依據(jù):
| 偏執(zhí)類型 | Bayes optimal error | Training set error | Dev set error |
|---|---|---|---|
| High Bias | 0.01% | 12.00% | 12.10% |
| High Variance | 0.01% | 0.50% | 12.10% |
| High Bias & High Variance | 0.01% | 12.00% | 20.10% |
| Low Bias & Low Variance | 0.1% | 0.50% | 0.80% |
Bayes optimal error 指的是由于數(shù)據(jù)本身的規(guī)律性和合理性的限制(數(shù)據(jù)質(zhì)量不夠),理論上最理想的最小識(shí)別誤差值的大小。這個(gè)值往往是由相關(guān)專業(yè)人士識(shí)別數(shù)據(jù)所推導(dǎo)出來的誤差極限(計(jì)算機(jī)算法很難達(dá)到)。Training set error指的是算法在訓(xùn)練集上訓(xùn)練出來的識(shí)別誤差。Dev set error指驗(yàn)證集上的識(shí)別誤差。
優(yōu)化high Bias & high Variance
優(yōu)化策略如下:
High Bias
- Bigger network
- Trains longer
- Uses more advanced optimization algorithms
- Finds a better suited network architecture
High Variance
- get more data
- Dropout
- regulariztion
- Finds a better suited network architecture
好的模型判斷方法
機(jī)器學(xué)習(xí)模型算法訓(xùn)練的好或是不好,可以通過以下兩個(gè)方面判斷:
- 模型在訓(xùn)練集上數(shù)據(jù)擬合的好,可以認(rèn)為此時(shí)模型的Bias error很低,數(shù)據(jù)擬合的好
- 模型在訓(xùn)練集上的優(yōu)勢(shì)依然體現(xiàn)在驗(yàn)證集和測試集上,在這兩個(gè)數(shù)據(jù)集上有很好的擬合效果
此外,還有一些情況,模型在測試集上擬合的很好,性能表現(xiàn)優(yōu)越,但在現(xiàn)實(shí)使用情況下表現(xiàn)幷不盡人意,此時(shí)需要考慮的是數(shù)據(jù)集的選擇出現(xiàn)了偏差,需要根據(jù)現(xiàn)實(shí)情況合理調(diào)整數(shù)據(jù)的分布了。
正所謂,模型好壞的極限是由數(shù)據(jù)的質(zhì)量決定的,而算法的性能只能讓模型無限逼近這個(gè)極限。由此,數(shù)據(jù)質(zhì)量的重要性可見一斑。