误差error,偏置bias,方差variance的见解
更新日志:2020-3-10
謝謝@ProQianXiao的指正。偏差-方差的確是在測試集中進行的。
之前的誤解是,偏差和方差的計算是同一個模型對不同樣本的預測結果的偏差和方差;而實際上是不同模型對同一個樣本的預測結果的偏差和方差。
這時候就要祭出網上都有的這張圖了
比如中間大紅色點的是這個樣本的真實標簽,小小的藍色點是不同樣本的預測結果。接下來簡介一下圖:
1.最好的模型就是低偏差低方差,這樣所有的模型覺得這個圖片所屬的標簽相同,同時標簽是真實標簽
2.橫排第二張圖,所有的模型有不同的觀點,導致預測結果方差很大,但是他們的預測結果都在真實標簽附近徘徊,可能有點過擬合了
3.第二排的第一列,所有的模型都認為這個樣本屬于同一個標簽,但是這個標簽并不是真實標簽,這就明顯預測錯誤,有可能是模型剛初始化,所有權重都比較小且接近,也沒訓練,導致欠擬合。
4.第二排第二列,所有的模型都各抒己見,同時他們判斷的結果與真實結果天差地別,這種情況我也不知道怎么稱呼,不過訓練久了一般不會出現這種情況吧。
綜上,我們訓練模型,通常會先出現方差小偏差大的情況,隨后偏差慢慢減少,方差慢慢增大的情況,如果模型夠好,也可能會出現偏差慢慢減少,方差慢慢減少的情況,這是最理想的結果。
——————————————————————————————————————————————
下面是之前的錯誤想法,是之前誤解的偏差和方差是同一個模型在不同數據上的預測結果的偏差和方差。
不知怎么的,想到了這三個名詞之間的關系,特地去查了一下,貌似學問還挺大。
以下純屬查閱資料,自己的理解,如有錯誤,謝謝下方評論糾正^_^
主要參考資料:知乎上關于這三個名詞的討論,以及周志華的《機器學習》這本書第45頁,以及一篇英文文檔。
偏置-方差是評估模型泛化能力的一個工具。
個人感覺這個評估是在訓練的時候中進行的(訓練過程用到了訓練集和驗證集),因為大部分文獻說 “bias是期望輸出與真實標記的差,如果bias過小會產生過擬合” ;那么如果我們將這個“期望輸出”理解為測試集的期望輸出,得到 (測試集期望輸出)-(實際標記) 的值,而我們的最終目標就是讓這個值最小,怎么可能是這個值越小,過擬合會越嚴重呢?所以只有是 (訓練集期望輸出)-(實際標記) 的值非常小的時候,才會造成過擬合。也就是我們常說的 “在訓練集上的誤差很小,但是在測試集上的誤差很大,那么得到的模型很可能是產生過擬合的模型”。
再舉個栗子,在訓練RBM的時候,能量函數或者計算神經元激活概率時都有一個偏置,這個偏置就只是在訓練的時候不斷更新,怎么可能是在測試的時候更新呢?這里有一個思路,是否可以通過偏置的大小或者平均值來判斷RBM是否過擬合了呢~~~這個以后測試一下
說了這么多亂糟糟的,總結一下:
先說三個相關數據標記:①樣本的真實標記 ②樣本在訓練集中的標記(可能含噪聲)③樣本在訓練時每次得到的輸出標記
噪聲(noise):訓練集的標記與真實標記的誤差平方的均值,即②-①的平方的均值。
偏置(bias):訓練模型的時候,每一次訓練得到的訓練集預測標簽與原始真實標簽的偏離程度(即③與①的差),如果此偏離程度過小,則會導致過擬合的發生,因為可能將訓練集中的噪聲也學習了。所以說偏置刻畫了學習算法本身的擬合能力,如果擬合能力不好,偏置較大,出現欠擬合;反之擬合能力過好,偏置較小,容易出現過擬合。在訓練的時候可以發現這個bias理論上應該是逐漸變小的,表明我們的模型正在不斷學習有用的東西。【當然這是針對只有一個訓練集的情況下,如果有多個訓練集,就計算出每一個樣本在各個訓練集下的預測值的均值,然后計算此均值與真實值的誤差即為偏差】
方差(variance):同樣是針對訓練模型時每一次得到的訓練集預測標簽,但是此時是最終一次訓練以后得到的所有標簽之間的方差且與真實標簽無關(即③本身的方差),即計算這些預測標簽的均值,再計算(每一個標簽-均值)的平方和。可以想象,剛開始方差肯定是很小的,因為剛開始學習,啥都不會,即使對于有或者無噪聲的數據,我們都無法做出精準判斷,然而隨著學習的進行,有些我們會越學越好,但是會越來越多地受到噪聲數據的干擾,方差也會越來越大。
誤差(error):預測標記與訓練集中標記的誤差(③和②的差)。
?
公式表示如下:
(以下樣本均為訓練集中的數據,與測試集毫無關系,且只訓練了1個模型,用來測試的樣本只是一類樣本,比如拿一堆1來做分類;我當時有一個疑問就是我拿一個1和一個1000來分類,就算完全預測對,方差也很大。所以用來計算方差和均值的樣本必須是同一類樣本在模型的輸出)
設樣本真實標記為R,可能含噪聲的訓練集中的標記為T,最終訓練得到的輸出標記為P,符號E代表求平均。注意,R、T、P都是向量,表示有好幾個樣本。則
誤差公式的證明詳細請看周志華老師《機器學習》的P45
——————————————————————————————————————————————————————————————
整個理解過程主要碰到的疑問就是:
第一,bias的期望輸出P到底來自測試集還是訓練集。如果是測試集,怎么去解釋bias越小過擬合。過擬合是測試集誤差大。
第二,測試用的樣本是原始標記是1和1000的時候,標簽方差本身就很大,如何去理解這個方差小一點比較好。自己理解的是這個測試樣本必須是同類樣本,如果是1,那么所有拿來測試的必須全部是1,計算方差的時候,也就是計算標簽為1的樣本得到的實際輸出的方差
總結
以上是生活随笔為你收集整理的误差error,偏置bias,方差variance的见解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【matlab函数】convn多维卷积
- 下一篇: 卡卡贷可以代还哪些银行的信用卡?一次能还