偏差:是指乙個模型的在不同訓練集上的平均效能和最優模型的差異,可以用來衡量乙個模型的擬合能力。換句話說,偏差反映的是**值期望\(e(f(x))\)與真實值\(y\)之間偏移了多少;
方差:是指乙個模型在不同訓練集上的差異,可以用來衡量乙個模型是否容易過擬合。換句話說,方差衡量的是模型自身的穩定性,就是說模型每次輸出都會有或大或小的抖動,方差反映的是\(f(x)\)與\(e(f(x))\)之間的差別是否穩定;
雜訊:表達了當前任務上任何學習演算法所能達到的期望泛化誤差的下界,也就是最小值;
泛化誤差:可以分解為 偏差、方差和雜訊之和。
泛化效能是由學習演算法的能力、資料的充分性以及學習任務本身的難度所共同決定的。給定學習任務為了取得較好的泛化效能,則需要偏差較小,即能充分擬合資料,並且使方差較小,即使得資料擾動產生的影響小。
當模型表現不佳時?通常出現兩種問題,一種是高偏差問題,另一種是高方差問題。
以下圖中給出了機器學習演算法的偏差和方差的四種不同組合情況。每個圖的中心點為最優模型f∗(x),藍點為不同訓練集d上得到的模型 fd(x) 。
!(上圖所示為偏差和方差的四種組合:
(a)低方差-低偏差:理想情況;
(b)低方差-高偏差:模型泛化能力很好,但擬合能力不足;
(c)高方差-低偏差:模型擬合能力很好,但泛化能力較差;
(d)高方差-高偏差:最差情況。
就像打把一樣,偏差描述了射擊總體是否偏離目標,而方差描述射擊準不准。
方差一般會隨著訓練樣本的增加而減少。當樣本足夠多時,方差比較少,可以選擇能力強的模型來減少偏差。然而在很多機器學習任務上,訓練集往往比較有限,最優的偏差和最優的方差就無法兼顧。
隨著模型複雜度的增加,模型的擬合能力增強,偏差減小而方差增大,從而導致過擬合。以結構錯誤最小化為例,可以通過調整正則化係數 \(\lambda\) 來控制模型的複雜度。
當 \(\lambda\) 增大時,模型複雜度降低,方差減小而偏差上公升,從而避免過擬合。
當 \(\lambda\) 過大時,總的期望錯誤反而會上公升。
因此,乙個好的正則化係數需要在偏差和方差之間取得較好的平衡。如下圖1所示,最優模型並不一定是偏差曲線和方差曲線的交點。
!(圖1:《神經網路與深度學習》插圖
方差和偏差之間存在此消彼長的關係,方差和偏差是不能同時達到最小的。
此外,在《機器學習》中,有下圖2,周志華老師給了以下解釋:
(1)當訓練不足時,學習器的擬合能力不夠強,訓練資料的擾動不足以使學習器產生顯著變化,此時偏差主導了泛化錯誤率;
(2)隨著訓練程度的加深,學習器的擬合能力逐漸增強,訓練資料發生的擾動逐漸被學習器學到,方差逐漸主導了泛化錯誤率;
(3)在訓練程度充足後,學習器的擬合能力已經非常強,訓練資料的輕微擾動都會導致學習器發生顯著變化,若訓練資料自身的,非全域性的特性被學習器學習到了,則將發生過擬合。
!(圖2:《機器學習》插圖
我們訓練乙個模型的最終目的是為了讓這個模型在測試資料上擬合效果好,也就是\(error(test)\)比較小,但在實際問題中,無法得到測試資料,也就根本不知道測試資料的內在規律(如果知道了,還要機器學習做什麼?),所以需要通過一定策略來減小\(error(test)\),分兩步:
(1)讓\(error(train)\)盡可能小;
(2)讓\(error(train)\)盡可能等於\(error(test)\)
怎麼讓\(error(train)\)盡可能小呢?\(\longrightarrow\) 把模型複雜化,引數增多\(\longrightarrow\)low bias
怎麼讓\(error(train)\)盡可能等於\(error(test)\)
\(\longrightarrow\) 把模型簡單化,引數減少。\(error(train)\)=\(error(test)\)代表模型沒有偏見,對訓練集和測試集一視同仁,也就是模型更具有通用性,對區域性資料不敏感,那就是簡單的模型\(\longrightarrow\)low variance
對於高偏差問題,我們一般採取:
(1)更加複雜的模型
(2)增加訓練時間
對於高方差問題,我們一般採取:
(1)更多的訓練資料
(2)正則化
reference:邱錫鵬老師的《神經網路與深度學習》
吳恩達老師的《深度學習》課程
周志華老師的《機器學習》
什麼是偏差-方差權衡
從機器學習演算法合理性的角度解釋方差和偏差
知乎使用者修宇亮的答案
偏差與方差
偏差度量了學習演算法的期望 與真實結果的偏離程度,即刻畫了學習演算法本身的擬合能力 方差度量了同樣大小的訓練集的變動多導致的學習效能的變化,即刻畫了資料擾動所造成的影響。雜訊則表達了在當前任務上任何學習演算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。偏差 方差分解說明,泛化效能是由學...
偏差與方差
1.定義 偏差指的是演算法在大型訓練集上的錯誤率,方差指的是演算法在測試集上的表現低於訓練集的程度。當方差很高時,說明模型過擬合 當偏差很高時,說門模型欠擬合。2.減少偏差的方案 偏差過高,既模型在訓練集上的錯誤率太高說明模型欠擬合,減少偏差的方案如下 減少或去掉正則化 l1,l2,dropout ...
偏差和方差
當我們的模型表現不佳時,通常是出現兩種問題,一種是 高偏差 問題,另一種是 高方差 問題。識別它們有助於選擇正確的優化方式,所以我們先來看下 偏差 與 方差 的意義。對於 多項式回歸,當次數選取較低時,我們的 訓練集誤差 和 交叉驗證集誤差 都會很大 當次數選擇剛好時,訓練集誤差 和 交叉驗證集誤差...