Mối quan hệ đánh đổi giữa bias và variance

ensemble-learning
error-handling

#1

Một trong các thuật toán được sử dung phổ biến nhất cho các cuộc thi trên Kaggle là XGBoost. Hiện tại mình cũng mới bắt đầu tìm hiểu về Data Science, đọc về họ ensemble learning thấy khá thú vị nên muốn viết một vài bài về phần này. Do kiến thức còn hạn chế nên không thể tránh khỏi sai sót, mình mong nhận được phản hồi từ mọi người để hoàn thành bài viết với chất lượng tốt hơn :smile: Đầu tiên, để hiểu kỹ hơn về họ thuật toán ensemble thì chúng ta cần nắm được những khái niệm cơ bản nhất về error rate. Mỗi khi thảo luận về một model dự đoán, điều quan trọng nhất cần quan tâm là các dự đoán bị sai lệch so với thực tế (bias và variance). Có một sự đánh đổi khi cần tối thiểu hóa 2 đại lượng này. Hiểu được mối quan hệ đó, thay vì chỉ quan tâm đến accuracy, chúng ta sẽ tránh được hiện tượng overfitting hoặc underfitting.

Bias là gì? Bias là sự sai khác giữa trung bình dự đoán của mô hình chúng ta xây dựng với giá trị chính xác đang cố gắng để dự đoán. Một mô hình với trị số bias cao đồng nghĩa với việc mô hình đó không quan tâm nhiều tới dữ liệu huấn luyện, khiến cho mô hình trở nên đơn giản quá. Nó thường dẫn đến việc mô hình có mức độ lỗi cao cả trên tập huấn luyện và tập kiểm thử.

Variance là gì? Variance đặc trưng cho mức độ tản mát của giá trị dự đoán cho điểm dữ liệu. Mô hình với mức độ variance cao tập trung chú ý nhiều vào dữ liệu huấn luyện và không mang được tính tổng quát trên dữ liệu chưa gặp bao giờ. Từ đó dẫn đến mô hình đạt được kết quả cực kì tốt trên tập dữ liệu huấn luyện, tuy nhiên kết quả rất tệ với tập dữ liệu kiểm thử.

Dưới góc nhìn toán học Cho biến ngẫu nhiên cần dự đoán là Y tuân theo biến ngẫu nhiên X nào đó. Giả sử rằng có một mối quan hệ giữa chúng dưới dạng:

Y=f(X)+e

Với e là phần lỗi tuân theo phân phối chuẩn và có giá trị kì vọng bằng 0.

Chúng ta tiến hành xây dựng mô hình f^(X) của f(X) bằng hồi quy tuyến tính hay bất kì thuật toán nào khác.

Khi đó, kì vọng của bình phương sai số tại điểm dữ liệu X bất kì sẽ được biểu diễn bằng: image

Err(x) còn có thể phân tích thành dạng chi tiết hơn như sau: image

Dễ thấy rằng Err(x) có thể phân tích được thành bình phương của bias, variance và phần lỗi không thể giảm được.

Phần lỗi không giảm được là phần lỗi không thể giảm bằng cách tạo ra một mô hình tốt. Nó được đo bằng lượng dữ liệu nhiễu trong tập dữ liệu. Điều này chỉ ra rằng bất kể cố gắng làm tốt thế nào khi xây dựng mô hình, luôn có những sai lệch chúng ta không thể kiểm soát được do dữ liệu luôn tồn tại những điểm nhiễu khó dự đoán trước.

Một ví dụ trực quan về bias và variance image

Trong hình trên, điểm trung tâm là điểm dự đoán tối ưu, cũng là giá trị chính xác mà chúng ta đang hướng tới.

Trong học có giám sát, underfitting xảy ra khi mô hình không thể mô tả được các mẫu cơ bản của dữ liệu. Các mô hình này thường có bias cao và variance thấp. Hiện tượng này dễ xảy ra khi lượng dữ liệu huấn luyện quá ít hoặc người phân tích dữ liệu cố gắng mô tả các dữ liệu phức tạp bằng các mô hình đơn giản như hồi quy tuyến tính hay hồi quy logistic.

Ngược lại, overfitting xảy ra khi mô hình biểu diễn cả dữ liệu nhiễu bên cạnh dữ liệu biểu diễn quy luật (có thể coi là dữ liệu sạch). Nó xảy ra khi train mô hình với rất nhiều dữ liệu bị nhiễu. Mô hình bị quá phức tạp so với mức độ cần thiết, bị lệ thuộc nhiều vào dữ liệu huấn luyện, thường có bias nhỏ và variance lớn. Model phức tạp kiểu như decision tree thường dễ bị overfitting.

Tại sao nói bias và variance có mối quan hệ đánh đổi Nếu mô hình quá đơn giản, khi đó nó sẽ gặp vấn đề bias lớn và variance thấp. Mặt khác, nếu model có một lượng lớn tham số thì nó sẽ có variance lớn và bias nhỏ. Do đó, chúng ta cần tìm ra điểm tối ưu mà cân bằng được 2 đại lượng này, tránh việc xảy ra overfitting hay underfitting.

Sự đánh đổi của mức độ phức tạp trong mô hình chính là sự đánh đổi của bias và variance. Một mô hình không thể nào vừa đơn giản, lại vừa phức tạp.

Tổng error rate Trong quá trình tối ưu hàm chi phí, việc cân bằng bias và variance đồng nghĩa với việc xây dựng mô hình tối ưu. image

image

Điểm cân bằng của bias và variance sẽ không bao giờ bị overfitting hoặc underfitting. Do vậy, hiểu được mối quan hệ giữa 2 đại lượng là cực kì quan trong trong việc đánh giá được các mô hình dự đoán sau này.

Cảm ơn mọi người đã đọc hết bài :smiley:

Nguồn tham khảo: https://towardsdatascience.com/understanding-the-bias-variance-tradeoff-165e6942b229


#2

Bài viết khá hay :3. MÌnh góp ý chút ở hình về tương quan giữa bias và variable, hình cuối cùng không nên là low bias, low variable. Nó nên là balance thì chuẩn hơn, vì nó mô tả một trạng thái cân bằng của cả hai để đạt được mô hình chuẩn, còn low hay không thì chưa biết :)). Với mình có góp ý chút đoạn overfitting, đúng là nó xảy ra khi train mô hình với dữ liệu nhiễu nhiều. Nhưng bản chất hơn là nó mô tả một vấn đề đơn giản bằng thứ quá phức tạp, nên rơi vào vấn đề hàm xấp xỉ bị quá lệ thuộc vào dữ liệu train mà thực ra những dữ liệu train lại quá ít so với dữ liệu thực tế ( mình xin trích câu của một người thầy: “Những gì ta đa biết quá ít so với những gì ta chưa biết”). Vậy nên để tránh bị overfitting thì ta có thể dùng early stopping như một cách để hạn chế mô hình trở lên quá phức tạp. Đóng góp thêm tẹo :3, việc overfitting không chỉ có ở trong ML, DL mà thực ra các thuyết, mô hình được đưa ra cũng luôn luôn tuần theo quy tắc đơn giản nhất để tránh vấn đề này :3. Cuối cùng, cảm ơn bạn vì bài viết và chúc bạn năm mới thành công :3


#3

Anh có thể giải thich cụ thể hộ em về cái variance dc ko ạ.cái chỗ "tản mát " nó dc hiểu như thế nào ạ.


#4

Cảm ơn những góp ý của bạn, mình đã chỉnh sửa lại nội dung bài viết cho phù hợp hơn :smile:.

Về việc balance của bias và variance mình cũng đồng ý với bạn, việc cần hướng đến là trạng thái cân bằng. Tuy nhiên mục tiêu cuối cùng cũng là tối thiểu hóa error rate để model sinh ra có thể dùng được nên mình muốn kết hợp cả yếu tố này để kết luận việc cần low variance và low bias :smiley:

Chúc bạn một năm mới an lành, hạnh phúc :blush:


#5

Khái niệm “tản mát” thật ra không được dùng rộng rãi, có một số sách về thống kê học dùng từ này để gợi sự tưởng tượng bạn ạ. image

Còn đối với trường hợp này thì bạn có thể hình dung đơn giản nó là mức độ co cụm hay phân tán của các điểm dữ liệu trên hình (mỗi dấu x là một điểm dữ liệu). Đối với low variance, các điểm dữ liệu có xu hướng co cụm lại với nhau, còn trong trường hợp high variance thì các điểm này phân bố thưa thớt ra :smiley:


#6

Đọc hiểu nó nhưng k biết áp dụng sao, có bài nào hướng dẫn áp dụng và xài nó như thế nào luôn k mọi người? Đọc hiểu concept nhưng chưa biết dùng như thế nào.


#7

Bài viết rất hay :)) Bạn có thể giải thích thêm về Biais đc k ạ? M ko biết nếu hiểu biais laf giá trị trung bình của độ lệch giữa giá trị mong muốn và kết quả validation có đúng không? Biais cao là khi kết quả sau khi huẩn luyện thì tốt mà kết quả validation lại k tốt ạ? Hay là so với kết quả test ạ?


#8

Theo như chị Linh nói ở trên em hiểu cơ bản là nếu mình training càng lâu thì mô hình hình càng phức tạp ? có đúng không ạ

Theo em hiểu cơ chế của early stopping là khi tập var có xu hướng tăng so với tập train hay so với tập trước nó thì nó sẽ tự động dừng lại sai mong mọi người sửa lại giúp em

Ví thế em nghĩ là độ phức tạp của mô hình do mình quyết định lúc ban đầu ?

với cho em hỏi là làm sao để ta có thể cân bằng Bias và Variance ? Chúng ta phải chọn mô hình phù hợp với dữ liệu ? Đó là một số câu hỏi em thắc mắc mong được các anh chị giải đáp Em cảm ơn