Bài 9, 10, và 11 sẽ nói về: Đánh giá sự phù hợp của 1 mô hình dự báo
Bài 9: Overfitting trong Machine Learning
Trong lĩnh vực máy học, chúng ta thường xây dựng các mô hình để có thể đưa ra dự đoán chính xác về một số hiện tượng.
Ví dụ: giả sử chúng ta muốn xây dựng một mô hình hồi quy sử dụng biến dự báo là số giờ học để dự đoán cho biến phản hồi là điểm ACT của học sinh.
Để xây dựng mô hình này, chúng ta sẽ thu thập dữ liệu về số giờ học và Điểm ACT tương ứng của hàng trăm học sinh trong một khu học chánh nhất định.
Sau đó, chúng ta sẽ sử dụng dữ liệu này để huấn luyện một mô hình có thể đưa ra dự đoán về điểm số mà một học sinh nhất định sẽ nhận được dựa trên tổng số giờ đã học của họ.
Để đánh giá mức độ hữu ích của mô hình, chúng ta có thể đo lường mức độ phù hợp của các dự đoán của mô hình với dữ liệu quan sát. Một trong những đại lượng được sử dụng phổ biến nhất để đánh giá là sai số bình phương trung bình (MSE), được tính như sau:
MSE = (1 / n) * Σ (y i - f (x i ))2
ở đây:
- n: Tổng số quan sát
- yi : Giá trị phản hồi của lần quan sát thứ i
- f(xi ): Giá trị phản hồi dự đoán của lần quan sát thứ i
Các dự đoán của mô hình càng gần với các quan sát, MSE sẽ càng nhỏ.
Tuy nhiên, một trong những sai lầm lớn nhất mắc phải trong học máy là tối ưu hóa mô hình để giảm MSE huấn luyện - tức là các dự đoán của mô hình khớp chặt chẽ như thế nào với dữ liệu mà chúng ta đã sử dụng để huấn luyện mô hình.
Khi một mô hình tập trung quá nhiều vào việc giảm MSE huấn luyện, thì thường rất khó để tìm ra các mẫu trong dữ liệu huấn luyện. Với mô hình như thế khi áp dụng cho dữ liệu dự báo, nó sẽ hoạt động kém hiệu quả.
Hiện tượng này được gọi là overfitting . Điều này xảy ra khi chúng ta “khớp” một mô hình quá gần với dữ liệu huấn luyện, khi đó chúng ta sẽ xây dựng một mô hình không thật sự hữu ích để đưa ra dự báo cho dữ liệu mới.
Ví dụ về Overfitting
Để hiểu overfitting, hãy quay lại ví dụ về việc tạo một mô hình hồi quy sử dụng số giờ học tập để dự đoán điểm ACT .
Giả sử chúng ta thu thập dữ liệu cho 100 học sinh trong một khu học chánh nhất định và tạo biểu đồ phân tán để hình dung mối quan hệ giữa hai biến:
Mối quan hệ giữa hai biến dường như là bậc hai, vì vậy giả sử chúng ta xây dựng mô hình hồi quy bậc hai sau:
Điểm ACT = 60,1 + 5,4 * (Giờ) - 0,2 * (Giờ) 2
Đường hồi quy bậc 2
Mô hình này có sai số bình phương trung bình huấn luyện (MSE) là 3,45 . Nghĩa là, sự khác biệt bình phương trung bình giữa các dự báo được thực hiện bởi mô hình và điểm ACT thực tế là 3,45.
Tuy nhiên, chúng ta có thể giảm MSE đào tạo này bằng cách điều chỉnh một mô hình đa thức bậc cao hơn. Ví dụ: giả sử chúng ta xây dựng mô hình sau:
Điểm ACT = 64,3 - 7,1 * (Giờ) + 8,1 * (Giờ) 2 - 2,1 * (Giờ) 3 + 0,2 * (Giờ) 4 - 0,1 * (Giờ) 5 + 0,2 (Giờ) 6
Đường hồi quy bậc cao
Đường hồi quy trong hình trên "ôm sát" dữ liệu thực tế hơn nhiều so với đường hồi quy bậc 2 ở trên.
Mô hình này có sai số bình phương trung bình huấn luyện (MSE) chỉ là 0,89 . Nghĩa là, sự khác biệt bình phương trung bình giữa các dự báo được thực hiện bởi mô hình và điểm ACT thực tế là 0,89.
MSE huấn luyện này nhỏ hơn nhiều so với MSE được tạo ra bởi mô hình trước đó.
Tuy nhiên, chúng ta không thực sự quan tâm đến việc huấn luyện MSE - tức là các dự báo của mô hình khớp chặt chẽ như thế nào với dữ liệu mà chúng ta đã sử dụng để huấn luyện mô hình. Thay vào đó, chúng ta chủ yếu quan tâm đến MSE thử nghiệm - MSE khi mô hình của chúng ta được áp dụng cho dữ liệu chưa biết trước.
Nếu chúng ta áp dụng mô hình hồi quy đa thức bậc cao ở trên cho một tập dữ liệu chưa biết, nó có thể sẽ hoạt động kém hơn so với mô hình hồi quy bậc hai đơn giản hơn.
Làm thế nào để phát hiện và tránh hiện tượng Overfitting
Cách dễ nhất để phát hiện overfiting là thực hiện đánh giá chéo (cross-validation). Phương pháp được sử dụng phổ biến nhất được gọi là đánh giá chéo k-lần, phương pháp hoạt động như sau:
Bước 1: Chia ngẫu nhiên một tập dữ liệu thành k nhóm, hoặc “các nếp gấp”, có kích thước gần bằng nhau.
Bước 2: Chọn một trong các nếp gấp để làm tập "holdout". Áp dụng mô hình cho k-1 nếp gấp còn lại. Tính toán MSE thử nghiệm trên các biến quan sát trong nếp gấp "holdout".
Bước 3: Lặp lại quá trình này k lần, mỗi lần sử dụng một bộ khác nhau làm bộ "holdout".
Bước 4: Tính MSE của bài kiểm tra tổng thể là giá trị trung bình của k bài kiểm tra MSE.
Kiểm tra MSE = (1 / k) * ΣMSEi
ở đây:
- k: Số lần gấp
- MSEi : Kiểm tra MSE ở lần lặp thứ i
MSE thử nghiệm này cung cấp cho chúng ta một ý tưởng tốt về cách một mô hình sẽ hoạt động trên dữ liệu chưa biết.
Trong thực tế, chúng ta có thể xây dựng nhiều mô hình khác nhau và thực hiện đánh giá chéo k lần trên mỗi mô hình để tìm ra MSE thử nghiệm của nó. Sau đó, chúng ta có thể chọn mô hình có MSE thử nghiệm thấp nhất làm mô hình tốt nhất để sử dụng cho việc đưa ra dự đoán trong tương lai. Điều này đảm bảo rằng chúng ta chọn một mô hình có khả năng hoạt động tốt nhất trên dữ liệu trong tương lai, trái ngược với một mô hình chỉ đơn giản là giảm thiểu MSE đào tạo và “phù hợp” tốt với dữ liệu lịch sử.
Nhận xét
Đăng nhận xét