本文由 發(fā)布,轉(zhuǎn)載請注明出處,如有問題請聯(lián)系我們! 發(fā)布時間: 2021-08-28深度學(xué)習(xí)模型調(diào)參總結(jié)
加載中絕大多數(shù)內(nèi)容參照自《Machine Learning Yearning》
Bias 和 Variance
誤差(bias)就是指優(yōu)化算法在訓(xùn)練集上的誤差,也就是差錯率,不正確越大偏差越大,欠擬合
標(biāo)準(zhǔn)差(variance)就是指優(yōu)化算法在開發(fā)設(shè)計集(或檢測集)上的表現(xiàn)比訓(xùn)練集算差是多少,還可以解釋為多重共線性,主要表現(xiàn) 為訓(xùn)練集準(zhǔn)確率很高,檢測集在的準(zhǔn)確率很低
可防止誤差和難以避免誤差
誤差能夠分成2個一部分,包含可防止誤差和難以避免誤差
怎樣看待:假定目前一個各種奇珍動物識別技術(shù),每日任務(wù)困難大,就算由人們來區(qū)別,也存有14%的差錯率(最佳差錯率)
如今優(yōu)化算法做到:
訓(xùn)煉差錯率=15%
開發(fā)設(shè)計差錯率=30%
能夠?qū)⒂?xùn)煉差錯率(誤差)溶解以下:
最伏差錯率(“難以避免誤差”):14%,能夠?qū)⑵湟詾槭菍W(xué)習(xí)培訓(xùn)優(yōu)化算法的誤差“難以避免”的一部分。
可防止誤差:1%。即訓(xùn)煉差錯率和最伏誤差中間的誤差。
舉個事例,該事例中最佳差錯率是 14%,大家有:
● 訓(xùn)煉偏差 = 15%
● 開發(fā)設(shè)計偏差 = 16%
i這類情形下,可規(guī)避的誤差偏差是 1%,標(biāo)準(zhǔn)差偏差約為 1%。因而,優(yōu)化算法早已做的很好啦,基本上沒有提高的室內(nèi)空間。它只比最好差錯率低 2%
怎樣設(shè)置期待誤差
應(yīng)用人們主要表現(xiàn)水準(zhǔn)來可能最佳差錯率,并設(shè)定可實(shí)現(xiàn)的“期待差錯率”。 假定你的計算方法在某一每日任務(wù)上做到了 10% 的偏差,但平常人能夠做到的偏差是 2% . 從而大家就可以了解最佳差錯率是 2% 或更低,這也說明可防止誤差最少是 8% . 因此你理應(yīng)試著一下減少誤差的技術(shù)性。更一般地說,有一個有效可達(dá)到的“期待差錯率”能夠幫助你來可能學(xué)習(xí)培訓(xùn)優(yōu)化算法的可防止誤差。這相反也幫你決策能否應(yīng)用偏差減少技術(shù)性
誤差和標(biāo)準(zhǔn)差的幾類情形和解決方法
1)假定訓(xùn)練集差錯率1%,開發(fā)設(shè)計集差錯率10%,則樣本方差大,多重共線性
-
改動實(shí)體模型構(gòu)架
減少實(shí)體模型經(jīng)營規(guī)模(例如神經(jīng)細(xì)胞/層的總數(shù)),減少互聯(lián)網(wǎng)復(fù)雜性
-
提升正則化
-
L 1 Regularization
-
L 2 Regularization
-
Dropout層
-
-
加上Batch Normalization
-
添加提早停止(Early stopping)
-
實(shí)體模型復(fù)位
-
根據(jù)數(shù)據(jù)預(yù)處理降低鍵入特點(diǎn)的數(shù)目和類型
-
特點(diǎn)特征提取
-
依據(jù)誤差分析改動特點(diǎn)
-
檢驗(yàn)訓(xùn)煉數(shù)據(jù)和數(shù)據(jù)測試是不是有比較應(yīng)的特點(diǎn),樣本分布是不是一致,不一致的情況下,再次特征工程工作中
-
提升訓(xùn)煉信息的類型,促使訓(xùn)煉數(shù)據(jù)信息遮蓋全部數(shù)據(jù)測試的特應(yīng)用數(shù)據(jù)增強(qiáng)
-
提升信息量
2)假定訓(xùn)煉差錯率為15%,開發(fā)設(shè)計差錯率為16%,這個時候,誤差較為大,欠擬合
-
提升訓(xùn)煉epoch
-
增大batch-size
-
調(diào)節(jié)激活函數(shù)(比如應(yīng)用relu)
-
調(diào)節(jié)蟻群算法
-
比如應(yīng)用Adam
-
增大learning rate
-
-
提升互聯(lián)網(wǎng)復(fù)雜性
-
提升傳輸層數(shù)
-
提升卷積層輸出的安全通道數(shù)
-
提升池化層的結(jié)點(diǎn)數(shù)
-
-
檢驗(yàn)訓(xùn)煉數(shù)據(jù)和數(shù)據(jù)測試是不是有比較應(yīng)的特點(diǎn)
-
提升訓(xùn)煉信息的類型,促使訓(xùn)煉數(shù)據(jù)信息遮蓋全部數(shù)據(jù)測試的特點(diǎn),
-
提升外界數(shù)據(jù),假如擔(dān)憂外界數(shù)據(jù)環(huán)境污染training set,能夠?qū)⑼饨鐢?shù)據(jù)的權(quán)重值降低一點(diǎn)
-
數(shù)據(jù)增強(qiáng)
-
3)假定訓(xùn)煉差錯率為15%,開發(fā)設(shè)計差錯率為30%,高誤差,高標(biāo)準(zhǔn)差
這個時候,先要處理誤差難題,僅有在訓(xùn)練集上逐漸收斂性了,才可以逐漸考慮到檢測集在的標(biāo)準(zhǔn)差難題。因而碰到這樣的狀況,先依照高誤差處理,高誤差處理以后,或許很有可能高標(biāo)準(zhǔn)差的現(xiàn)象也就消失了,要是沒有消退,在考慮到處理高標(biāo)準(zhǔn)差的難題。
4)假定訓(xùn)煉差錯率為0.5%,開發(fā)設(shè)計差錯率為1%,低誤差,低標(biāo)準(zhǔn)差(極致情況)
5)假定訓(xùn)煉差錯率為0.5%,開發(fā)設(shè)計差錯率為1%,低誤差,低標(biāo)準(zhǔn)差,可是開發(fā)設(shè)計集loss在底點(diǎn)不斷波動
-
確定訓(xùn)練集和檢測集遍布是不是具有很大的差別,差別大得話開展特征工程
-
確定是不是數(shù)據(jù)增強(qiáng)做的太多了
-
試著調(diào)節(jié)學(xué)習(xí)率,在不一樣環(huán)節(jié)應(yīng)用無需學(xué)習(xí)率
-
思索和檢查網(wǎng)絡(luò)是不是或是有點(diǎn)兒欠擬合,假如也有,處理欠擬合
-
尋找大量訓(xùn)煉數(shù)據(jù)信息,使其可以遮蓋較多的樣本分布
實(shí)體模型調(diào)參Pipeline
-
設(shè)置固定不動隨機(jī)種子
-
先不必應(yīng)用數(shù)據(jù)增強(qiáng)
-
設(shè)定合理性的baseline
-
多重共線性一個batch,隨后觀查loss最少能夠抵達(dá)是多少,比照baseline,假如能抵達(dá)很低,開展下一步,假如不好,則考慮到 狀況2)
-
制作training和testing 環(huán)節(jié)的loss曲線圖
-
認(rèn)證loss函數(shù)
-
假如train loss 小
-
假如test set 的loss 大,而train set 的loss小,表明多重共線性,應(yīng)用狀況1)處理
-
假如test set的loss 也小,那麼大部分算得上成功了
-
假如test set 的 loss 也小,可是波動,應(yīng)用 狀況5)處理
-
-
假如train loss 大
進(jìn)到流程2)
-
已優(yōu)化模型怎樣進(jìn)一步提高
-
優(yōu)化網(wǎng)絡(luò)構(gòu)造,應(yīng)用更快的backbone
-
應(yīng)用更快的LOSS涵數(shù),例如:回歸問題能夠考慮到smooth-l1等
-
考慮到應(yīng)用難例發(fā)掘的方式
-
有標(biāo)準(zhǔn)得話,加大batchsize
-
考慮到預(yù)訓(xùn)練模型
-
觀查檢測樣版,搜索case,對于Case來,填補(bǔ)樣版 數(shù)據(jù)增強(qiáng)
-
試著不一樣的提升涵數(shù),更替訓(xùn)煉,fine-tuning
-
不一樣的權(quán)重值復(fù)位方式
-
試著不一樣的學(xué)習(xí)率初值和衰減系數(shù)值
-
考慮到在梯度方向上下功夫,能夠是梯度方向剪裁、梯度方向校檢、梯度方向歸一化等方式
-
再次特征工程(通常最有效)