天天看點

白話系列之 bias and variance機器學習中的bias和variance簡單了解

機器學習中的bias和variance簡單了解

bias 和variance的概念了解

  • 一點點背景
    在常見的機器學習問題中,我們往往希望根據已有的資料,使用機器學習的模型和算法去學習已知資料的資訊;我們的最終目标是希望我們可以學習到原始資料的真實分布,真實模型,因為隻有這樣我們才可以使用學習到模型去做我們想做的事,比如預測,判别等等。既然要學習到資料的真實分布,又不得不提機器學習中一個很重要的問題:泛化問題。也就是訓練好的模型在新的資料上适應能力。也就是我們希望我們訓練得到的模型符合訓練資料的底層真實分布,這樣對于訓練資料之外的測試資料(也來自于訓練資料的底層分布,但不在測試資料中)訓練得到的模型也可以很好的拟合,這樣的模型也就有着很好的泛化能力。
  • 機器學習算法的bias指的是模型對目标資料的估計的期望值與目标資料真實值之間的距離
    聽起來有些怪怪的,即便已經是大白話了;我們可以這樣想:假設我們可以在多組資料(這些資料都來自于訓練集,屬于同一個資料分布)上訓練出多個資料模型,這樣的話,對于我們要預測的目标值,就可以有多個預測估計值,那麼bias指的就是這些預測值到目标真實值之間的距離(通常可以了解為距離的均值),很明顯就是預測的偏見。
  • 機器學習算法的variance指的是模型對目标資料的估計值之間的相對距離
    不知道措辭是否有問題簡單的說就是,多個模型(針對訓練資料訓練出的多個模型)的預測結果之間距離。當然如果模型本身是很健壯的,那麼可能訓練出的模型沒有很大的偏差,那麼相應的variance就很小了。

關于機器學習算法bias和variance的low or high

high bias: 通常意味着模型的capability小了些,可以通過增加模型的複雜度來調整

high variance : 通常意味着模型的複雜度高了些,可以試着增加訓練資料來調整。

  • 如何了解和處理模型的high bias呢?
    懶得上圖了,我們可以想象多項式拟合問題:如果我們需要拟合的資料來自于一條sin曲線,然而使用的是線性模型去拟合,在這種情況下,必然的結果是high bias,偏差必定很大,增加訓練資料也不會有任何幫助!我們能怎麼做呢?提升模型的capability,或者增加資料的特征比如使用三次多項式去拟合!提升模型的capability自不用說,可以考慮使用非線性模型諸如多層感覺機等;或者增加資料的特征:也就是将資料轉化為多項式特征(1,x,x^2,x^3),依然可以使用線性模型去拟合!
  • 如何了解和處理模型的high variance呢?
    high variance,假設low bias,否則的話使用上面的方法處理一下;如果low bias,但是variance較大,說明模型的能力capability沒啥問題。但是可能能力太強了!為啥呢?因為模型的預測結果可以圍繞在目标真實值周圍,參考多項式拟合問題,如果給定的訓練資料不同,那麼因為模型的表達能力太強,則可能拟合出各種形狀,但是都確定了訓練集的正确拟合!對于新的資料模型的預測曲線也可以在真實值周圍晃動!對于這種情況,可以考慮增加訓練資料,使得模型可以學習到底層資料的真實分布(如果底層資料真有模型那麼複雜的話),通常來說會有不錯的效果;但是如果不成!也就是模型發生了過拟合!那就得尋思着别的法子啦!比如正則化方法,early stopping,dropout等等!(這裡就不詳細去說了啦)

繼續閱讀