Học cách suy ra các quy tắc tổng quát từ một tập hợp ví dụ hữu hạn là một thách thức lớn, dù là đối với con người hay máy tính. Nếu chúng ta không chú ý đủ đến chi tiết của các ví dụ, các quy tắc sẽ quá chung chung và khó áp dụng cho dữ liệu mới. Ngược lại, nếu tập trung quá mức vào chi tiết, các quy tắc sẽ trở nên quá cụ thể, dẫn đến việc xử lý dữ liệu mới không hiệu quả. Hai hiện tượng này được gọi là underfitting và overfitting. Trong đó, overfit là vấn đề phổ biến và khó xử lý hơn, có thể khiến hệ thống trở nên gần như vô dụng nếu không được kiểm soát. Để khắc phục, chúng ta sử dụng các kỹ thuật được gọi chung là regularization (chuẩn hóa).
Overfit và Underfit
Overfit
Hãy tưởng tượng bạn tham dự một đám cưới ngoài trời, nơi bạn không quen biết ai. Trong buổi chiều, bạn gặp gỡ và trò chuyện với nhiều người, cố gắng ghi nhớ tên họ. Để dễ nhớ, bạn liên kết ngoại hình với tên. Chẳng hạn, bạn gặp một người tên Minh có tóc xoăn, nên bạn hình dung Minh là một bạn có tóc rất xoăn, do chắc chắn rằng trong bữa tiệc đó chẳng có ai tóc xoăn bằng Minh, điều này càng củng cố khả năng ghi nhớ của bạn. Sau đó, bạn gặp Lan, người đeo bông tai màu ngọc lam, và bạn liên tưởng bông tai màu ngọc lam thành tên Lan, vì theo bạn thấy, đây cũng là một đặc điểm hiếm gặp và giúp bạn dễ xác định người nào tên gì hơn. Trong bữa tiệc, khi đi xung quanh và gặp lại Minh, Lan vài lần, hệ thống này có vẻ hoạt động khá tốt dù có rất nhiều người trong bữa tiệc.
Nhưng tại tiệc tối, bạn gặp một người mới cũng có tóc rất xoăn. Bạn gọi ngay: “Chào Minh!” nhưng chỉ nhận lại 1 ánh mắt ngơ ngác, và họ tự nhận là một người khác. Tương tự, bạn gặp một người đeo bông tai ngọc lam, nhưng đó là Hoa, không phải Lan. Vấn đề nằm ở chỗ bạn đã liên kết tên với một đặc điểm quá cụ thể. Đây chính là overfit: bạn học quá tốt dữ liệu ban đầu (những người trong tiệc chiều) nhưng không tổng quát hóa được cho dữ liệu mới (những người trong tiệc tối).
Trong học máy, overfit xảy ra khi mô hình tập trung vào các đặc điểm đặc thù của dữ liệu huấn luyện, thay vì học các quy tắc tổng quát. Chẳng hạn, trong một bài toán nhận diện giống chó (như trong bài viết trước), mô hình có thể nhầm lẫn một con chó husky trên ghế sofa là chó Yorkshire terrier, chỉ vì nó dựa vào ghế sofa thay vì đặc điểm của con chó.
Underfit
Ngược lại với overfit, underfit xảy ra khi mô hình tạo ra các quy tắc quá chung chung. Quay lại ví dụ đám cưới, nếu bạn kết luận rằng “tất cả những người mặc quần là Minh”, quy tắc này quá đơn giản và không thể áp dụng cho người mới. Trong học máy, underfit thường do mô hình quá đơn giản hoặc thiếu dữ liệu huấn luyện. Ví dụ, một mô hình tuyến tính (linear model) có thể không đủ phức tạp để phân loại dữ liệu phi tuyến.
Ví dụ thực tế: Dự đoán giá nhà
Giả sử bạn xây dựng một mô hình dự đoán giá nhà chỉ dựa trên diện tích. Mô hình tuyến tính đơn giản \(y = ax + b\) có thể không đủ để dự đoán chính xác, vì giá nhà còn phụ thuộc vào vị trí, số phòng, tiện ích, v.v. Đây là underfit, vì mô hình không học được các đặc điểm quan trọng.
Phát hiện và xử lý Overfit
Để phát hiện overfit, chúng ta sử dụng tập kiểm chứng (validation set) (như đã đề cập ở bài trước) để đánh giá sai số kiểm chứng (validation error), ước lượng sai số tổng quát (generalization error). Khi sai số huấn luyện giảm nhưng sai số kiểm chứng tăng, đó là dấu hiệu của overfit.
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 12 image 50 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-50.png)
- Biểu đồ thể hiện rõ, model đang có vẻ hoạt động ngày càng tốt trên tập dữ liệu huấn luyện cho nó, nhưng khi thử trên tập dữ liệu kiểm chứng (validation) thì sau lần chạy 30, sai sót ngày càng lớn => Điều này thể hiện model đã học phải những đặc điểm tưởng chừng có vẻ tốt, và nó làm tốt trên tập huấn luyện hơn. Nhưng thực tế, những thứ được học này không tổng quát và làm hiệu năng với các dữ liệu nó chưa từng thấy kém đi <- hay dữ liệu thực tế mà ta sẽ gặp.
Khi sai số kiểm chứng tăng (khoảng epoch 20), chúng ta nên dừng huấn luyện để tránh overfit. Đây là kỹ thuật dừng sớm (early stopping).
Giả sử bạn được thuê để xây dựng một hệ thống tự động điều chỉnh nhịp độ (tempo) nhạc nền cho một cửa hàng. Chủ cửa hàng thường xuyên thay đổi nhịp độ trong ngày, và bạn ghi lại dữ liệu như sau:
- 9h sáng: 80 BPM (nhịp chậm, thư giãn).
- 12h trưa: 120 BPM (nhịp nhanh, sôi động).
- 3h chiều: 100 BPM (nhịp trung bình).
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 13 image 51 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-51.png)
Bạn thử khớp một đường cong với dữ liệu này
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 14 image 52 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-52.png)
Đường cong ban đầu quá “lắc léo”, thay đổi nhịp độ quá thường xuyên, gây khó chịu cho khách hàng, vì chỉ cần một thay đổi nhỏ trên thời gian, bạn cũng sẽ cố điều chỉnh nhạc ngay theo dấu hiệu đó – dấu hiệu của overfit.
Sau đó, bạn thử một đường cong đơn giản hơn
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 15 image 53 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-53.png)
Nhưng nó quá chung chung, bỏ qua xu hướng nhịp chậm vào sáng và nhanh vào chiều – dấu hiệu của underfit.
Cuối cùng, bạn tìm được một đường cong cân bằng, khớp tốt với xu hướng chung mà không quá chi tiết.
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 16 image 54 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-54.png)
Khách hàng hài lòng với đường cong này và nhịp độ của các bài hát nó chọn trong ngày. Chúng ta đã tìm được một điểm nằm giữa overfit và underfit. Trong ví dụ này, việc tìm đường cong tốt nhất dựa trên cảm nhận cá nhân, nhưng sau này chúng ta sẽ xem các cách thuật toán để tìm điểm cân bằng giữa underfit/overfit.
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 17 image 55 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-55.png)
Ở bên trái hình trên, một điểm tròn nằm sâu trong vùng hình vuông, dẫn đến đường biên phức tạp. Chúng ta gọi điểm cô lập này là điểm ngoại lai (outlier), và thường xem nó với sự nghi ngờ.
Có thể đây là lỗi đo lường hoặc ghi chép, hoặc chỉ là một dữ liệu hợp lệ nhưng rất bất thường. Thu thập thêm dữ liệu sẽ giúp xác định trường hợp này, nhưng nếu chỉ có tập dữ liệu này, chúng ta cần quyết định phải làm gì. Việc vẽ đường biên để khớp với điểm này có thể khiến chúng ta phân loại sai các điểm dữ liệu mới trong vùng hình vuông, vì chúng rơi vào phía màu xanh của đường biên lạ. Có lẽ tốt hơn là chọn đường cong đơn giản hơn như ở bên phải, và chấp nhận điểm này là lỗi.
- Ví dụ, dữ liệu về điểm số của sinh viên, đôi lúc do giáo viên điền nhầm, có thể nhầm giữa 10 điểm và 1 điểm, việc bỗng nhiên xuất hiện 1 điểm số 1 cho một sinh viên thường xuyên được điểm cao có thể làm model đánh giá phạt rất nặng, và dự đoán sai lầm.
Dừng sớm (Early Stopping)
Có thể nói rằng, khi bắt đầu huấn luyện mô hình, chúng ta đang underfit. Mô hình chưa thấy đủ ví dụ để tìm ra cách xử lý đúng, nên các quy tắc còn chung chung và mơ hồ.
Khi huấn luyện thêm và mô hình tinh chỉnh các đường biên, sai số huấn luyện và kiểm chứng thường giảm. Để thảo luận.
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 18 image 56 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-56.png)
Tại một thời điểm, chúng ta thấy sai số huấn luyện tiếp tục giảm, nhưng sai số kiểm chứng bắt đầu tăng (có thể đi ngang một thời gian trước). Bây giờ chúng ta đang overfit. Sai số huấn luyện giảm vì chúng ta ngày càng đúng chi tiết. Nhưng chúng ta đang điều chỉnh kết quả quá mức cho dữ liệu huấn luyện, và sai số tổng quát (hoặc ước lượng của nó, sai số kiểm chứng) tăng lên.
Từ phân tích này, chúng ta có 1 phương pháp đơn giản: khi bắt đầu overfit, hãy dừng huấn luyện. Trong hình trên, khoảng 28 epoch, khi sai số kiểm chứng tăng dù sai số huấn luyện giảm, chúng ta nên dừng. Kỹ thuật này gọi là dừng sớm (early stopping), vì chúng ta dừng huấn luyện trước khi sai số huấn luyện đạt zero. Có thể nghĩ đây là dừng phút cuối, vì chúng ta huấn luyện lâu nhất có thể, chỉ dừng khi tìm được biểu diễn tốt nhất mà không overfit.
Trong thực tế, các phép đo sai số hiếm khi mượt mà như đường cong lý tưởng trong hình trên. Chúng thường có nhiễu và có thể đi “sai hướng” trong thời gian ngắn, nên khó tìm điểm dừng chính xác. Hầu hết thư viện dừng sớm cung cấp các biến để làm mượt các đường cong sai số, phát hiện khi sai số kiểm chứng thực sự tăng.
Chuẩn hóa (Regularization)
Chúng ta luôn muốn khai thác tối đa thông tin từ dữ liệu huấn luyện, dừng ngay trước khi overfit. Dừng sớm kết thúc học khi sai số kiểm chứng tăng, nhưng nếu có cách trì hoãn hiện tượng này, chúng ta có thể huấn luyện lâu hơn và tiếp tục giảm cả sai số huấn luyện và kiểm chứng.
Hãy lấy ví dụ nướng gà tây trong lò. Nếu chỉ đặt gà vào chảo và nướng ở nhiệt độ cao, phần bên ngoài sẽ cháy. Nhưng nếu muốn nướng lâu hơn mà không cháy, chúng ta có thể bọc gà trong giấy bạc. Giấy bạc trì hoãn việc cháy, cho phép nướng lâu hơn.
Các kỹ thuật trì hoãn overfit được gọi chung là phương pháp chuẩn hóa (regularization methods). Máy tính không biết nó đang overfit. Khi yêu cầu học từ dữ liệu huấn luyện, nó học tốt nhất có thể. Nó không biết khi nào vượt qua ranh giới từ “kiến thức tốt” sang “kiến thức quá cụ thể”, nên chúng ta phải quản lý vấn đề này.
Một cách phổ biến để chuẩn hóa là giới hạn giá trị các tham số của bộ phân loại. Ý tưởng cốt lõi là giữ tất cả tham số ở giá trị nhỏ, ngăn bất kỳ tham số nào thống trị (Domke 2008). Điều này khiến bộ phân loại khó phụ thuộc vào các đặc điểm hẹp, riêng biệt.
Quay lại ví dụ ghi nhớ tên. Khi nhớ Minh với tóc rất xoăn, thông tin này thống trị mọi thứ khác. Các đặc điểm khác như giới tính, chiều cao, màu áo, giọng nói bị bỏ qua và xem nhẹ. Khi gặp người khác có tóc xoăn, đặc điểm đó thống trị và chúng ta nhầm người đó là Minh.
Mức độ chuẩn hóa tốt nhất thay đổi tùy theo mô hình và tập dữ liệu, nên chúng ta thường phải thử nhiều giá trị. Mức chuẩn hóa được chỉ định bằng một siêu tham số, thường ký hiệu là \(\lambda\) (lambda). Giá trị \(\lambda\) lớn hơn nghĩa là chuẩn hóa mạnh hơn.
Việc giữ giá trị tham số nhỏ cũng khiến các đường biên của bộ phân loại không quá phức tạp và lắc léo. Chúng ta có thể dùng tham số chuẩn hóa \(\lambda\) để chọn độ phức tạp của đường biên. Giá trị \(\lambda\) cao cho các đường biên mượt mà, còn giá trị thấp cho phép đường biên khớp sát hơn với dữ liệu.
Cụ thể về việc triển khai Regularization sẽ nói thêm ở phần sau.
Độ lệch và Phương sai (Bias and Variance)
Các thuật ngữ thống kê độ lệch (bias) và phương sai (variance) liên quan chặt chẽ đến overfit/underfit, và thường được nhắc đến khi thảo luận các chủ đề này. Chúng ta có thể nói độ lệch đo xu hướng của hệ thống học sai một cách nhất quán, và phương sai đo xu hướng học các chi tiết không liên quan (Domingos, 2015). Nói cách khác, độ lệch lớn nghĩa là hệ thống thiên kiến về một loại kết quả cụ thể, còn phương sai lớn nghĩa là các câu trả lời của hệ thống quá cụ thể với dữ liệu.
Khớp với dữ liệu cơ bản
Giả sử một người bạn là nhà nghiên cứu khí quyển nhờ chúng ta giúp đỡ. Cô ấy đã đo tốc độ gió tại một điểm trên đỉnh núi, cùng thời điểm mỗi ngày, trong vài tháng. Dữ liệu đo được thể hiện
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 19 image 57 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-57.png)
Cô ấy tin rằng dữ liệu đo được là tổng của một đường cong lý tưởng, giống nhau qua các năm, và nhiễu, thể hiện các dao động không dự đoán được hàng ngày. Dữ liệu đo được gọi là đường cong nhiễu, vì là tổng của đường cong lý tưởng và nhiễu.
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 20 image 58 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-58.png)
Nhà nghiên cứu tin rằng cô ấy có một mô hình tốt để mô tả nhiễu. Nhưng mô tả nhiễu là thống kê, nên cô ấy không thể dùng nó để sửa các phép đo hàng ngày. Nói cách khác, nếu biết chính xác giá trị nhiễu bên phải, cô ấy có thể trừ chúng từ các phép đo để được đường cong sạch bên trái. Nhưng cô ấy không có các giá trị nhiễu cụ thể.
Đây là một cách để làm sạch dữ liệu nhiễu. Chúng ta có thể quay lại dữ liệu nhiễu và thử khớp một đường cong mượt mà (Bishop, 2006). Bằng cách chọn độ phức tạp của đường cong đủ lắc léo để theo dữ liệu, nhưng không quá lắc léo để khớp chính xác từng điểm, chúng ta hy vọng khớp tốt với hình dạng chung của đường cong, là điểm khởi đầu tốt để tìm đường cong lý tưởng.
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 21 image 59 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-59.png)
Có nhiều cách để khớp một đường cong mượt với dữ liệu nhiễu. Dao động nhỏ ở đầu phải là đặc trưng của loại đường cong này, thường nhảy vọt gần mép tập dữ liệu.
Đường cong này trông không quá tệ. Nhưng chúng ta có thể làm tốt hơn không?
Hãy áp dụng ý tưởng độ lệch và phương sai vào bài toán tìm đường cong lý tưởng.
Hãy tạo 50 phiên bản của dữ liệu nhiễu ban đầu, mỗi phiên bản chứa 30 điểm được chọn ngẫu nhiên, không lặp lại. Năm phiên bản đầu được thể hiện
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 22 image 60 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-60.png)
Hãy thử khớp mỗi tập điểm này với các đường cong đơn giản và đường cong phức tạp, rồi so sánh kết quả theo độ lệch và phương sai.
Độ lệch cao, Phương sai thấp
Chúng ta sẽ khớp dữ liệu bằng các đường cong đơn giản, mượt mà. Vì đã chọn các đặc tính này trước, chúng ta kỳ vọng các đường cong kết quả sẽ giống nhau.
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 23 image 61 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-61.png)
Như dự đoán, các đường cong đều đơn giản và khá tương đồng. Vì các đường cong rất giống nhau, chúng ta nói tập hợp này thể hiện độ lệch cao (high bias). Độ lệch ở đây ám chỉ ưu tiên định sẵn cho hình dạng đơn giản. Vì các đường cong quá đơn giản, mỗi đường cong thiếu linh hoạt để đi qua nhiều điểm dữ liệu nhất.
Phương sai (variance) đề cập đến mức độ khác biệt giữa các đường cong. Để quan sát phương sai của các đường cong có độ lệch cao này, ta có thể vẽ chồng 50 đường cong lên nhau, như trong hình sau
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 24 image 62 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-62.png)
Đúng như dự đoán, các đường cong rất giống nhau, thể hiện phương sai thấp (low variance).
Tóm lại, tập hợp đường cong này có độ lệch cao, vì chúng có hình dạng gần giống nhau, và phương sai thấp, vì các đường cong riêng lẻ không bị ảnh hưởng nhiều bởi dữ liệu.
Độ lệch thấp, Phương sai cao
Bây giờ, hãy thử giảm bớt ràng buộc rằng các đường cong phải đơn giản. Điều này cho phép chúng ta khớp các đường cong phức tạp hơn với dữ liệu, khiến mỗi đường cong tiến gần hơn đến các điểm màu xanh.
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 25 image 63 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-63.png)
So với hình ban đầu, các đường cong này uốn lượn hơn, với nhiều đỉnh và đáy. Dù vẫn không đi qua quá nhiều điểm, chúng có vẻ tốt hơn.
Do hình dạng của các đường cong này phức tạp và linh hoạt hơn, chúng bị ảnh hưởng nhiều hơn bởi dữ liệu so với bất kỳ giả định ban đầu nào. Vì chúng ta đặt ít ràng buộc hơn lên hình dạng đường cong, ta nói rằng tập hợp này có độ lệch thấp (low bias). Tuy nhiên, các đường cong này rất khác nhau. Điều này được thể hiện khi vẽ chồng 50 đường cong lên nhau, như trong hình dưới.
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 26 image 64 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-64.png)
Các đường cong này không cùng một hình dạng, nên chúng có độ lệch thấp. Hơn nữa, chúng rất khác nhau và bị ảnh hưởng mạnh bởi dữ liệu, nên tập hợp có phương sai cao (high variance).
So sánh các đường cong
Một nhà khoa học khí quyển yêu cầu chúng ta tìm một đường cong khớp với đường cong lý tưởng ẩn trong dữ liệu của cô ấy. Chúng ta đã tạo ra 50 tập hợp điểm nhỏ, được rút ngẫu nhiên từ dữ liệu gốc có nhiễu. Khi khớp các đường cong đơn giản, mượt mà với các tập hợp điểm này, các đường cong liên tục bỏ qua hầu hết các điểm dữ liệu. Tập hợp đường cong này có độ lệch cao, tức là có xu hướng thiên về một kết quả cụ thể (mượt mà và đơn giản). Các đường cong không bị ảnh hưởng nhiều bởi dữ liệu mà chúng dự định khớp, nên tập hợp này có phương sai thấp.
Ngược lại, khi khớp các đường cong phức tạp và uốn lượn với các tập hợp điểm này, các đường cong có thể khớp tốt hơn với dữ liệu và tiến gần hơn đến hầu hết các điểm. Vì chúng bị ảnh hưởng nhiều hơn bởi dữ liệu hơn là xu hướng định trước về hình dạng, tập hợp đường cong này có độ lệch thấp. Nhưng tính linh hoạt của các đường cong khiến chúng rất khác nhau, tức là tập hợp này có phương sai cao.
Tóm lại, tập hợp đầu tiên có độ lệch cao và phương sai thấp, còn tập hợp thứ hai có độ lệch thấp và phương sai cao.
Lý tưởng nhất, chúng ta muốn có các đường cong với độ lệch thấp (để không áp đặt ý tưởng định sẵn về hình dạng) và phương sai thấp (để các đường cong khác nhau tạo ra kết quả khớp gần giống nhau với dữ liệu gốc có nhiễu). Tuy nhiên, trong hầu hết các tình huống thực tế, khi một đại lượng giảm, đại lượng kia tăng. Điều này có nghĩa là chúng ta phải tìm ra sự đánh đổi tốt nhất giữa độ lệch và phương sai cho từng tình huống cụ thể.
Chúng ta có thể thấy cách độ lệch và phương sai giúp mô tả hiện tượng underfitting và overfitting. Ở giai đoạn đầu của quá trình huấn luyện, khi hệ thống cố gắng tìm cách biểu diễn dữ liệu huấn luyện, nó tạo ra các quy tắc chung, tức là underfit. Nếu các quy tắc này là ranh giới giữa các lớp dữ liệu, chúng có dạng các đường cong. Khi huấn luyện trên nhiều tập dữ liệu tương tự nhưng khác nhau, chúng ta sẽ thấy các đường cong có hình dạng đơn giản và giống nhau, tức là có độ lệch cao và phương sai thấp.
Ở giai đoạn sau của quá trình huấn luyện, các đường cong cho mỗi tập dữ liệu trở nên phức tạp hơn. Có ít điều kiện tiên quyết về hình dạng của chúng, nên chúng có độ lệch thấp, và chúng có thể khớp chặt chẽ với dữ liệu huấn luyện, nên chúng có phương sai cao. Khi để hệ thống huấn luyện quá lâu, các đường cong có phương sai cao bắt đầu bám sát dữ liệu đầu vào quá chặt, dẫn đến overfit.
![[SWE học A.I] Phần 6: Overfit & Underfit, Tradeoff của Variance/Bias 27 image 65 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2025/06/image-65.png)
Hàng trên: Bốn đường cong chúng ta muốn khớp. Hàng giữa: Sử dụng các đường cong có độ lệch cao và phương sai thấp. Hàng dưới: Các đường cong có độ lệch thấp và phương sai cao. Hình bên phải ở hai hàng dưới cho thấy bốn đường cong được vẽ chồng lên nhau.
Ở hàng giữa, độ lệch cao mang lại các đường cong đơn giản, đẹp mắt (tránh overfit), nhưng phương sai thấp khiến chúng không thể khớp tốt với dữ liệu. Ở hàng dưới, độ lệch thấp cho phép các đường cong khớp tốt hơn với dữ liệu, nhưng phương sai cao khiến chúng có thể khớp quá tốt (gây nguy cơ overfit).
Nói chung, chúng ta cần tìm sự cân bằng phù hợp giữa hai đại lượng này theo cách tốt nhất cho mục tiêu của từng dự án cụ thể, dựa trên thuật toán và dữ liệu đang sử dụng.
Tổng kết:
- Chúng ta có 1 đường cong làm sạch từ dữ liệu nhiễu. Nhưng câu hỏi là: Đường cong này có thực sự tốt không? Làm sao biết nó có gần với đường cong lý tưởng thật sự?
- Có thể thấy, từ việc kiểm chứng variance và bias, không có mô hình “hoàn hảo” – luôn phải đánh đổi giữa:
- Độ chính xác (bias thấp)
- Độ ổn định (variance thấp)
Trong một số ứng dụng, độ lệch cao hoặc phương sai cao có thể chấp nhận được. Ví dụ, nếu biết rằng tập huấn luyện hoàn toàn đại diện cho dữ liệu tương lai, chúng ta không quan tâm đến phương sai và thay vào đó nhắm đến độ lệch thấp nhất, vì khớp hoàn hảo với tập huấn luyện là điều chúng ta muốn. Ngược lại, nếu biết rằng tập huấn luyện không đại diện tốt cho dữ liệu tương lai (nhưng đó là thứ tốt nhất chúng ta có), chúng ta có thể không quan tâm đến độ lệch, vì khớp với tập dữ liệu kém này không quan trọng, nhưng chúng ta muốn phương sai thấp nhất để có cơ hội thực hiện điều gì đó hợp lý với dữ liệu tương lai.
Reference:
- Deep Learning – Andrew Glassner
- Data Science from Scratch – Joel Grus