Bias-Variance Tradeoff
Bias và Variance: lệch tâm hay đạn rải
Bạn bắn 10 mũi tên. Cả 10 mũi đều lệch tâm sang phải 20cm nhưng chụm sát nhau thành một cụm nhỏ. Bạn đang gặp vấn đề gì?
Bốn tổ hợp bias × variance
Bốn tấm bia dưới đây tái hiện bốn tình huống huấn luyện mô hình. Bấm vào từng tấm để xem mô hình tương ứng trông như thế nào, và tại sao cả hai chiều (xa tâm và rải) đều quan trọng.
Mô hình vừa đủ phức tạp, có đủ dữ liệu để học ổn định. Tâm lệch rất ít, mũi tên chụm lại.
Hình minh họa
Đây là quan sát cốt lõi. Độ phức tạp mô hình là một cái nút. Kéo nút lên, bias giảm còn variance tăng. Kéo xuống, bias tăng còn variance giảm. Tổng sai số có hình chữ U, và bạn đang đi tìm đáy chữ U đó.
Kéo thanh độ phức tạp để xem ba đường cong
- Đường xanh (Bias²): luôn giảm khi tăng phức tạp. Mô hình nhiều tham số thì bắt được nhiều mẫu hơn.
- Đường cam (Variance): luôn tăng khi tăng phức tạp. Mô hình nhạy hơn với từng mẫu dữ liệu cụ thể.
- Đường đỏ đứt (Tổng): hình chữ U. Đáy chữ U là điểm bạn nên chọn, còn gọi là sweet spot.
Biết mô hình của bạn đang ở đâu trên trục bias-variance, bạn biết phải thêm gì. Thêm độ phức tạp để giảm bias, thêm dữ liệu hay ensemble để giảm variance, cải thiện đo đạc để giảm noise. Không có một viên đạn bạc nào ở đây, mà là ba loại thuốc cho ba loại bệnh.
Cùng một dữ liệu, hai mô hình cho kết quả trái ngược
15 điểm dữ liệu được sinh từ hàm sin cộng nhiễu nhẹ. Bấm qua lại giữa bậc 1 (đường thẳng) và bậc 10 (đa thức cong) để thấy hai đầu cực đoan của thang bias-variance.
Cùng 15 điểm dữ liệu, hai mức độ phức tạp cực đoan.
Bias rất cao. Đường thẳng không thể mô phỏng đường sin. Mô hình sai nhất quán ở cả hai đầu, và không thể sửa bằng thêm dữ liệu. Cần tăng độ phức tạp (bậc cao hơn).
- Train thấp, val thấp: underfit, hãy tăng phức tạp.
- Train cao, val thấp (gap lớn): overfit, hãy thêm dữ liệu hoặc regularize.
- Cả hai cao, gap nhỏ: bạn đang ở sweet spot, vậy là đủ tốt rồi.
- Val > Train: hiếm gặp, thường là rò rỉ dữ liệu giữa train và val. Hãy kiểm tra lại pipeline.
Bạn có 500 ảnh chó/mèo và huấn luyện một mạng deep learning 50 triệu tham số. Train accuracy = 100%, val accuracy = 65%. Bạn đang ở bên nào của đường cong chữ U?
Nhóm nghiên cứu cá ngừ đo 8 đặc điểm của cá để dự đoán tuổi. Mô hình hồi quy tuyến tính cho R² = 0.4 trên cả train và val. Vấn đề là gì?
Giải thích
Với bài toán hồi quy có nhiễu độc lập (ký hiệu nhiễu là ε, phương sai σ²), giá trị quan sát được là y = f(x) + ε. Sai số kỳ vọng của dự đoán ŷ(x), lấy trung bình trên nhiều tập huấn luyện khả dĩ, phân rã đẹp đẽ thành ba thành phần không âm:
Ba số hạng này luôn không âm và không thể triệt tiêu đồng thời với một lượng dữ liệu hữu hạn.
Khoảng cách trung bình từ dự đoán của mô hình đến giá trị thật. Cao khi mô hình quá đơn giản so với hàm cần học.
Giảm bằng: tăng độ phức tạp, thêm feature, giảm regularization.
Mô hình thay đổi bao nhiêu khi bạn huấn luyện lại trên tập dữ liệu khác cùng phân phối. Cao khi mô hình quá nhạy với nhiễu.
Giảm bằng: thêm dữ liệu, regularization, ensemble, giảm phức tạp.
Nhiễu vốn có của chính dữ liệu, không phụ thuộc mô hình. Đây là giới hạn dưới của sai số mà bạn có thể đạt được.
Giảm bằng: cải thiện đo đạc, định nghĩa nhãn, loại outlier dữ liệu.
Công thức thứ hai đáng nhớ là phân rã Bias–Variance cho một điểm dự đoán. Hai thành phần Bias² và Variance cạnh tranh nhau qua “cái nút” độ phức tạp:
Khi tăng phức tạp: Bias² ↓ nhưng Variance ↑. Tổng có hình chữ U.
- Polynomial regression: bậc d.
- Decision tree: max_depth, min_samples_leaf.
- Neural network: số layer, số neuron, epoch huấn luyện.
- KNN: k (k nhỏ = phức tạp cao).
- Regularization: λ lớn = phức tạp thấp hơn.
Dù tên gọi khác nhau, tất cả đều xoay cùng một trục bias ↔ variance. Cách tìm điểm tối ưu trong thực tế: cross-validation.
- Chọn mô hình dựa trên train error. Cách làm này luôn dẫn đến model phức tạp nhất, tức overfit.
- Regularize “theo mặc định” mà không tune λ. Việc này có thể gây underfit ngược.
- So sánh model nhiều feature bằng R² thô. R² chỉ tăng khi thêm feature, kể cả feature rác.
- Không cố định random seed khi so sánh. Variance giữa các seed sẽ che lấp khác biệt thật.
Bản đồ bias-variance cho các mô hình phổ biến
Khi nhìn qua lăng kính bias-variance, các mô hình ML cổ điển xếp khá rõ ràng. Bảng dưới đây là điểm xuất phát, không phải chân lý tuyệt đối, vì các hyperparameter có thể đẩy một mô hình đi theo hướng khác.
| Mô hình | Bias | Variance | Ghi chú |
|---|---|---|---|
| Linear regression | Cao | Thấp | An toàn, dễ giải thích. Underfit với dữ liệu phi tuyến. |
| Decision tree (sâu) | Rất thấp | Rất cao | Linh hoạt nhưng nhạy. Không ổn định, thay vài mẫu là cây khác hẳn. |
| Random Forest | Gần với tree đơn | Thấp | Trung bình nhiều cây làm variance giảm mạnh, bias gần như không đổi. |
| KNN (k nhỏ) | Thấp | Cao | k=1 gần như thuộc lòng train. Tăng k để giảm variance. |
| Ridge / Lasso | Tăng nhẹ | Giảm | Penalty L2/L1 kéo trọng số về 0, giảm dao động giữa các tập. |
| Deep Neural Network | Rất thấp | Cao | Cần regularization (dropout, weight decay) + dữ liệu lớn để ổn định. |
| Gradient Boosting | Thấp dần theo boost | Tăng dần | Mỗi cây thêm vào giảm bias nhưng tăng variance, nên early stopping là chìa khoá. |
Sơ đồ chẩn đoán nhanh khi mô hình chưa tốt
Bốn câu hỏi dưới đây giúp bạn quyết định bước tiếp theo cần làm. Đừng bỏ qua bước 1, vì đa số người nhảy thẳng sang “đổi mô hình” trước khi hiểu mình đang ở đâu.
Nếu bạn muốn đi sâu hơn, xem Overfitting vs Underfitting để thấy các dấu hiệu cụ thể và Regularization cho các kỹ thuật như L1/L2, dropout. Sau đó Random Forestminh hoạ cách ensemble giảm variance mà không tăng bias. Đây là một trong những “cú nhảy” quan trọng nhất trong ML cổ điển.
- Tổng sai số = Bias² + Variance + σ². Ba thành phần luôn không âm và không thể triệt tiêu cùng lúc.
- Bias cao là sai hệ thống, mô hình quá đơn giản (underfit). Variance cao là quá nhạy, mô hình quá phức tạp (overfit).
- Tăng phức tạp thì bias giảm còn variance tăng. Tổng có hình chữ U, sweet spot nằm ở đáy.
- Chẩn đoán: train và val đều thấp là underfit. Train cao, val thấp là overfit. Cả hai cao là sweet spot.
- Muốn giảm bias thì tăng phức tạp hoặc thêm feature. Muốn giảm variance thì thêm dữ liệu, regularize, hoặc ensemble.
- σ² là giới hạn dưới, không thể giảm bằng mô hình. Cải thiện chất lượng dữ liệu là cách duy nhất.
Kiểm tra hiểu biết
Một mô hình đạt train accuracy 99% nhưng validation accuracy chỉ 70%. Đây là tình huống gì?