generalization error


泛化誤差

機器學習中的Bias(偏差),Error(誤差),和Variance(方差)有什么區別和聯系?
准與確的關系

bias

偏差:模型越復雜,模型的偏差越小,方差越小,因此會出現overfitting
准:bias描述的是根據樣本擬合出的模型的輸出預測結果的期望與樣本真實結果的差距:\(E|y_{真實}-y_{預測}|\),就是分類器在樣本上(測試集)上擬合的好不好。因此想要降低bias,就要復雜化模型,增加模型的參數,容易導致過擬合,過擬合對應的是上面的high variance,點比較分散。low bias對應的就是點都打在靶心附近,所以描述的是准,但是不一定穩

variance

方差:模型越簡單,模型的擬合度一般,模型方差越小,偏差越大,因此會出現underfitting
描述的是樣本訓練出來的模型在測試集上的表現,想要降低variance,就要簡化模型,減少模型的復雜程度,這樣比較容易欠擬合,low variance對應的就是點打的都很集中,但是不一定准

這個靶子上的點(hits)可以理解成一個個的擬合模型,如果許多個擬合模型都聚集在一堆,位置比較偏,如圖中high bias ,low variance這種情景,意味着無論什么樣子的數據灌進來,擬合的模型都差不多,這個模型過於簡陋了,參數太少了,復雜度太低了,這就是欠擬合:但如果是圖中low bias, high variance這種情景,你看,所有擬合模型都圍繞中間那個correct target均勻分布,但又不夠集中,很散,這就意味着,灌進來的數據一有風吹草動,擬合模型就跟着劇烈變化,這說明這個擬合模型過於復雜了,不具有普適性,就是過擬合。

所以bias和variance的選擇是一個tradeoff(取舍思維),過高的varance對應的概念,有點「劍走偏鋒」[矯枉過正」的意思,如果說一個人variance比較高, 可以理解為,這個人性格比較極端偏執,眼光比較狹窄,沒有大局觀。而過高的bias對應的概念,有點像「面面俱到」「大巧若拙] 的意思,如果說一個人bias比較高,可以理解為,這個人是個好好先生,誰都不得罪, 圓滑世故,說話的時候,什么都說了,但又好像什么都沒說,眼光比較長遠,有大局觀。(感覺好分裂 ),或許可以說泛化能力更強,誰都適用,就是沒啥用。

總結

偏差度量了學習算法的期望預測與真實結果的偏離程度,即刻畫了算法本身的擬合能力;

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

噪聲則表達了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,即刻畫了學習問題的本身難度

偏差-方差分解說明,泛化性能是由學習算法的能力、數據的充分性以及學習任務本身的難度所共同決定的。給定的學習任務,為了取得好的泛化性能,則需使偏差較小,即能夠充分擬合數據,並且使方差較小,即使數據擾動產生的影響小。一般來說方差與偏差是有沖突的,這稱為方差-偏差窘境csdn

error

Error反映的是整個模型的准確度,說白了就是你給出的模型,input一個變量,和理想的output之間吻合程度,吻合度高就是Error低。Bias反映的是模型在樣本上的輸出與真實值之間的誤差,即模型本身的精准度

\(error=bias+variance+噪聲\)

Error反映的是整個模型的准確度,Bias反映的是模型在樣本上的輸出與真實值之間的誤差,即模型本身的精准度,Variance反映的是模型每一次輸出結果與模型輸出期望之間的誤差,即模型的穩定性

參考哦

在一個實際系統中,Bias與Variance往往是不能兼得的。如果要降低模型的Bias,就一定程度上會提高模型的Variance,反之亦然。造成這種現象的根本原因是,我們總是希望試圖用有限訓練樣本去估計無限的真實數據。當我們更加相信這些數據的真實性,而忽視對模型的先驗知識,就會盡量保證模型在訓練樣本上的准確度,這樣可以減少模型的Bias。但是,這樣學習到的模型,很可能會失去一定的泛化能力,從而造成過擬合,降低模型在真實數據上的表現,增加模型的不確定性。相反,如果更加相信我們對於模型的先驗知識,在學習模型的過程中對模型增加更多的限制,就可以降低模型的variance,提高模型的穩定性,但也會使模型的Bias增大。

Bias與Variance兩者之間的trade-off是機器學習的基本主題之一,機會可以在各種機器模型中發現它的影子。具體到K-fold Cross Validation的場景,其實是很好的理解的。首先看Variance的變化,還是舉打靶的例子。假設我把搶瞄准在10環,雖然每一次射擊都有偏差,但是這個偏差的方向是隨機的,也就是有可能向上,也有可能向下。那么試驗次數越多,應該上下的次數越接近,那么我們把所有射擊的目標取一個平均值,也應該離中心更加接近。更加微觀的分析,模型的預測值與期望產生較大偏差,

在模型固定的情況下,原因還是出在數據上,比如說產生了某一些異常點。在最極端情況下,我們假設只有一個點是異常的,如果只訓練一個模型,那么這個點會對整個模型帶來影響,使得學習出的模型具有很大的variance。但是如果采用k-fold Cross Validation進行訓練,只有1個模型會受到這個異常數據的影響,而其余k-1個模型都是正常的。在平均之后,這個異常數據的影響就大大減少了。相比之下,模型的bias是可以直接建模的,只需要保證模型在訓練樣本上訓練誤差最小就可以保證bias比較小,而要達到這個目的,就必須是用所有數據一起訓練,才能達到模型的最優解。因此,k-fold Cross Validation的目標函數破壞了前面的情形,所以模型的Bias必然要會增大。

如何處理 variance 較大的問題

減少特征數量
使用更簡單的模型
增大你的訓練數據集
使用正則化
加入隨機因子,例如采用 bagging 和 boosting 方法

如何處理 bias 較大的問題

增加特征數量
使用更復雜的模型
去掉正則化jianshu


免責聲明!

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



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