機器學習--偏差和方差


這篇博文主要是解釋偏差和方差,以及如何利用偏差和方差理解機器學習算法的泛化性能

綜述

在有監督學習中,對於任何學習算法而言,他們的預測誤差可分解為三部分 

  1. 偏差
  2. 方差
  3. 噪聲

噪聲屬於不可約減誤差,無論使用哪種算法,都無法減少噪聲。 通常噪聲是從問題的選定框架中引入的錯誤,也可能是由諸如未知變量之類的因素引起的,這些因素會影響輸入變量到輸出變量的映射。噪聲表達了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。而剩下兩種誤差則與我們選擇的學習算法相關,並且可以通過一些方法減小

數學推導

對於測試樣本 x, 

 

 

上面的期望預測是針對 不同 數據集 D, f 對 x 的預測值取其期望, 也被叫做 average predicted. 使用樣本數目相同的不同訓練集產生的方差為

                                                                                                      

期望輸出與真實標記的差別成為偏差

                                                                                                             

噪聲

                                                                                                               

算法的期望泛化誤差E(;D)為 

                                                                                                                    

                      

偏差

偏差度量了學習算法的期望預測和真實值之間的差別,刻畫了學習算法本身的擬合能力.

  • 低偏差:表明期望輸出和真實標記之間誤差小,學習算法擬合能力更強 
  • 高偏差:表明期望輸出和真實標記之間誤差大,學習算法擬合能力較差

低偏差機器學習算法的示例包括:決策樹,kNN和支持向量機;高偏差機器學習算法的示例包括:線性回歸,線性判別分析和邏輯回歸 

通常來說線性算法學習速度更快,更易於理解,但靈活性較低而無法從數據集中學習復雜的信號,具有較高的偏差.因此,它們針對復雜問題具有較低的預測性能.想象一下,將線性回歸擬合到具有非線性模式的數據集:

                                          

無論我們采集多少觀察值/樣本,線性回歸都將無法對數據中的曲線建模,期望輸出與真實標記之間有很大差別也就是說模型具有很高的偏差,這就是欠擬合

 

方差

方差度量了樣本量相同的的不同訓練集的變動所導致的學習性能的變化,即刻畫了數據擾動所造成的影響

目標函數是由機器學習算法從訓練數據中估算出來的,因此我們應該期望算法具有一定的方差。理想情況下,從一個訓練數據集到下一個訓練數據集的方差不應太大,這也意味着該算法能學習到輸入和輸出變量之間的隱藏底層映射。而具有高方差的機器學習算法容易受到訓練數據細節的強烈影響.

  • 低方差:表明訓練數據集的變化對目標函數的估計值造成較小的變動
  • 高方差:表明訓練數據集的變化對目標函數的估計值造成較大的變動

通常,具有很大靈活性的非線性機器學習算法具有很大的方差.例如,決策樹具有很高的方差,如果在使用前不對決策樹進行減枝,則差異更大。

低方差機器學習算法的示例包括:線性回歸,線性判別分析和邏輯回歸。

高方差機器學習算法的示例包括:決策樹,kNN和支持向量機

例如,假設有一個算法可以完全不受約束的擬合上面的同一數據集:

                           

 

上述模型基本上已經擬合了全部訓練數據,甚至是噪聲,因此當訓練數據發生輕微變化時會導致模型以及模型預測值產生很大的變動,這被稱為過擬合

方差-偏差折衷

偏差-方差分解說明,泛化性能是由學習算法的能力,數據充分性以及學習任務本身的難度決定的.給定學習任務為了取得更好的泛化性能,則需要使偏差較小,即能夠充分擬合數據,並且使方差較小,即使得數據擾動產生的影響小.任何監督式機器學習算法的目標都是實現低偏差和低方差,這意味着算法應該有一個好的的預測性能.從上面的示例中我們也可以看到:

  • 線性機器學習算法通常具有高偏差低方差
  • 非線性機器學習算法通常具有較低的偏差但具有較高的方差

機器學習算法的參數化通常就是在偏差和方差中尋求平衡,以下是為特定算法進行偏差方差折衷的一個示例:

  • 支持向量機算法具有低偏差和高方差,但是可以通過增加C參數來改變權衡,該參數會影響訓練數據中允許的余量的違反次數,從而增加偏差但減小方差。

一般來說偏差和方差是有沖突的,在機器學習中,偏差和方差之間始終存在如下的關系

  • 增加偏差將減小方差
  • 增加方差將減少偏差

下圖給出了一個示意圖,當算法復雜度不夠或者是訓練程度不足時,學習器的擬合能力不足,偏差主導泛化錯誤率.隨着算法復雜度加深或訓練程度加強,學習器的擬合能力逐漸增強,訓練數據的擾動逐漸被學習器學習到,此時方差逐步主導了泛化錯誤率.而我們要做的就是在在偏差和方差之間尋找一個平衡點,即泛化誤差最小的點, 達到optimal balance.

                      

我們選擇的算法以及平衡偏差和方差方式會產生不同的折衷效果.

                      

 

上圖中藍色的點表示預測值,中心紅點表示真實值,藍點越靠近中心點表明預測值與真實值越接近,偏差越小.藍色點越分散表明預測值之間差別很大,方差大,反之藍色點越集中表明預測值之間差別很小,從而方差小

實際上我們無法計算真實的偏差和方差值,因為我們不知道真正的的目標函數是什么,但我們可以利用偏差和方差幫助我們更好的理解機器學習算法的性能,在偏差和方差之間尋求平衡可以使我們的模型避免過擬合或者欠擬合.

 

reference  <機器學習>---周志華   

                    Gentle Introduction to the Bias-Variance Trade-Off in Machine Learning--Jason Brownlee

                       Understanding the Bias-Variance Tradeoff

                       WTF is the Bias-Variance Tradeoff? (Infographic) 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM