深度模型訓(xùn)練方法

深度模型擁有很多超參:

  • 學(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í)

  1. 學(xué)習(xí)步長alpha最重要
  2. momentum參數(shù)beta,默認(rèn)=0.9; mini-batch; hidden units;
  3. layers; learning rate decay;
  4. 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ì)量的重要性可見一斑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容