
Trong quá trình huấn luyện mô hình, chắc hẳn bạn đã gặp trường hợp với vấn đề mô hình dự đoán tốt trên tập train nhưng không dự đoán tốt trên tập test. Đó được hiểu bởi vì do mô hình quá phức tạp nhưng lại được được huấn luyện với lượng dữ liệu có giới hạn (khi sử dụng Maximum Likelihood Estimation). Đó là hiện tượng overfitting. Khi đó, chúng ta có thể giảm số lượng tham số của mô hình, tuy nhiên, chúng ta sẽ đối mặt với việc mô hình đơn giản quá không nắm bắt được các xu hướng của dữ liệu. Việc để hiểu rõ lý do tại sao mô hình đưa ra kết quả như vậy, chúng ta phải tìm hiểu hai khái niệm, đó là Bias và Variance.
Các thuật toán Machine Learning sử dụng mô hình Xác suất thống kê có hai loại sai số không thể tránh khỏi là: avoidable error (sai số có thể giảm thiểu được) và unavoidable error (sai số không thể điều chỉnh được). Unavoidable error là sai số do sự biến thiên tự nhiên trong hệ thống. Trong khi đó, avoidable error được thì lại dễ kiểm soát hơn và có thể tăng độ chính xác trong bài toán.

Bias và Variance là các thành phần của sai số có thể giảm thiểu được. Tuy nhiên Bias chỉ có thể giảm đến một mức độ nhất định. Việc giảm được sai số đòi hỏi phải lựa chọn mô hình có độ phức tạp và linh hoạt phù hợp, cũng như bộ dữ liệu train thích hợp. Do đó chúng ta cần phải hiểu được sự khác biệt của Bias cũng như Variance để giảm được độ sai số và xây dựng mô hình chính xác.

(Ảnh 2: towardsdatascience.com)
Mục lục
- Bias là gì?
- Variance là gì?
- Bias-Variance trade off
- Overfitting và Underfitting
- Bias và Variance trong bài toán thực tế
1. Bias là gì?
Bias hay còn được hiểu là độ lệch, thiên vị, thiên kiến là sai khác giữa giá trị dự đoán và giá trị chính xác (ground truth) của dự đoán đó. Khi xây dựng mô hình chúng ta mong muốn sẽ tạo ra bias thấp. Điều đó đồng nghĩa với giá trị dự báo sẽ gần với ground truth hơn. Thông thường những mô hình quá đơn giản được huấn luyện trên những bộ dữ liệu lớn sẽ dẫn tới bias lớn. Hiện tượng này còn được gọi là mô hình bị chệch. Nguyên nhân của bị chệch thường là do mô hình quá đơn giản trong khi dữ liệu có mối quan hệ phức tạp hơn và thậm chí nằm ngoài khả năng biểu diễn của mô hình. Vì vậy trong tình huống này để giảm bớt bias thì chúng ta thường sử dụng mô hình phức tạp hơn để tận dụng khả năng biểu diễn tốt hơn của chúng trên những tập dữ liệu kích thước lớn.

Định nghĩa Toán học.
Qua đây, chúng ta phần nào cũng hiểu được “lệch/ chệch” của từ bias ở đây nghĩa là gì. Nếu \footnotesize{\text{Bias}\left(\hat\theta\right) \ne 0} thì ta gọi estimator bị bias (biased estimator). Nếu \footnotesize{ \text{Bias}\left(\hat\theta\right) = 0} thì ta gọi là unbiased estimator. Tất nhiên ở đây, unbiased estimator sẽ tốt hơn so với biased estimator, vì cái dự đoán của chúng ta đúng chính xác so với thực tế.
Tuy nhiên câu hỏi đặt ra là phải chăng bias thấp thậm chí là unbiased estimator đang giúp mô hình kết quả chính xác hơn trên tập train, vậy có phải điều này là tốt? Câu trả lời là có, nhưng chưa đủ.
Thuật toán tuyến tính thường có bias cao, khiến chúng học nhanh. Trong linear regression, bias đề cập đến sai số được đưa vào bằng cách tính gần đúng một vấn đề trong cuộc sống thực, vấn đề trong cuộc sống có thể rất phức tạp nhưng lại bằng một mô hình đơn giản hơn nhiều. Mặc dù thuật toán tuyến tính có thể tạo ra sự sai lệch, nhưng nó cũng làm cho đầu ra của chúng dễ hiểu hơn. Thuật toán càng đơn giản, nó càng có nhiều khả năng sai lệch. Ngược lại, các thuật toán phi tuyến tính thường có bias thấp.
2. Variance là gì?
Variance hay phương sai là khái niệm đặc trưng cho sự phân tán của giá trị dự đoán. Trong mô hình, variance cao được hiểu là hiện tượng mô hình của bạn dự báo ra giá trị có mức độ dao động lớn nhưng thiếu tổng quát. Yếu tố thiếu tổng quát được thể hiện qua việc giá trị dự báo có thể khớp tốt mọi điểm trên tập huấn luyện nhưng rất dao động xung quanh giá trị ground truth trên tập huấn luyện. Những lớp mô hình phức tạp được huấn luyện trên tập huấn luyện nhỏ thường xảy ra hiện tượng phương sai cao và dẫn tới việc học giả mạo thông qua bắt chước dữ liệu hơn là học qui luật tổng quát.

Định nghĩa Toán học.
Dưới đây là một số mô hình trong Machine Learning và Bias và Variance tương ứng của nó.
Thuật toán | Bias | Variance |
Linear Regression | Cao | Thấp |
Logistic Regression | Cao | Thấp |
Support Vector Machine | Thấp | Cao |
K Nearest Neighbor | Thấp | Cao |
Decision Tree | Thấp | Cao |
Bagging | Thấp | Cao (thấp hơn Decision Tree) |
Random forest | Thấp | Cao (thấp hơn Decision Tree) |
(Bảng 1: bmc.com)
3. Bias-Variance trade off
Trong ảnh 5 dưới đây, điểm trung tâm là điểm dự đoán tối ưu, cũng chính là giá trị chính xác mà ta đang muốn hướng tới. Các điểm màu xanh là dự đoán mô hình đã đưa ra. Như đã nói ở trên, low bias giúp các điểm dự đoán nằm gần tâm nhất (sai số thấp). Tuy nhiên, chỉ mỗi bias thấp thôi là chưa đủ. Nếu mô hình có variance cao, sự phân bố của các điểm dự đoán tản mát ra xung quanh và làm cho một vài dự đoán xa rời tâm hình tròn (sai số cao).

Bias và Variance có mối quan hệ nghịch trong Machine Learning, không có mô hình nào vừa đạt mức tối thiểu của cả Bias và Variance.
Khi một kỹ sư dữ liệu sửa đổi thuật toán ML để phù hợp hơn với một tập dữ liệu nhất định, nó sẽ dẫn đến Bias thấp – nhưng đồng thời nó sẽ làm tăng Variance. Bằng cách này, mô hình sẽ phù hợp với tập dữ liệu đồng thời tăng khả năng đưa ra các dự đoán không chính xác.
Điều tương tự cũng áp dụng khi tạo mô hình phương sai thấp với bias cao hơn. Mặc dù nó sẽ giảm nguy cơ dự đoán không chính xác, nhưng mô hình sẽ không khớp đúng với tập dữ liệu.
Đó là sự cân bằng tinh tế giữa những bias và phương sai này. Ta sẽ đi xem xét một kết quả tổng quát sau.
Giả sử chúng ta có một tập dữ liệu train gồm \footnotesize{n} điểm \footnotesize{D=\left\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\right\} } và một hàm huấn luyện được ước lượng từ tập huấn luyện là \footnotesize{\hat f(x,D)} . Ở đây ký hiệu \footnotesize{\hat f(x,D)} để thể hiện rằng hàm này được hồi quy dựa vào tập dữ liệu \footnotesize{D} huấn luyện. Kỳ vọng của chúng ta là hàm \footnotesize{\hat f(x,D)} sẽ gần xấp xỉ hàm thực tế là \footnotesize{f(x)} . Hàm \footnotesize{f(x)} biểu diễn mối quan hệ thực giữa \footnotesize{x} và \footnotesize{y} . Đồng thời chúng ta chấp nhận một phần sai số nhiễu \footnotesize{\epsilon} giữa hàm \footnotesize{f(x)} và giá trị ground truth . Đây là phần sai số luôn luôn tồn tại giữa mô hình dự báo và grouth truth. Hay nói cách khác, bất kì mô hình nào cũng sẽ có sai số nếu như dữ liệu là ngẫu nhiên và mối quan hệ giữa đầu vào \footnotesize{x} và đầu ra \footnotesize{y} không được sinh ra bởi một hàm số được chủ định trước. Chính vì không thể tránh khỏi nên sai số này được coi như là một thành phần sai số không thể tránh khỏi (unvoidable error). Chúng ta giả định chúng như là thành phần nhiễu có kỳ vọng bằng \footnotesize{0} và phương sai là \footnotesize{\hat\sigma_\epsilon^2} . Như vậy:
Khi đó, Mean Squared Error \footnotesize {\text E \left(\left(y-\hat f(x;D)\right)^2\right)} (MSE – Trung bình bình phương sai số) được xác định bởi Bias và Variance như sau
Thật vậy, trước hết ta có nhận xét như sau
Bởi vì \footnotesize\hat f và \footnotesize \epsilon độc lập với nhau nên ta có
Ảnh 6 dưới đây minh hoạt về tổng sai số so với Variance và Bias. Qua đó, chúng ta sẽ có cái nhìn rõ hơn vì sao phải đánh đổi giữa bias và variance

Ở ảnh 6, chúng ta có thể thấy được độ sai số: bias, variance, và tổng sai số liên hệ với độ phức tạp của mô hình (model complexity). Nếu như độ phức tạp của mô hình tăng lên thì bias sẽ giảm và variance sẽ tăng. Khi mô hình quá đơn giản hay quá phức tạp thì tổng sai số cũng sẽ cao. Để giảm sai số của mô hình chúng ta cần phải giữ độ phức tạp của mô hình ở mức vừa đủ.
4. Overfitting và Underfitting
(Ảnh 7: educative.io )
Overfitting hay quá khớp là hiện tượng khi mô hình xây dựng thể hiện được chi tiết bộ dữ liệu train nhưng không dự đoán đủ tốt trên dữ liệu test. Một mô hình có hiện tượng overfitting đồng nghĩa là nó có high variance. Nguyên nhân bắt nguồn từ việc mô hình có nhiều tham số (mô hình quá phức tạp) so với lượng dữ liệu train. Điều này khiến mô hình dự đoán tốt trên dữ liệu train này. Tuy nhiên mô hình đã quá khớp vào tập dữ liệu train, kết quả dự đoán trên tập test sẽ không còn tốt hơn.
Underfitting hay chưa khớp là hiện tượng khi mô hình xây dựng chưa có độ chính xác cao trong tập dữ liệu huấn luyện cũng như tổng quát hóa với tổng thể dữ liệu. Khi hiện tượng Underfitting xảy ra đồng nghĩa với việc mô hình có high bias. Nguyên nhân bắt nguồn từ việc mô hình có quá ít tham số, nó sẽ dẫn đến sự đơn giản quá mức so với cả dữ liệu train lẫn dữ liệu test.
Good fitting (vừa khớp) là nằm giữa Overfitting và Underfitting. Tức là mô hình cho ra kết quả hợp lý trên cả tập train lẫn với tập test. Good fitting là mục tiêu của mọi bài toán, tuy nhiên, trên thực tế, vấn đề này rất khó thực hiện. Để đạt được good fitting chúng ta phải hiểu và tránh được Overfitting và Underfitting. Một số phương pháp dùng để tránh Overfitting và Underfitting như sau.
Overfitting | Underfitting |
Sử dụng giảm chiều dữ liệu và trích xuất đặc trưng | Tăng feature cho dữ liệu |
Tăng kích thước cho tập train | Tìm kiếm các thuật toán phức tạp hơn |
Sử dụng phương pháp regularization | Sử dụng mixture model hoặc essemble learning |
Sử dụng phương pháp Bagging | Sử dụng phương pháp Boosting |
(Bảng 2: towardsdatascience.com)
Có thể thấy, để giải quyết được vấn đề Overfitting, chúng ta phải đi giảm variance. Bản chất high variance cho thấy mô hình quá phức tạp so với dữ liệu train. Nên chúng ta cần tăng sự phức tạp của tập train bằng cách tăng kích thước của mô hình hoặc là sử dụng phương pháp Bagging. Hay là chúng ta có thể giảm độ phức tạp của model bằng cách giảm chiều dữ liệu, khi đó số lượng tham số của mô hình của mô hình cũng giảm theo. Chúng ta có thể tăng bias lên bằng cách sử dụng phương pháp regularization.
Để giải quyết vấn đề Underfitting, về bản chất, chúng ta phải đi giảm bias. High bias cho thấy mô hình chúng ta đang quá đơn giản so với cả tập train lẫn tập test. Do đó, chúng ta cần tăng sự phức tạp của mô hình bằng cách tìm kiếm các phương pháp phức tạp hơn, sử dụng mixture model, essemble learning hoặc là phương pháp boosting. Việc tăng feature cho dữ liệu, về bản chất nó cũng sẽ tăng sự phức tạp của mô hình, việc tăng chiều dữ liệu sẽ khiến số lượng tham số của mô hình cũng tăng lên, nên từ đó mô hình cũng sẽ trở nên phức tạp hơn.
5. Bias-Variance trade off trong bài toán thực tế
Đầu tiên là lấy ví dụ bạn đang trong quá trình hoàn thiện bài viết AI Club Writing để nộp, bạn muốn nhờ người khác lấy ý kiến đánh giá. Nhưng nếu bạn nhờ quá nhiều người, việc này sẽ khiến bạn có nhiều ý kiến khách quan hơn về bài viết. Chứng tỏ rằng mô hình đang có low variance và high bias bởi vì bài viết của bạn sẽ nhận được nhiều ý kiến trái chiều, từ khen cho tới chê, và đôi khi bạn có thể sẽ nhận được thông tin vô nghĩa, không cần thiết. Khi này bạn cần lựa chọn đưa bài viết cho 3 người có các điểm mạnh khác nhau. Bởi vì do những điểm mạnh khác nhau của 3 người này sẽ cho bạn phương sai cao để nhận về bias thấp. Đấy chính là Bias-Variance trade off. Trong trường hợp này, chúng ta có thể chấp nhận phương sai lớn để nhận về bias thấp.
Tuy nhiên, không phải bài toán nào chúng ta cũng hướng tới đến bias thấp. Đôi khi chúng ta cần hướng tới sự cân bằng giữa bias và variance. Giả sử bạn đang lấy ý kiến khảo sát về việc người Việt Nam suy nghĩ gì về việc cho học sinh, sinh viên trở lại trường học trong bối cảnh hiện nay. Nếu bạn hỏi quá ít người, chỉ tầm 10 người đến từ các độ tuổi, nơi ở khác nhau. Thì khi đó, ý kiến bạn nhận được sẽ rất khác nhau. Bạn sẽ nhận được về phương sai cao tuy nhiên bias sẽ thấp bởi vì nó sẽ không thể đại diện được cho tổng thể được toàn bộ người dân Việt Nam. Để giải quyết vấn đề đó, bạn sẽ cần phải hỏi 5000 người. Tuy nhiên, nếu bạn hỏi 5000 học sinh đến từ Hồ Chí Minh để khái quát cho toàn bộ người Việt Nam ở tất các các độ tuổi và ở tất cả các vùng miền. Ở đây bạn đã có variance thấp nhưng bias lớn. Bạn cần khảo sát cả những người ở những độ tuổi và các nơi ở khác. Lúc này chúng ta sẽ có cân bằng được bias và variance.
Lời kết
Thông qua bài viết trên, vậy là chúng ta đã cùng nhau đi tìm hiểu về hai khái niệm quan trọng để giúp chúng ta cải thiện mô hình. Hy vọng với những mình chia sẻ mọi người sẽ có cái nhìn khái quát hơn về việc cải thiện mô hình. Cảm ơn mọi người đã ghé thăm Tutorial của CLB UIT-AI. Mọi ý kiến đóng góp bài viết, xin hãy để lại bình luận dưới bài viết.
Tài liệu tham khảo
- Master in Data Science – Difference between bias and variance
- VIBLO – The bias variance decomposition
- towardsdatascience – Two important machine learning concepts to impove every model
- PiMA – Bias và Variance
- Trí tuệ nhân tạo – Vấn đề Overfitting & Underfitting trong Machine Learning
- Wikipedia – Bias–variance tradeoff
- phamdinhkhanh – Độ chệch (bias) và phương sai (variance)
- phamdinhkhanh – Sự đánh đổi giữa độ chệch và phương sai
- Linh nghiem – Đánh đổi thiên vị và phương sai trong cuộc sống