什么是高/低方差、高/低偏差、(推荐阅读)
2021071
https://www.pianshen.com/article/71161696005/
方差是對多個樣本集的比較而言?
摘要:在現實任務中,我們往往有多種學習算法可供選擇,甚至對同一個學習算法,當使用不同的參數配置時,也會產生不同的模型,那么,我們該如何選用哪一個學習算法,使用哪一種參數配置呢?這就是機器學習中的“模型選擇”問題,理想的解決方案是對候選模型的泛化誤差進行評估,然后選擇泛化誤差最小的那個模型。
泛化誤差意義
以前在機器學習中一直使用經驗風險(訓練誤差)來逼近真實風險,但事實上多數情況經驗風險并不能夠準確逼近真實風險。后來業界就提出了泛化誤差的概念(generalization error),在機器學習中泛化誤差是用來衡量一個學習機器推廣未知數據的能力,即根據從樣本數據中學習到的規則能夠應用到新數據的能力。
訓練過程中的誤差,就是訓練誤差。訓練完畢、調參完畢的模型,在新的測試集上的誤差,就是測試誤差。假如所有的數據來自一個整體,模型在這個整體上的誤差,就是泛化誤差。通常說來,測試誤差的平均值或者說期望就是泛化誤差。泛化誤差是衡量一個模型推廣能力的標準,指示泛化性能。泛化誤差越小,表示模型的推廣能力越強,泛化性能越優。
泛化誤差分解
y 真實標記 可以認為是不存在的 實際數據中是被yD所替代(就可能含有人工標錯的) 但這里為了公式計算
認為真實標記是存在的
偏差、方差、噪聲的含義
偏差:度量了學習算法的期望預期與真實結果的偏離程度,即刻畫了學習算法本身的擬合能力。把模型比喻成一支獵槍,預測的目標是靶心,假設射手不會手抖且視力正常,那么這支槍(模型)的能力就可以用多次射擊后的中心(相當于預測值的期望,即 和靶心的距離來衡量(偏離了靶心有多遠)。當獵槍(模型)和子彈(樣本)質量都很好時,就能得到方差和偏差都比較低的結果。但是如果獵槍是沒有校準的或者目標超出有效射程,那么偏差就會更高(擊中點離靶心比較遠)。子彈(樣本)也可能出問題,比如子彈的形狀、重量等因素,導致瞄準一個點多次射擊在靶上會散開一片,這就是高方差的情況。
方差:度量了同樣大小的訓練集的變動所導致的學習性能的變化,反映了在不同樣本集上模型輸出值的變異性,方差的大小反應了樣本在總體數據中的代表性,或者說不同樣本下模型預測的穩定性。即刻畫了數據擾動所造成的的影響。比如現在要通過一些用戶屬性去預測其消費能力,結果有兩個樣本,一個樣本中大多數都是高等級活躍會員,另一個則是大部分是低質量用戶,兩個樣本預測出來的數據的差異就非常大,也就是模型在兩個樣本上的方差很大。如果模型在多個樣本下的訓練誤差(經驗損失)“抖動”比較厲害,則有可能是樣本有問題。
噪聲:表達了在當前任務上學習算法所能達到的期望泛化誤差的下界(即模型學習的上限),即刻畫了學習問題本身的難度。不可控的錯誤很難避免,這被稱為不可約偏差(irreducible error),即噪聲無法通過模型來消除。噪聲通常是出現在“數據采集”的過程中的,且具有隨機性和不可控性,比如采集用戶數據的時候儀器產生的隨機性偏差、或者在實驗中受到其他不可控因素的干擾等。
圖中紅色的靶心表示測試樣本的真實標記,藍色的點表示模型在不同訓練集上選出的函數的輸出。第一列的兩個圖中,藍色的點都比較集中,說明模型的穩定性好,也就是方差小;第一行的兩個圖中,藍色點的中心都比較靠近紅色靶心,說明模型的擬合能力強,也就是偏差小。所以總結如下:
low bias and low variance:又準又穩
low bias and high variance: 準但不穩
high bias and low variance:不準但穩
high bias and high variance:不準又不穩
偏差和方差的權衡
泛化性能是由學習算法的能力、數據的充分性以及學習任務本身的難度共同決定的。對于給定的學習任務,為了取得好的泛化性能,則需要使偏差較小,即能夠充分擬合數據,并且使方差較小,即使得數據擾動所造成的影響小。
但一般來說,偏差與方差是有沖突的,即方差和偏差會此消彼長的現象,這稱為偏差-方差窘境,如下圖所示。給定學習任務,假定我們能夠控制學習算法的復雜程度,則在訓練不足時,學習器的擬合能力不夠強,就出現欠擬合(under-fitting),訓練數據的擾動不足以使學習器產生顯著變化,此時偏差主導了泛化錯誤率,如果是在分類任務中可能在訓練集和測試集上的準確率都非常低(即錯誤率都很高);隨著訓練程度的加深,學習器的擬合能力逐漸增強,訓練數據發生的擾動漸漸能被學習器學到,方差逐漸主導了泛化錯誤率;在訓練程度充足時,學習器的擬合能力已經非常強,訓練數據發生的輕微擾動都會導致學習器發生顯著變化,訓練模型時用力過猛時就會發生“過擬合” (over-fitting),在分類任務上可能會出現訓練集上準確率高,測試集上準確率低。此時訓練數據自身的非全局性的特性(特異性)也被學習器學到了,導致預測值的變異性更大。所以我們需要在模型復雜度之間權衡,使偏差和方差得以均衡(trade-off),這樣模型的整體誤差才會最小。
如何降低偏差(bias)
增加算法的復雜度,比如神經網絡中的神經元個數或者層數,增加決策樹中的分支和層數等。不過增加模型復雜度可能會導致方差(variance)的增加,如果有必要,需要添加正則化項來懲罰模型的復雜度(降低方差);
優化輸入的特征,檢查特征工程中是否遺漏掉具有預測意義的特征。增加更多的特征也許能同時改善方差(variance)和偏差(bias),不過理論上來說,特征越多方差(variance)也就越大(可能又需要正則化);
削弱或者去除已有的正則化約束(L1正則化,L2正則化,dropout等),不過有增加方差的風險;
調整模型結構,比如神經網絡的結構;
如何降低方差(variance)
擴大訓練樣本,樣本太小(代表性不夠)是方差大的首要原因,增加樣本是減少方差最簡單有效的方式;
增加正則化約束(比如L1正則化,L2正則化,dropout等),正則化降低方差的同時也可能增大偏差;
篩選輸入的特征(feature selection),這樣輸入的特征變少后,方差也會減小;
降低算法模型復雜度,比如對決策樹的剪枝、減少神經網絡的層數等;
優化模型的結構有時候也會有用
通常來說。
線性或者參數化的算法一般具有高偏差(bias)低方差(variance)的特點,比如線性回歸,線性判別分析(Linear Discriminant Analysis),Logistic回歸等線性模型;
非線性或者非參數化的算法則常表現出低偏差(bias)高方差(variance),比如決策樹,KNN,SVM;
20201226
偏差是指模型的預測值和真實值的差異 對單個模型不同的訓練集而言
模型復雜度越高 偏差越小
方差是預測值和模型預測值的平均值的差異 也是對單個模型不同的訓練集而言
模型復雜度越高 方差越大 本質上還是指不同數據組成的訓練集的數據之間本身的方差性質
雖然訓練集能很好的擬合 但是預測的時候 偏差確很大
有可能理解不對
內容導讀
最近聽機器學習課程時聽到這三個概念一開始有點模糊。感覺沒理解透,所以自己又查了點資料,消化了一下,然后做了個筆記。Bias反映的是模型在樣本上的輸出與真實值之間的誤差,即模型本身的精準度,其實Bias在股票上也有應用,也可以反映股價在波動過程中與移動平均線偏離程度(乖離率),炒股的朋友應該知道均線的概念。其實通過這個我感覺可以更容易的理解這個概念,我們知道Bias是受算法模型的復雜度決定的,假設下圖的紅線是我們給出的模型,藍色的點就是樣本,這是一個最簡單的線性模型,這個時候Bias就可以通過這些藍色的點到紅線沿Y軸的垂直距離來反映(即真實值與模型輸出的誤差),距離越大說明Bias越大,也說明擬合度更低。在概率論和統計學中方差是衡量隨機變量或一組數據時離散程度的度量。以上就是我對Bias(偏差),Error(誤差),和Variance(方差)的一些簡單理解,圖全是截取自李宏毅的PPT中。
最近聽機器學習課程時聽到這三個概念一開始有點模糊。感覺沒理解透,所以自己又查了點資料,消化了一下,然后做了個筆記。
首先三者之間的聯系是 Error = Bias + Variance(這里應該是忽略的噪音)。Error反映的是整個模型的準確度,說白了就是你給出的模型,input一個變量,和理想的output之間吻合程度,吻合度高就是Error低。Bias反映的是模型在樣本上的輸出與真實值之間的誤差,即模型本身的精準度,其實Bias在股票上也有應用,也可以反映股價在波動過程中與移動平均線偏離程度(乖離率),炒股的朋友應該知道均線的概念。其實通過這個我感覺可以更容易的理解這個概念,我們知道Bias是受算法模型的復雜度決定的,假設下圖的紅線是我們給出的模型,藍色的點就是樣本,這是一個最簡單的線性模型,這個時候Bias就可以通過這些藍色的點到紅線沿Y軸的垂直距離來反映(即真實值與模型輸出的誤差),距離越大說明Bias越大,也說明擬合度更低。
當我們增加模型的復雜度,剛剛是一個線性的模型,現在是一個四次方的模型,可以明顯看出點到模型的沿Y軸的垂直距離更少了,即擬合度更高了,所以Bias也更低了。所以這樣我們就可以很容易理解Bias和模型復雜度之間的關系了。給出結論:當模型復雜度上升時,Bias減小。當模型復雜度降低時,Bias增加。這里就涉及到了欠擬合(unfitting)和過度擬合(overFitting)的問題了。好了,接下來讓我們看看Variance(方差)的定義。
Variance(方差)反映的是模型每一次輸出結果與模型輸出期望之間的誤差,即模型的穩定性。在概率論和統計學中方差是衡量隨機變量或一組數據時離散程度的度量。下圖中紅線就是每一組樣本對應的模型,想象一下真實數據有無限多,我們以10個樣本為一組,選取了500個樣本組,然后在線性模型下,針對這500個樣本組,我們會有500組不同的b和w值組成的線性模型,最后構成左圖的樣子。當我們的模型升級成5次方的復雜程度時,針對這500個樣本組,我們會有右邊這張圖顯示的500組不同的參數構成的模型。可以看出,明顯右邊的圖比左邊的圖更離散一些,試想一個極端情況,當模型就是一個常數時,這個時候模型復雜度最低,同時Variance也為0。所以我們可以得出結論:當模型復雜度低時,Variance更低,當模型復雜度高時,Variance更高。
到這里我們可以給出兩個結論。
一、Bias和模型復雜度的關系:當模型復雜度上升時,Bias減小。當模型復雜度降低時,Bias增加。(反比關系)
二、Variance和模型復雜度的關系:當模型復雜度低時,Variance更低,當模型復雜度高時,Variance更高。(正比關系)
一開始我們就知道Error = Bias + Variance。整個模型的準確度和這兩個都有關系,所以這下看似是有些矛盾的。如何才能取到最小的Error呢,看下圖,藍線就是Error的伴隨Bias和Variance的變化情況,可以看出橫坐標3應該是一個較好的結果。所以我們需要找到一個平衡點取得最優解。
實際情景中我們怎么判斷自己的模型是Bias大還是Variance大呢,這個就要看到底是你的模型無法盡量大的擬合你的樣本還是你的模型高度擬合你的樣本但是用測試數據算時誤差右很大。前者就是應該bias大導致的,也就是模型復雜度太低導致的。后者就是因為模型復雜度高導致Variance高導致的。
以上就是我對Bias(偏差),Error(誤差),和Variance(方差)的一些簡單理解,圖全是截取自李宏毅的PPT中。
概念
偏差: 描述的是預測值(估計值)的期望與真實值之間的差距。偏差越大,越偏離真實數據集。
(Ps:假設靶心是最適合給定數據的模型,離靶心越遠,我們的預測就越糟糕)
方差: 描述的是預測值的變化范圍,離散程度,也就是離其期望值的距離。方差越大,預測結果數據的分布越散。
基于偏差的誤差: 所謂基于偏差的誤差是我們模型預期的預測與我們將要預測的真實值之間的差值。偏差是用來衡量我們的模型的預測同真實值的差異。
基于方差的誤差: 基于方差的誤差描述了一個模型對給定的數據進行預測的可變性。比如,當你多次重復構建完整模型的進程時,方差是,在預測模型的不同關系間變化的多少。
接下來,我們把四張圖合并起來:
解釋:
左上:低偏差,低方差。表現出來就是,預測結果準確率很高,并且模型比較健壯(穩定),預測結果高度集中。
右上:低偏差,高方差。表現出來就是,預測結果準確率較高,并且模型不穩定,預測結果比較發散。
左下:高偏差,低方差。表現出來就是,預測結果準確率較低,但是模型穩定,預測結果比較集中。
右下:高偏差,高方差。表現出來就是,預測結果準確率較低,模型也不穩定,預測結果比較發散。
舉個例子,讓你二次開竅
想象你開著一架黑鷹直升機,得到命令攻擊地面上一只敵軍部隊,于是你連打數十梭子,結果有一下幾種情況:
1.子彈基本上都打在隊伍經過的一棵樹上了,連在那棵樹旁邊等兔子的人都毫發無損,這就是方差小(子彈打得很集中),偏差大(跟目的相距甚遠)。
2.子彈打在了樹上,石頭上,樹旁邊等兔子的人身上,花花草草也都中彈,但是敵軍安然無恙,這就是方差大(子彈到處都是),偏差大(跟目的相距甚遠)。
3.子彈打死了一部分敵軍,但是也打偏了些打到花花草草了,這就是方差大(子彈不集中),偏差小(已經在目標周圍了)。
4.子彈一顆沒浪費,每一顆都打死一個敵軍,跟抗戰劇里的八路軍一樣,這就是方差小(子彈全部都集中在一個位置),偏差小(子彈集中的位置正是它應該射向的位置)。
方差,是形容數據分散程度的,算是“無監督的”,客觀的指標,偏差,形容數據跟我們期望的中心差得有多遠,算是“有監督的”,有人的知識參與的指標。
三次理解
偏差(bias):對象是單個模型, 期望輸出與真實標記的差別。
方差(Variance):對象是多個模型,表示多個模型差異程度。
以上圖為例:
1. 左上的模型偏差最大,右下的模型偏差最小;
2. 左上的模型方差最小,右下的模型方差最大
為了理解第二點,可以看下圖。藍色和綠色分別是同一個訓練集上采樣得到的兩個訓練子集,由于采取了復雜的算法去擬合,兩個模型差異很大。如果是拿直線擬合的話,顯然差異不會這么大。
一般來說,偏差、方差和模型的復雜度之間的關系如下圖所示:
越復雜的模型偏差越小,而方差越大。
我們用一個參數少的,簡單的模型進行預測,會得到低方差,高偏差,通常會出現欠擬合。
而我們用一個參數多的,復雜的模型進行預測,會得到高方差,低偏差,通常出現過擬合。
實際中,我們需要找到偏差和方差都較小的點。從上圖可以看出在偏差和方差都較小的點處,total Error是最少的。
XGBOOST中,我們選擇盡可能多的樹,盡可能深的層,來減少模型的偏差;
通過cross-validation,通過在驗證集上校驗,通過正則化,來減少模型的方差從而獲得較低的泛化誤差。
拓展
數學上的定義:
我們定義我們要預測的變量為Y,協變量為X,我們假設有Y=f(X)+?,其中誤差項服從均值為0的正態分布.
我們用線性回歸或者別的模型來估計f(X) 為.其中,對x來說,誤差為:
將上式展開,然后用偏差和方差表述:
注意:最后一項為噪聲,是無法通過模型降低的。
通過上面的式子也可看出,要使得誤差低,就要使得偏差和方差都要低。
參考文獻
為了幫助理解,尤其是拓展部分,可以參考一下參考文獻
- 理解機器學習中的偏差與方差
- Understanding the Bias-Variance Tradeoff
這么聰明的你,一定理解了吧!加油!
《完》
所謂的不平凡就是平凡的N次冪。----By Ada
總結
以上是生活随笔為你收集整理的什么是高/低方差、高/低偏差、(推荐阅读)的全部內容,希望文章能夠幫你解決所遇到的問題。