Bias-Variance Tradeoff
Đánh đổi Bias-Variance
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. Click 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, variance tăng. Kéo xuống — bias tăng, 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 — 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 — có ba loại thuốc cho ba loại bệnh.
Cùng một dữ liệu, hai mô hình — kết quả trái ngược
15 điểm dữ liệu được sinh từ hàm sin + 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 — 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 → tăng phức tạp.
- Train cao, val thấp (gap lớn): overfit → thêm dữ liệu, regularize.
- Cả hai cao, gap nhỏ: bạn đang ở sweet spot — đủ tốt rồi.
- Val > Train: hiếm gặp, thường là rò rỉ dữ liệu giữa train và val — kiểm tra lại pipeline.
Bạn có 500 ảnh chó/mèo và train 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 và , sai số kỳ vọng của dự đoán — 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. 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 — luôn dẫn đến model phức tạp nhất, tức overfit.
- Regularize “theo mặc định” mà không tune λ — 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 che lấp khác biệt thật.
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 — 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 = sai hệ thống, mô hình quá đơn giản (underfit). Variance cao = quá nhạy, mô hình quá phức tạp (overfit).
- Tăng phức tạp: bias giảm, variance tăng. Tổng có hình chữ U — sweet spot ở đáy.
- Chẩn đoán: train & val đều thấp → underfit. Train cao, val thấp → overfit. Cả hai cao → sweet spot.
- Giảm bias: tăng phức tạp, thêm feature. Giảm variance: thêm dữ liệu, regularize, 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ì?