偏差和方差及其解決辦法

2022-08-11 21:03:12 字數 1134 閱讀 9024

訓練神經網路時,我們會有乙個訓練集,乙個測試集,人在這件事上幾乎是不會出錯的

當訓練集精度為99%,而測試集精度為90%時

這時就是出現了過擬合,我們稱他為方差較高

當訓練集精度為85%,測試集精度也為85%時

這就是擬合的不好,我們稱他為高偏差

為了之後表達方便我稱訓練集精度為a,測試集精度為b

高方差的解決辦法:

出現高方差時一般是,a,b先一起上公升,然後到某一點之後 a繼續上公升b開始下降

early stopping

我常用的就是訓練時,每訓練100次輸出一次訓練集精度,每1k次儲存一次模型

一旦發現b開始下降了,就停止訓練

這裡定義下什麼叫做b開始下降

不是說連續300次訓練b都在下降就叫b開始下降了

最好是連續1000 - 2000次訓練b都在下降才能叫做b開始下降了

因為b是會有波動的,偶爾幾次下降是正常行為

另外的解決辦法是正則化

因為神經網路過擬合的根本原因就是網路設計的過於複雜了

正則化就是一種把網路簡化的方法

drop out 正則化:

在訓練神經網路時,按照一定的概率去更新節點

其實網路會過擬合

每一次學習時,這次讓一部分節點學習,下次讓另一部分節點學習

這樣每次學習就能學到不同的過擬合特徵

最後再用的時候,過擬合相互抵消,就解決了過擬合的問題

l2正則化:

將loss改為loss = loss + (a/2n)*(w1 * w1 + w2 * w2 + ....... + wm * wm)

a為自己指定的係數,n為樣本個數,w就是我們訓練時的w

這樣的話,在做反向傳播的時候dwi = dwi + (a/n) * wi

wi = wi - learning_rate * dwi

那麼那個多出來的東西會使無論此時的wi是什麼,我們都會試圖讓他變得更小

讓w趨近於0,就會弱化這個神經元對結果的影響,達到了減小神經網路複雜度的效果

高偏差的解決辦法:

高偏差沒什麼好說的,就是神經網路太簡單了唄

這時候要麼繼續訓練,要麼加資料,要麼就加節點,加層數

最好不要加層數,因為3層的神經網路已經可以表示一切連續函式了

沒必要多加

偏差和方差

當我們的模型表現不佳時,通常是出現兩種問題,一種是 高偏差 問題,另一種是 高方差 問題。識別它們有助於選擇正確的優化方式,所以我們先來看下 偏差 與 方差 的意義。對於 多項式回歸,當次數選取較低時,我們的 訓練集誤差 和 交叉驗證集誤差 都會很大 當次數選擇剛好時,訓練集誤差 和 交叉驗證集誤差...

偏差和方差

當我們費勁周章不斷調參來訓練模型時,不可避免地會思考一系列問題,模型好壞的評判標準是什麼?改善模型的依據何在?何時停止訓練為佳?要解決上述問題,我們需要引入偏差和方差這兩個概念,理解他們很重要,也是後續了解過擬合 正則化 提早終止訓練 資料增強等概念和方法的前提。一 概念定義 偏差 bias 偏差衡...

偏差和方差

偏差 bias 偏差衡量了模型的 值與實際值之間的偏離關係。方差 variance 方差描述的是訓練資料在不同迭代階段的訓練模型中,值的變化波動情況 或稱之為離散情況 一 低偏差,低方差 這是訓練的理想模型,此時藍色點集基本落在靶心範圍內,且資料離散程度小,基本在靶心範圍內 二 低偏差,高方差 這是...