
什麼是偏差(Bias)和變異數(Variance)
模型的整體誤差主要由三個組成部分:
- 偏差(Bias):描述模型預測值與真實結果之間的系統性誤差。
- 低偏差不一定總是代表好的模型,當模型的偏差很低時,往往意味著模型的複雜度較高,這樣的模型可能會導致過擬合(overfitting)的問題。
- 高偏差通常表示訓練出的模型過於簡單,無法很好地擬合訓練資料,有欠擬合(underfitting)的風險。
- 變異數(Variance):也可以稱為方差,表示模型對訓練數據中的變化的敏感程度。
- 高變異數表明模型過於依賴訓練數據,當應用於新資料的時後,模型的性能會顯著下降,表示產生過擬合(overfitting)的問題。
- 低變異數的模型在面對不同的訓練資料集時,預測結果的變動較小,具有穩定的表現,意味著模型的穩定性高。表示模型能夠在測試資料上取得相對一致的表現。
- 不可約誤差(Irreducible Error):表示資料集當中本質上存在的隨機誤差,無法藉由訓練模型來消除該誤差。
偏差和變異數的高低分佈

我們從圖片中可以看到,依據偏差和變異數的高低,會產生四種不同的結果:
- 低偏差和低變異數:
- 左上角是最理想的預測狀態,將所有的預測集中在正確的紅色靶心當中。
- 低偏差和高變異數:
- 右上角的表現可以看出,雖然整體的預測值都坐落在紅色圓心當中,但是卻只有三個藍色小點被正確預測到紅色靶心,表示模型的整體預測區域大致正確,但是個別的預測值變異情況過大,以至於預測結果過於分散。
- 高偏差和低變異數:
- 左下角部分可以看到,低變異數讓整體的藍色小點預測值都十分靠攏,但是高偏差問題讓所有的藍色小點都偏移紅色靶心,以至於預測結果仍然不佳。
- 高偏差和高變異數:
- 右下角部分可以發現,不僅所有的藍色小點都四散各處,且絕大部分的藍色小點都不再紅色靶心當中,這是一種最不希望看到的情形。
Bias-Variance Tradeoff
在真實世界中,我們總無法同時得到低偏差和低變異數的預測結果,所以我們會將偏差和變異數以及整體誤差值,繪製出曲線圖,並在一個偏差和變異數都最低的位置進行估計,找到最佳的權衡(Tradeoff)。

偏差和變異數之間存在著權衡關係:當我們希望減少偏差時,變異數往往就會增加
- 高偏差,低變異數:
- 模型較為簡單,容易有欠擬合(underfitting)風險。
- 模型對於所有資料集的預測值非常一致,但這些預測可能與真實值有很大差距。
- 低偏差,高變異數:
- 模型較為複雜,容易有過擬合(overfitting)風險。
- 模型在訓練資料上表現非常好,但在測試數據上性能會大幅下降,因為它對訓練資料中的噪聲(noise)過於敏感。
機器學習的目標是找到一個模型,它的偏差和變異數達到平衡,在訓練資料和測試資料上都能有良好的表現。
由於不可約誤差(Irreducible Error)是屬於人為無法進行控制的部分
以下我們將會集中討論有關偏差(Bias)與變異數(Variance)估計上:
偏差與變異數的應用目標任務
偏差與變異數在實務上也被稱之為: Bias-Variance 分解(Bias-Variance Decomposition),主要應用在監督式學習(Supervised Learning)的目標任務上,特別是迴歸(Regression)與分類(Classification)兩大類問題當中。
其目的是分析和理解模型的預測誤差來源,以幫助選擇合適的模型和調整模型複雜度,進而提升模型的泛化能力(Generalization Ability)。
下面是 Bias-Variance Decomposition 應用的目標任務:
- 分類任務
- 迴歸任務
- 時間序列任務
- 高維度數據問題
如何有效控制偏差和變異數
以下是控制偏差和變異數的方法:
調整模型的複雜度
- 減少偏差:選擇更複雜的模型,使模型有能力捕捉數據中的更多模式。
- 減少變異數:選擇較簡單的模型,降低模型的靈活性,使其不會過度擬合訓練數據。
可以使用深度神經網絡(Deep Neural Network)代替線性模型,或是使用樹結構模型增加其決策樹的深度(depths)等方法。
使用正則化(Regularization)
- L1 正則化(Lasso):可以減少變異數,同時控制模型的偏差。
- L2 正則化(Ridge):減少變異數,適合於線性回歸和神經網絡等模型。
- Dropout 正則化(Neural Network):隨機丟棄部分神經元,降低變異數,使模型不容易過擬合。
增加訓練資料量
- 增加訓練資料量可以有效降低變異數,讓模型更能泛化到新資料上。若是在資料不充足的情況下,可以考慮使用資料增強(Data Augmentation)或是抽樣(Sampling)技術來增加資料數量。
使用集成學習方法(Ensemble Learning Methods)
- 集成學習方法如隨機森林(Random Forest)和提升樹(Boosting)可以同時減少偏差和變異數。隨機森林通過多棵弱樹平均化預測值來降低變異數,而提升樹通過訓練序列模型降低偏差。
交叉驗證(Cross-Validation)
- 使用交叉驗證(例如 K-fold )可以更準確地評估模型在不同訓練資料上的表現,幫助辨識偏差和變異數問題。可以根據交叉驗證結果選擇合適的模型複雜度。
降低特徵數量
- 對於高變異數問題,特徵過多可能會使模型過度擬合。通過特徵選擇、降維技術(如PCA)來減少特徵數量,可以有效降低變異數。
超參數調整
- 調整模型的超參數(如神經網絡的層數、節點數,決策樹的深度)有助於控制模型的偏差和變異數。例如,降低深度和分支可以降低變異數,而適當增加神經網絡的層數可以減少偏差。
使用適當的目標函數
- 針對不同的問題選擇合適的損失函數,例如,在回歸任務中使用均方誤差(MSE)來考量偏差,或在分類任務中使用交叉熵(Cross Entropy)來確保模型對不同類別的穩定性。
討論
偏差和變異數的估計主要是應用於監督式學習的模型任務,特別是迴歸與分類問題。
透過這個分析方法,能夠更深入理解模型誤差來源,這將會有助於在模型複雜度、預測精確度與泛化能力之間取得平衡。
參考資料
- https://www.cs.cornell.edu/courses/cs4780/2022sp/notes/LectureNotes17.html
- https://towardsdatascience.com/understanding-the-bias-variance-tradeoff-165e6942b229
- https://medium.com/@sarita_68521/understanding-the-bias-variance-tradeoff-in-machine-learning-examples-and-solutions-5de459ddeabd
- https://serokell.io/blog/bias-variance-tradeoff
