1. 程式人生 > >過擬合overfitting

過擬合overfitting

下面左圖即為欠擬合,中圖為合適的擬合,右圖為過擬合。 
這裡寫圖片描述

過擬合:在模型引數擬合過程中,由於訓練資料包含抽樣誤差,訓練時複雜的模型將抽樣誤差也考慮在內(抽樣誤差也進行了擬合)。模型泛化能力弱,在訓練集上效果好,在測試集上效果差。


導致過擬合的原因(包括但不限於如下幾個):

訓練樣本過少,不足以對整個樣本空間進行分佈估計;對模型進行過度訓練(overtraining)

​避免過擬合的方法:early stopping、資料集擴增(Data augmentation)、正則化(Regularization)、Dropout等。

1.​early stopping

​模型訓練過程中常用到迭代的思路,例如梯度下降演算法。Early stopping是在迭代收斂之前,就通過一定標準提前終止迭代來防止過擬合。

具體做法是在每個​Epoch結束時(一個Epoch集為對所有的訓練資料的一輪遍歷),檢視模型效能評價指標的變化情況,如果模型效能不再提高,就停止訓練。這裡的重點就是如何確認模型效能不再提高了。以準確率為例,並不是說一旦準確率發生下降就是不再提高了,因為可能經過這個Epoch後,準確率降低了,但是隨後的Epoch又讓準確率又上去了,所以不能根據一兩次的連續降低就判斷不再提高。

判斷準確率是否提高的做法是,在訓練過程中記錄到目前為止最好的準確率,當連續10次Epoch(或若干次)​沒有達到這個最佳準確率時,就認為不會再提高,停止迭代。

2.資料集增擴

​根據獨立同分布假設,更多的資料往往對樣本空間的整體分佈估計更準確,不過實際應用中由於種種原因,並不一定總能獲得足夠的資料,例如成本問題。

通俗得講,資料機擴增即需要得到更多的符合要求的資料,即和已有的資料是獨立同分布的,或者近似獨立同分布的。一般有以下方法:從資料來源頭採集更多資料;複製原有資料並加上隨機噪聲;重取樣;根據當前資料集估計資料分佈引數,使用該分佈產生更多資料等。

3.正則化方法(Regularization)​、權重衰減(weight decay 

大的權值會使得系統出現過擬合,降低其泛化效能。為了避免出現overfitting,會給誤差函式新增一個懲罰項,常用的懲罰項是所有權重的平方乘以一個衰減常量之和。將權值大小加到cost裡,訓練時用來懲罰大的權值。訓練時一方面降低輸出與樣本之間的誤差,一方面降低權值發大小。參考自

http://blog.sina.com.cn/s/blog_890c6aa30100z7su.html

​關於正則化(優化時,在目標函式或代價函式後面加上一個正則項)可以避免過擬合的原因,有如下幾種角度進行解釋:

1)​正則化是假設模型的引數服從先驗概率,即為模型引數新增先驗,不同的正則化方式的先驗分佈不一樣(L1正則是拉普拉斯先驗,而L2正則則是高斯先驗)。規定了引數的分佈,降低了模型的複雜度,增強對噪聲和異常點的抗干擾能力。

2)​L2與L1的區別在於,L1正則是拉普拉斯先驗,而L2正則則是高斯先驗。它們都是服從均值為0,協方差為1/λ。當λ=0時,即沒有先驗。沒有正則項,則相當於先驗分佈具有無窮大的協方差,那麼這個先驗約束則會非常弱,模型為了擬合所有的訓練集資料, 引數w可以變得任意大從而使得模型不穩定,即方差大而偏差小。λ越大,標明先驗分佈協方差越小,偏差越大,模型越穩定。即,加入正則項是在偏差bias與方差variance之間做平衡tradeoff。之前關於正則化介紹中有一幅圖如下:

上圖中的模型是線性迴歸,有兩個特徵,要優化的引數分別是w1和w2,左圖的正則化是l2,右圖是l1。藍色線就是優化過程中遇到的等高線,一圈代表一個目標函式值,圓心就是樣本觀測值(假設一個樣本),半徑就是誤差值,受限條件就是紅色邊界(就是正則化那部分,我的理解是這個紅色邊界就是限定了先驗分佈,二者相交處,才是最優引數。可見右邊的最優引數只可能在座標軸上,所以就會出現0權重引數,使得模型稀疏。

4 Dropout

這是神經網路中的一種方法,通過修改神經網路本身結構來防止過擬合。

​此外,maxout、DropConnect號稱是對Dropout的改進。可參考http://www.cnblogs.com/tornadomeet/p/3430312.html

總結:


參考自:http://blog.csdn.net/heyongluoyao8/article/details/49429629

https://www.zhihu.com/question/59201590  (寫的很詳細,推薦細看)

轉自:http://blog.sina.com.cn/s/blog_7103b28a0102wozt.html

相關推薦

什麼是 (Overfitting) 、解決方法、程式碼示例(tensorflow實現)

過於自負 在細說之前, 我們先用實際生活中的一個例子來比喻一下過擬合現象. 說白了, 就是機器學習模型於自信. 已經到了自負的階段了. 那自負的壞處, 大家也知道, 就是在自己的小圈子裡表現非凡, 不過在現實的大圈子裡卻往往處處碰壁. 所以在這個簡介裡, 我們把自負和過擬合畫上等號

機器學習筆記05:正則化(Regularization)、(Overfitting)

說明:文章中的所有圖片均屬於Stanford機器學習課程 (一)過擬合問題(The Problem of Overfitting) 不管是在線性迴歸還是在邏輯迴歸中,我們都會遇到過擬合的問題。先從例子來看看什麼是過擬合。 i.線性迴歸中的過擬合

overfitting

下面左圖即為欠擬合,中圖為合適的擬合,右圖為過擬合。  過擬合:在模型引數擬合過程中,由於訓練資料包含抽樣誤差,訓練時複雜的模型將抽樣誤差也考慮在內(抽樣誤差也進行了擬合)。模型泛化能力弱,在訓練集上效果好,在測試集上效果差。 導致過擬合的原因(包括但不限於如下幾個

機器學習—overfitting

面對各個網友的回答,突然發現自己對於過擬合的概念似乎理解的不是很透徹,或者說之前就沒有完全理解透。 其中有個人這麼說“樣本少feature多才overfitting” 也有人提到 看紅框標註部分,也就是說樣本多就不會發生過擬合麼。 先不管知乎

overfitting

過擬合:指模型在訓練集上表現很好,但是在測試集上表現很差。 造成過擬合的原因: 1. 訓練集過小,模型無法cover所有可能的情況(泛化能力差); 2. 模型過於複雜,過於貼合訓練資料; 解決方法: 1. 增加訓練資料(增加訓練資料多樣性,提升模型泛化能力),e.g. CNN資料

淺議現象(overfitting)以及正則化技術原理

1. 過擬合(overfitting)簡介 0x1:假設空間(hypothesis space) 給定學習演算法 A,它所考慮的所有可能概念的集合稱為假設空間,用符號 H 表示。對於假設空間中的任一概念,我們用符號 h 表示,由於並不能確定它是否真是目標概念,因此稱為“假設”(hypothesis) 1

overfitting問題

1、定義 在training data上的error漸漸減小,但是在驗證集上的error卻反而漸漸增大(過擬合是泛化的反面) 2、解決辦法 (1)正則化(Regularization) L2正則化:目標函式中增加所有權重w引數的平方之和, 逼迫所有w儘可能趨向零但不為零.

Overfitting-

什麼是過擬合 過擬合:我們通過訓練集訓練的模型對於訓練樣本的的擬合程度十分高,就會放大一些不必要的特徵,再對測試集進行測試時,就容易造成測試精度很低,也就是模型的泛化能力很弱,這就是過擬合。 怎麼解決過擬合 對應導致過擬合發生的幾種條件,我們可以想辦法來避免過擬合。

深度學習 14. 深度學習調參,CNN引數調參,各個引數理解和說明以及調整的要領。underfitting和overfitting的理解,的解釋。

本文為原創文章轉載必須註明本文出處以及附上 本文地址超連結以及 博主部落格地址:http://blog.csdn.NET/qq_20259459  和 作者郵箱( [email prot

overfitting()的概念

最近幾天在看模式識別方面的資料,多次遇到“overfitting”這個概念,最終覺得以下解釋比較容易接受,就拿出來分享下。 overfittingt是這樣一種現象:一個假設在訓練資料上能夠獲得比其他假設更好的擬合,但是在訓練資料外的資料集上卻不能很好的擬合數據。此時我們就叫這個假設出現了overfitti

機器學習中:overfitting)和欠(underfitting)

Underfitting is easy to check as long as you know what the cost function measures. The definition of the cost function in linear regression is half the me

14Overfitting

過擬合:我們通過訓練集訓練的模型對於訓練樣本的的擬合程度十分高,就會放大一些不必要的特徵,再對測試集進行測試時,就容易造成測試精度很低,也就是模型的泛化能力很弱,這就是過擬合。 那麼我們如何解決過擬合

tensorflow使用L2 regularization正則化修正overfitting

L2正則化原理: 在Loss中加入引數w的平方和,這樣訓練過程中就會抑制w的值,w的值小,曲線就比較平滑,從而減小過擬合,參考公式如下圖: 正則化是不影響你去擬合曲線的,並不是所有引數都會被無腦抑制,實際上這是一個動態過程,是cross_entropy和L2 loss

如何解決overfitting)問題?

什麼是過擬合? 為了得到一致假設而使假設變得過度嚴格稱為過擬合。過擬合的模型一般對訓練資料表現很好,而對測試資料表現很差。 如何解決過擬合問題? early stopping:可以設定一個迭代截斷的閾值,到了這個閾值迭代終止;也可以設定兩次迭代之間的accuracy提高

AI - TensorFlow - Overfitting

for 區分 技術分享 運用 圖片 environ top col tar 過擬合 過擬合(overfitting,過度學習,過度擬合): 過度準確地擬合了歷史數據(精確的區分了所有的訓練數據),而對新數據適應性較差,預測時會有很大誤差。 過擬合是機器學習中常見的問題

機器學習的防止方法

alt int 變化 http 處理 提高 pro 無法 structure 過擬合 ??我們都知道,在進行數據挖掘或者機器學習模型建立的時候,因為在統計學習中,假設數據滿足獨立同分布(i.i.d,independently and identically distribu

機器學習中防止方法

從數據 tro 輸出 效果 沒有 imagenet neu 效率 公式 過擬合 ??在進行數據挖掘或者機器學習模型建立的時候,因為在統計學習中,假設數據滿足獨立同分布,即當前已產生的數據可以對未來的數據進行推測與模擬,因此都是使用歷史數據建立模型,即使用已經產生的數據去訓練

擬合 log text data ng- class article ast art 過擬合

drop out為什麽能夠防止

正則 復雜 訓練數據 它的 一個 解決 過程 drop 投票 來源知乎: dropout 的過程好像很奇怪,為什麽說它可以解決過擬合呢?(正則化) 取平均的作用: 先回到正常的模型(沒有dropout),我們用相同的訓練數據去訓練5個不同的神經網絡,一般會得到

Tensorflow學習教程------

模型 float softmax 一個 返回 之間 zeros 函數 size 回歸:過擬合情況 / 分類過擬合 防止過擬合的方法有三種: 1 增加數據集 2 添加正則項 3 Dropout,意思就是訓練的時候隱層神經元每次隨機抽取部分參與訓練。部分不參與 最