總結:Bias(偏差),Error(誤差),Variance(方差)及CV(交叉驗證)

前言

此片有很多別人的東西,直接搬過來了,都有注釋,里面也有一些自己的理解和需要注意的地方,以此記錄一下,總結如下,思想不夠成熟,以后再補充,如有錯誤請不吝指正


犀利的開頭

在機器學習中,我們用訓練數(shù)據(jù)集去訓練(學習)一個model(模型),通常的做法是定義一個Loss function(誤差函數(shù)),通過將這個Loss(或者叫error)的最小化過程,來提高模型的性能(performance)。然而我們學習一個模型的目的是為了解決實際的問題(或者說是訓練數(shù)據(jù)集這個領域(field)中的一般化問題),單純地將訓練數(shù)據(jù)集的loss最小化,并不能保證在解決更一般的問題時模型仍然是最優(yōu),甚至不能保證模型是可用的。這個訓練數(shù)據(jù)集的loss與一般化的數(shù)據(jù)集的loss之間的差異就叫做generalization error=bias+variance。

作者:路小墨
鏈接:https://www.zhihu.com/question/27068705/answer/82132134
來源:知乎
著作權歸作者所有,轉載請聯(lián)系作者獲得授權。


Error = Bias^2 + Variance+Noise

  • 什么是Bias(偏差)

Bias反映的是模型在樣本上的輸出與真實值之間的誤差,即模型本身的精準度,即算法本身的擬合能力


  • 什么是Variance(方差)

Variance反映的是模型每一次輸出結果與模型輸出期望之間的誤差,即模型的穩(wěn)定性。反應預測的波動情況。


  • 什么是Noise(噪聲)

這就簡單了,就不是你想要的真正數(shù)據(jù),你可以想象為來破壞你實驗的元兇和造成你可能過擬合的原因之一,至于為什么是過擬合的原因,因為模型過度追求Low Bias會導致訓練過度,對測試集判斷表現(xiàn)優(yōu)秀,導致噪聲點也被擬合進去了


簡單的例子理解Bias和Variance

  • 開槍問題

想象你開著一架黑鷹直升機,得到命令攻擊地面上一只敵軍部隊,于是你連打數(shù)十梭子,結果有一下幾種情況:

1.子彈基本上都打在隊伍經(jīng)過的一棵樹上了,連在那棵樹旁邊等兔子的人都毫發(fā)無損,這就是方差?。ㄗ訌棿虻煤芗校?,偏差大(跟目的相距甚遠)。

2.子彈打在了樹上,石頭上,樹旁邊等兔子的人身上,花花草草也都中彈,但是敵軍安然無恙,這就是方差大(子彈到處都是),偏差大(同1)。

3.子彈打死了一部分敵軍,但是也打偏了些打到花花草草了,這就是方差大(子彈不集中),偏差小(已經(jīng)在目標周圍了)。

4.子彈一顆沒浪費,每一顆都打死一個敵軍,跟抗戰(zhàn)劇里的八路軍一樣,這就是方差?。ㄗ訌椚慷技性谝粋€位置),偏差?。ㄗ訌椉械奈恢谜撬鼞撋湎虻奈恢茫?。

作者:刑無刀
鏈接:https://www.zhihu.com/question/20448464/answer/24397161
來源:知乎
著作權歸作者所有,轉載請聯(lián)系作者獲得授權。


-再來個射箭問題:假設你在射箭,紅星是你的目標,以下是你的射箭結果

這里寫圖片描述

作者:Jason Gu
鏈接:https://www.zhihu.com/question/20448464
來源:知乎
著作權歸作者所有,轉載請聯(lián)系作者獲得授權。


分析:

我們可以看到,在Low Variance的一列,數(shù)據(jù)分布是非常集中的,恩,小伙子,你的穩(wěn)定性很好,方差很小,表現(xiàn)的很聚集。而第二列就是High Variance的一列,機智的你可能一下就看出來了,沒錯,飄來飄去的,非常不穩(wěn)定!


看下Low Bias這一行,命中紅心的次數(shù)很多對不對,說明你還是有準頭的,至少偏差不算大,我要是裁判,我就不管你沒射中幾只箭飄到哪去了(方差大,不集中),畢竟我看的是命中了多少(準確度),而High Bias這一行,明顯可以看出一支箭都沒射中,表現(xiàn)很差,偏離目標好遠,負分滾粗!


綜合起來看,我們需要的模型最好是兩個L,又準確又穩(wěn)定,妥妥的,但是,這個在現(xiàn)實模型中是不會存在的。你只能權衡著來


Bias,Variance和Overfitting(過擬合),Underfitting(欠擬合)

過擬合,也就是我對訓練樣本能夠百分百命中了,超級擬合了,但是測試時候就掉鏈子,擬合很差,也就是我們說的泛化性能不好的問題,所以如果太追求在訓練集上的完美而采用一個很復雜的模型,會使得模型把訓練集里面的噪聲都當成了真實的數(shù)據(jù)分布特征,從而得到錯誤的數(shù)據(jù)分布估計。

一句話,過擬合會出現(xiàn)高方差問題


欠擬合:訓練樣本太少,導致模型就不足以刻畫數(shù)據(jù)分布了,體現(xiàn)為連在訓練集上的錯誤率都很高的現(xiàn)象。

一句話,欠擬合會出現(xiàn)高偏差問題


怎么避免過擬合和欠擬合


避免欠擬合(刻畫不夠)

  1. 尋找更好的特征-----具有代表性的
  2. 用更多的特征-----增大輸入向量的維度

避免過擬合(刻畫太細,泛化太差)

  1. 增大數(shù)據(jù)集合-----使用更多的數(shù)據(jù),噪聲點比重減少

  2. 減少數(shù)據(jù)特征-----減小數(shù)據(jù)維度,高維空間密度小

  3. 正則化方法-----即在對模型的目標函數(shù)(objective function)或代價函數(shù)(cost function)加上正則項

  4. 交叉驗證方法

    更多方法詳解請看@一只鳥的天空--機器學習中防止過擬合的處理方法


為什么要用交叉驗證(Cross-Validation)

1.交叉驗證,這是僅使用訓練集衡量模型性能的一個方便技術,不用建模最后才使用測試集

2.Cross-validation 是為了有效的估測 generalization error(泛化誤差) 所設計的實驗方法,而generalization error=bias+variance

首先:bias和variance分別從兩個方面來描述了我們學習到的模型與真實模型之間的差距。Bias是 “用所有可能的訓練數(shù)據(jù)集訓練出的所有模型的輸出的平均值” 與 “真實模型”的輸出值之間的差異;Variance則是“不同的訓練數(shù)據(jù)集訓練出的模型”的輸出值之間的差異。

作者:路小墨
鏈接:https://www.zhihu.com/question/27068705/answer/82132134
來源:知乎
著作權歸作者所有,轉載請聯(lián)系作者獲得授權。


可以發(fā)現(xiàn),怎么來平衡Bias和Variance則成了我們最大的任務了,也就是怎么合理的評估自己模型呢?我們由此提出了交叉驗證的思想,以K-fold Cross Validation(記為K-CV)為例,基本思想如下:(其他更多方法請看@bigdataage --交叉驗證(Cross-Validation))

這里寫圖片描述

將原始數(shù)據(jù)分成K組(一般是均分),將每個子集數(shù)據(jù)分別做一次驗證集,其余的K-1組子集數(shù)據(jù)作為訓練集,這樣會得到K個模型,用這K個模型最終的驗證集的分類準確率的平均數(shù)作為此K-CV下分類器的性能指標.K一般大于等于2,實際操作時一般從3開始取,只有在原始數(shù)據(jù)集合數(shù)據(jù)量小的時候才會嘗試取2. 而K-CV 的實驗共需要建立 k 個models,并計算 k 次 test sets 的平均辨識率。在實作上,k 要夠大才能使各回合中的 訓練樣本數(shù)夠多,一般而言 k=10 (作為一個經(jīng)驗參數(shù))算是相當足夠了。

看不清上面的就來一幅更簡單的

這里寫圖片描述

每次的training_set 紅色, validation_set白色 ,也就是說k=5的情況了

注意:交叉驗證使用的僅僅是訓練集??!根本沒測試集什么事!很多博客都在誤導!

這也就解決了上面剛開始說的Variance(不同訓練集產(chǎn)生的差異),Bias(所有data訓練結果的平均值)這兩大問題了!因為交叉驗證思想集合了這兩大痛點,能夠更好的評估模型好壞!

說白了,就是你需要用下交叉驗證去試下你的算法是否精度夠好,夠穩(wěn)定!你不能說你在某個數(shù)據(jù)集上表現(xiàn)好就可以,你做的模型是要放在整個數(shù)據(jù)集上來看的!畢竟泛化能力才是機器學習解決的核心

Bias、Variance和K-fold的關系

下面解釋一下Bias、Variance和k-fold的關系:k-fold交叉驗證常用來確定不同類型的模型(線性、指數(shù)等)哪一種更好,為了減少數(shù)據(jù)劃分對模型評價的影響,最終選出來的模型類型(線性、指數(shù)等)是k次建模的誤差平均值最小的模型。當k較大時,經(jīng)過更多次數(shù)的平均可以學習得到更符合真實數(shù)據(jù)分布的模型,Bias就小了,但是這樣一來模型就更加擬合訓練數(shù)據(jù)集,再去測試集上預測的時候預測誤差的期望值就變大了,從而Variance就大了;反之,k較小時模型不會過度擬合訓練數(shù)據(jù),從而Bias較大,但是正因為沒有過度擬合訓練數(shù)據(jù),Variance也較小。

作者:TANGent
鏈接:https://www.zhihu.com/question/27068705/answer/35286205
來源:知乎
著作權歸作者所有,轉載請聯(lián)系作者獲得授權。


致謝

@知乎--機器學習中的Bias(偏差),Error(誤差),和Variance(方差)有什么區(qū)別和聯(lián)系?
@知乎--方差和偏差
@bigdataage --交叉驗證(Cross-Validation)
@一只鳥的天空--機器學習中防止過擬合的處理方法

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 機器學習是做NLP和計算機視覺這類應用算法的基礎,雖然現(xiàn)在深度學習模型大行其道,但是懂一些傳統(tǒng)算法的原理和它們之間...
    在河之簡閱讀 20,900評論 4 65
  • 作者:hooly微信公眾號:一口袋星光 目錄: 1.說明;2.概念;3.bias-variance trade-o...
    hooly閱讀 6,020評論 0 5
  • 首頁 資訊 文章 資源 小組 相親 登錄 注冊 首頁 最新文章 IT 職場 前端 后端 移動端 數(shù)據(jù)庫 運維 其他...
    Helen_Cat閱讀 4,151評論 1 10
  • 本文主要回顧下幾個常用算法的適應場景及其優(yōu)缺點! 機器學習算法太多了,分類、回歸、聚類、推薦、圖像識別領域等等,要...
    Helen_Cat閱讀 428評論 0 2
  • 凡是悲觀的情緒都是自身調和失當所致, 在生活里,或是在生命里, 你不一定要去認同, 但一定不要找你那可信的介口來辯...
    維也納的琴聲閱讀 382評論 0 0

友情鏈接更多精彩內容