過擬合和欠擬合及其解決辦法

2021-10-07 12:13:37 字數 1490 閱讀 2491

欠擬合:

欠擬合表示模型在訓練集上的表現比較差,具體表現就是模型在訓練集上的誤差比較大,原因就是模型表現不了資料

欠擬合的緩解辦法:

過擬合:

過擬合表示的是模型在訓練集上變現很好但是測試集上表現不行,可以看下面的吳恩達的課上的這個圖,本來虛線就已經挺好的,但是模型為了在訓練集上取得比較好的變現就產生了乙個彎彎曲曲的分類面,但其實這個分類面反而不能很好的反應資料,那乙個圓圈有可能都是異常點,所以就造成訓練的時候loss很小,但是一測試誤差就很大。

過擬合的緩解辦法

正則化:比如l1和l2正則化,l1正則化是在原來的損失函式後面加上一項

λ 2m

∥w∥\frac\|w\|

2mλ​∥w

∥ l2正則化是在原來的損失函式後面加上一項

λ 2m

∥w∥2

\frac\|w\|^

2mλ​∥w

∥2直觀上比較好理解為什麼l1和l2正則化會有用:因為過擬合的模型一般都是比較複雜的,引數都是會比較大的,l1和l2正則化相當於加了乙個懲罰項,告訴模型不要太複雜,而引數lamda其實就是用來控制這個懲罰項有多大來進行平衡的。這裡要注意,如果用的是l1正則化,w最終會是稀疏的,也就是說w向量中有很多0,有人說這樣有利於壓縮模型,因為集合中引數均為0,儲存模型所占用的記憶體更少。實際上,雖然l1正則化使模型變得稀疏,卻沒有降低太多儲存記憶體,所以大家越來越傾向於使用l2正則化。

dropout(隨機失活),dropout做的就是以一定概率讓一些節點失活,可以直接理解為以一定概率刪除網路中的某一些節點,比如說下面的這張圖,每一層以50%的概率讓節點失活:

這裡我們介紹一種常見的dropout方法:inverted dropout(反向隨機失活),大概的做法就是我們設定乙個概率keep-prob,這個概率表示保留多少節點,比如說第三層的keep-prob是0.8,那麼我們就保留第三層80%的節點,具體操作我們可以產生乙個向量d,這個向量裡面的值都是0,1,1的個數佔到了整個向量長度的keep-prob,然後我們用這個向量去乘以神經網路某一層的啟用函式,比如說a3=np.multipy(a3,d3),這樣我們就達到了讓一些節點失活的目的,需要注意幾點:

1、每一層都可以設定不用的keep-prob值,你如果覺得某一層不可能是過擬合的原因,你就可以把那一層的keep-prob設定為1,也就是不使用dropout

2、反向隨機失活(inverted dropout)方法通過除以keep-prob,確保最後結果期望值不變

3、我們訓練的時候,每一次遍歷資料集,可能會讓不同的節點失活

4、測試時我們不會使用dropout,因為在測試階段進行**時,我們不期望輸出結果是隨機的,如果測試階段應用dropout函式,**會受到干擾。

過擬合 欠擬合及其解決辦法

1.什麼是過擬合?過擬合 overfitting 是指在模型引數擬合過程中的問題,由於訓練資料報含抽樣誤差,訓練時,複雜的模型將抽樣誤差也考慮在內,將抽樣誤差也進行了很好的擬合。具體表現就是最終模型在訓練集上效果好 在測試集上效果差。模型泛化能力弱。2 產生過擬合根本原因 1 觀察值與真實值存在偏差...

欠擬合和過擬合定義和解決辦法

定義 過擬合 乙個假定在訓練集資料上能夠獲得比其他假設更好的擬合,但在測試集上卻不能很好的擬合資料,此時認為這個假設出現過擬合的現象 模型過於複雜 欠擬和 假定在訓練集上不能獲得更好的擬合並且在測試集上也不能很好的擬合資料此時認為這個假設出現欠擬合的現象 模型過於簡單 解決辦法 欠擬合原因以及解決辦...

過擬合和欠擬合以及相對應的解決辦法

欠擬合 是指模型的學習能力比較低,以至於,只學到了很少的一部分資訊,當進行 的時候,會發生方差最低,和偏差較大的情況 過擬合 是指模型的學習能力比較強,以至於,直接把題給背下來了,如果考到原題,就會實現相應的 100 如果 的不再訓練集中,那麼結果就是0.過擬合是偏差較小,但是方差較大 上面的較小與...