Tập dữ liệu: Chia tập dữ liệu ban đầu

Tất cả các dự án kỹ thuật phần mềm tốt đều dành nhiều công sức cho việc kiểm thử ứng dụng. Tương tự, bạn nên kiểm thử mô hình ML để xác định độ chính xác của các dự đoán.

Tập hợp đào tạo, xác thực và kiểm thử

Bạn nên kiểm thử một mô hình với một tập hợp ví dụ khác với những dùng để huấn luyện mô hình. Khi tìm hiểu sau đó một lát, việc kiểm tra các ví dụ khác nhau là bằng chứng rõ ràng hơn cho mô hình của bạn so với thử nghiệm trên cùng một nhóm ví dụ. Bạn lấy những ví dụ khác đó ở đâu? Theo truyền thống, trong công nghệ học máy, bạn sẽ nhận được những ví dụ khác nhau đó bằng cách chia tách tập dữ liệu ban đầu. Bạn có thể do đó giả định rằng bạn nên chia tập dữ liệu ban đầu thành hai tập con:

Hình 8. Một thanh ngang được chia thành hai phần: khoảng 80% trong số đó
            là tập huấn luyện và ~20% là tập kiểm thử.
Hình 8. Không phải là cách phân chia tối ưu.

 

Bài tập: Kiểm tra trực giác của bạn

Giả sử bạn huấn luyện trên tập huấn luyện và đánh giá tập kiểm thử qua nhiều vòng. Trong mỗi vòng, bạn sử dụng kết quả của nhóm kiểm thử để hướng dẫn cách cập nhật siêu tham số và bộ tính năng. Bạn có thể có vấn đề gì với phương pháp này không? Chỉ chọn một câu trả lời.
Thực hiện nhiều vòng của quy trình này có thể khiến mô hình để hoàn toàn phù hợp với các điểm đặc thù của tập hợp kiểm thử.
Có! Bạn càng thường xuyên sử dụng cùng một tập hợp kiểm thử, thì mô hình càng có nhiều khả năng phù hợp với tập kiểm thử. Giống như một giáo viên "dạy thử nghiệm", mô hình vô tình phù hợp với tập kiểm thử, điều này có thể khiến mô hình gặp khó khăn hơn cho phù hợp với dữ liệu thực tế.
Phương pháp này bình thường. Sau cùng, bạn sẽ đào tạo về tập huấn luyện và đánh giá trên một tập kiểm thử riêng biệt.
Thực ra, có một vấn đề nhỏ ở đây. Hãy suy nghĩ về những điều có thể dần dần trở nên không chính xác.
Phương pháp này không hiệu quả về mặt tính toán. Không thay đổi siêu tham số hoặc bộ tính năng sau mỗi vòng kiểm thử.
Việc kiểm thử thường xuyên tuy tốn kém nhưng rất quan trọng. Tuy nhiên, việc thường xuyên thử nghiệm sẽ rẻ hơn nhiều so với đào tạo bổ sung. Đang tối ưu hoá siêu tham số và bộ tính năng có thể cải thiện đáng kể chất lượng mô hình, vì vậy, luôn có ngân sách thời gian và tài nguyên điện toán để làm những việc này.

Chia tập dữ liệu thành hai tập hợp là một ý hay, nhưng bạn nên chia tập dữ liệu thành 3 nhóm nhỏ. Ngoài tập huấn luyện và tập kiểm thử, tập con thứ ba là:

  • Tập hợp xác thực thực hiện kiểm thử ban đầu trên mô hình khi mô hình đang được huấn luyện.
Hình 9. Một thanh ngang được chia thành ba phần: 70% trong số đó
            là tập huấn luyện, 15% tập xác thực và 15%
            tập kiểm thử
Hình 9. Cách phân chia hợp lý hơn nhiều.

Sử dụng tập hợp xác thực để đánh giá kết quả từ tập huấn luyện. Sau khi sử dụng lặp lại bộ xác thực cho thấy rằng mô hình của bạn đưa ra dự đoán chính xác, hãy sử dụng tập hợp kiểm thử để kiểm tra kỹ mô hình của bạn.

Hình sau đây minh hoạ quy trình này. Trong hình, phần "Mô hình chi tiết" nghĩa là điều chỉnh mọi thứ về mô hình — từ thay đổi tốc độ học cho đến thêm hoặc xoá để thiết kế một mô hình hoàn toàn mới từ đầu. Vào cuối quy trình làm việc này, bạn sẽ chọn mô hình hoạt động tốt nhất trên tập hợp kiểm thử.

Hình 10. Sơ đồ quy trình làm việc bao gồm các giai đoạn sau:
            1. Mô hình huấn luyện trên tập huấn luyện.
            2. Đánh giá mô hình trên tập xác thực.
            3. Chỉnh sửa mô hình theo kết quả trong tập hợp xác thực.
            4. Lặp lại các bước 1, 2 và 3, cuối cùng chọn mô hình phù hợp
               tốt nhất trên tập hợp xác thực.
            5. Xác nhận kết quả trên tập hợp kiểm thử.
Hình 10. Một quy trình công việc phù hợp để phát triển và kiểm thử.

Quy trình làm việc được minh hoạ trong Hình 10 là quy trình tối ưu, nhưng ngay cả với quy trình làm việc đó, bộ kiểm thử và bộ xác thực vẫn "bị lỗi" khi sử dụng nhiều lần. Nghĩa là, bạn càng sử dụng nhiều dữ liệu giống nhau để đưa ra quyết định về chế độ cài đặt siêu tham số hoặc các cải tiến khác của mô hình thì độ tin cậy càng thấp rằng mô hình này sẽ đưa ra dự đoán chính xác về dữ liệu mới. Vì lý do này, bạn nên thu thập thêm dữ liệu để "làm mới" thử nghiệm tập hợp và tập hợp xác thực. Bắt đầu lại là một quá trình khởi động lại rất tốt.

Bài tập: Kiểm tra trực giác của bạn

Bạn đã xáo trộn tất cả ví dụ trong tập dữ liệu và chia các ví dụ được xáo trộn vào huấn luyện, xác thực và kiểm thử bộ. Tuy nhiên, giá trị tổn thất trong tập kiểm thử của bạn quá thấp đáng kinh ngạc mà bạn nghi ngờ rằng đã có nhầm lẫn. Điều gì có thể đã xảy ra?
Nhiều ví dụ trong tập hợp kiểm thử là bản sao của các ví dụ trong tập huấn luyện.
Có. Đây có thể là một vấn đề trong một tập dữ liệu có nhiều dữ liệu dư thừa ví dụ. Bạn nên xoá các ví dụ trùng lặp khỏi tập kiểm thử trước khi kiểm thử.
Việc huấn luyện và thử nghiệm là không xác định. Đôi khi, tình cờ, tỷ lệ mất kiểm thử của bạn là cực kỳ thấp. Chạy lại kiểm thử để xác nhận kết quả.
Mặc dù lượng mất mát thay đổi một chút trong mỗi lần chạy, nhưng không nên nhiều như bạn nghĩ mình đã thắng xổ số học máy.
Tình cờ, tập hợp thử nghiệm vừa chứa các ví dụ mà mô hình hoạt động hiệu quả.
Các ví dụ đã được xáo trộn rất tốt, vì vậy điều này là rất khó có thể xảy ra.

Các vấn đề khác với tập hợp kiểm thử

Như đã minh hoạ trong câu hỏi trước, các ví dụ trùng lặp có thể ảnh hưởng đến việc đánh giá mô hình. Sau khi chia một tập dữ liệu thành các nhóm huấn luyện, xác thực và kiểm thử, xóa bất kỳ ví dụ nào trong tập hợp xác thực hoặc tập hợp kiểm thử là bản sao của các ví dụ trong tập huấn luyện. Phép kiểm thử công bằng duy nhất về một mô hình chống lại ví dụ mới, không phải các ví dụ trùng lặp.

Ví dụ: hãy xem xét một mô hình dự đoán liệu một email có phải là thư rác, bằng cách sử dụng dòng tiêu đề, nội dung email và địa chỉ email của người gửi làm tính năng. Giả sử bạn chia dữ liệu thành các tập huấn luyện và kiểm thử, với tỷ lệ chia 80-20. Sau khi huấn luyện, mô hình này đạt độ chính xác 99% trên cả tập huấn luyện và tập hợp kiểm thử. Có thể bạn sẽ nhận được độ chính xác thấp hơn trong tập kiểm thử, vì vậy, hãy xem lại dữ liệu và phát hiện ra rằng nhiều ví dụ trong thử nghiệm là các tập hợp trùng lặp với các ví dụ trong tập huấn luyện. Vấn đề là bạn đã quên loại bỏ các mục trùng lặp cho cùng một email rác khỏi thông tin đầu vào của bạn trước khi chia tách dữ liệu. Bạn đã vô tình được huấn luyện về một số dữ liệu thử nghiệm của bạn.

Tóm lại, một bộ kiểm thử hoặc xác thực tốt đáp ứng tất cả tiêu chí sau:

  • Đủ lớn để mang lại kết quả thử nghiệm có ý nghĩa thống kê.
  • Đại diện cho toàn bộ tập dữ liệu. Nói cách khác, đừng chọn một tập hợp kiểm thử có các đặc điểm khác với tập huấn luyện.
  • Đại diện cho dữ liệu thực tế mà mô hình sẽ gặp như một phần của mục đích kinh doanh.
  • Không có ví dụ nào bị trùng lặp trong tập huấn luyện.

Bài tập: Kiểm tra mức độ hiểu biết của bạn

Với một tập dữ liệu duy nhất có số lượng ví dụ cố định, câu nào sau đây là đúng?
Mỗi ví dụ được sử dụng trong quá trình kiểm thử mô hình sẽ ít hơn một ví dụ được sử dụng trong việc huấn luyện mô hình.
Việc chia các ví dụ thành các nhóm huấn luyện/kiểm thử/xác thực là một trò chơi có tổng bằng 0. Đây là sự đánh đổi trọng tâm.
Số lượng ví dụ trong tập hợp kiểm thử phải lớn hơn số lượng ví dụ trong tập hợp xác thực.
Về lý thuyết, tập hợp xác thực và kiểm thử kiểm thử phải chứa cùng một số lượng ví dụ hoặc gần như vậy.
Số lượng ví dụ trong tập hợp kiểm thử phải lớn hơn số lượng ví dụ trong tập xác thực hoặc tập huấn luyện.
Số lượng ví dụ trong tập huấn luyện thường lớn hơn số lượng ví dụ trong tập xác thực hoặc tập kiểm thử; tuy nhiên, không có yêu cầu về tỷ lệ phần trăm cho các tập hợp khác nhau.
Giả sử tập hợp kiểm thử của bạn có đủ ví dụ để thực hiện một thử nghiệm có ý nghĩa thống kê. Ngoài ra, việc kiểm thử tập hợp kiểm thử có tổn thất thấp. Tuy nhiên, mô hình này đã hoạt động trong thế giới thực. Bạn nên làm gì?
Xác định sự khác biệt giữa tập dữ liệu ban đầu và dữ liệu thực tế.
Có. Ngay cả những tập dữ liệu tốt nhất cũng chỉ là ảnh chụp nhanh của dữ liệu thực tế; cơ sở thông tin thực tế có xu hướng thay đổi theo thời gian. Mặc dù tập hợp thử nghiệm của bạn khớp với đủ tốt để đề xuất chất lượng mô hình tốt, có thể không khớp hoàn toàn với dữ liệu trong thế giới thực. Bạn có thể phải đào tạo lại và kiểm tra lại khi có tập dữ liệu mới.
Kiểm thử lại trên cùng một tập hợp kiểm thử. Kết quả thử nghiệm có thể là điều bất thường.
Mặc dù việc thử nghiệm lại có thể mang lại kết quả hơi khác, chiến thuật này có lẽ không giúp ích lắm.
Tập hợp kiểm thử nên có bao nhiêu ví dụ?
Đủ ví dụ để thử nghiệm có ý nghĩa thống kê.
Có. Có bao nhiêu ví dụ? Bạn cần thử nghiệm.
Ít nhất 15% tập dữ liệu ban đầu.
15% có thể là hoặc không đủ ví dụ.