loader

Khi đánh giá hiệu suất mô hình, các kỹ sư ML cần biết liệu mô hình phân loại của họ có dự đoán chính xác hay không. Tuy nhiên, do  nghịch lý về độ chính xác , họ không bao giờ nên chỉ dựa vào độ chính xác để đánh giá hiệu suất của mô hình.

Vấn  đề với độ chính xác  là nó không nhất thiết là một thước đo tốt để xác định mức độ hiệu quả của mô hình trong việc dự đoán kết quả. Điều này nghe có vẻ phản trực giác (do đó mới có nghịch lý), nhưng tùy thuộc vào dữ liệu mà nó gặp phải trong quá trình huấn luyện, một mô hình có thể trở nên thiên vị đối với một số dự đoán nhất định, dẫn đến tỷ lệ dự đoán chính xác cao nhưng hiệu suất tổng thể kém. Một mô hình có thể báo cáo có các dự đoán rất chính xác, nhưng trên thực tế, độ chính xác đó có thể chỉ phản ánh cách nó học cách dự đoán khi được huấn luyện trên một tập dữ liệu không cân bằng.

Hãy xem xét trường hợp thu thập dữ liệu huấn luyện cho một mô hình dự đoán tình trạng bệnh lý. Giả sử phần lớn dữ liệu bệnh nhân thu thập được, khoảng 95%, có khả năng thuộc nhóm khỏe mạnh, trong khi bệnh nhân mắc bệnh chỉ chiếm một phần nhỏ hơn nhiều. Trong quá trình huấn luyện, mô hình phân loại học được rằng nó có thể đạt độ chính xác 95% nếu dự đoán “khỏe mạnh” cho mọi dữ liệu mà nó gặp phải. Đó là một vấn đề lớn vì điều mà các bác sĩ thực sự muốn mô hình làm là xác định những bệnh nhân đang mắc phải một tình trạng bệnh lý nào đó.

Tại sao việc cân bằng tập dữ liệu lại quan trọng

Mặc dù các mô hình được huấn luyện trên dữ liệu không cân bằng thường dễ mắc phải nghịch lý về độ chính xác, nhưng các nhóm ML giỏi sử dụng các chỉ số khác như  độ chính xác (precision), độ thu hồi (recall) và độ đặc hiệu (specificity)  để phân tích độ chính xác. Các chỉ số này trả lời các câu hỏi khác nhau về hiệu suất của mô hình, chẳng hạn như “Trong số tất cả bệnh nhân, có bao nhiêu người thực sự được dự đoán là bị bệnh?” (độ thu hồi). Dữ liệu không cân bằng có thể làm sai lệch kết quả đối với mỗi chỉ số, vì vậy việc kiểm tra hiệu suất của mô hình trên nhiều chỉ số là chìa khóa để xác định xem mô hình thực sự hoạt động tốt như thế nào. 

Các tập dữ liệu không cân bằng tạo ra thách thức cho mô hình dự đoán, nhưng thực tế đây là một vấn đề phổ biến và được dự đoán trước vì thế giới thực đầy rẫy những ví dụ về dữ liệu không cân bằng. 

Cân bằng tập dữ liệu giúp việc huấn luyện mô hình dễ dàng hơn vì nó giúp ngăn chặn mô hình bị thiên vị về một class nào đó. Nói cách khác, mô hình sẽ không còn ưu tiên class đa số chỉ vì class đó chứa nhiều dữ liệu hơn.

Chúng ta sẽ sử dụng ví dụ sau xuyên suốt bài viết để giải thích khái niệm này và các khái niệm khác. Trong ví dụ, mèo thuộc nhóm đa số, còn chó thuộc nhóm thiểu số. 

Ví dụ về tập dữ liệu không cân bằng

Giờ chúng ta hãy cùng xem xét một số chiến lược mà các nhóm ML có thể sử dụng để cân bằng dữ liệu của họ.

Thu thập thêm dữ liệu

Khi các nhóm ML áp dụng phương pháp tiếp cận dựa trên dữ liệu trong trí tuệ nhân tạo, họ hiểu rằng dữ liệu chính là công cụ giúp vận hành mô hình. Nhìn chung, càng có nhiều dữ liệu để huấn luyện mô hình, hiệu suất của nó càng tốt. Tuy nhiên, việc lựa chọn dữ liệu phù hợp và  đảm bảo chất lượng dữ liệu cũng rất cần thiết để cải thiện hiệu suất mô hình.

Vậy câu hỏi đầu tiên cần đặt ra khi gặp phải tập dữ liệu không cân bằng là:  Tôi có thể thu thập thêm dữ liệu chất lượng từ nhóm dữ liệu ít được đại diện hơn không?

Các nhóm nghiên cứu ML có thể áp dụng hai cách tiếp cận để thu thập thêm dữ liệu. Họ có thể cố gắng thu thập thêm dữ liệu “thực” từ các ví dụ trong thế giới thực, hoặc họ có thể tạo ra  dữ liệu tổng hợp bằng cách sử dụng các công cụ trò chơi hoặc  mạng đối kháng tạo sinh . 

Trong ví dụ minh họa của chúng ta, tập dữ liệu mới sẽ trông như thế này: 

blank

Lấy mẫu dưới mức 

Nếu không thể thu thập thêm dữ liệu, thì đã đến lúc bắt đầu triển khai các chiến lược nhằm cân bằng lại các class.

Lấy mẫu thiếu (undersampling) là một chiến lược cân bằng trong đó chúng ta loại bỏ các mẫu từ class được đại diện quá mức cho đến khi class thiểu số và class đa số có sự phân bố dữ liệu bằng nhau. Mặc dù trong hầu hết các trường hợp, lấy mẫu thiếu không được khuyến khích, nhưng nó có một số ưu điểm: nó tương đối dễ thực hiện và có thể cải thiện thời gian chạy và chi phí tính toán của mô hình vì nó giảm lượng dữ liệu huấn luyện.

Tuy nhiên, việc lấy mẫu thiếu phải được thực hiện cẩn thận vì việc loại bỏ các mẫu khỏi tập dữ liệu gốc có thể dẫn đến mất thông tin hữu ích. Tương tự, nếu tập dữ liệu gốc ban đầu không chứa nhiều dữ liệu, thì việc lấy mẫu thiếu sẽ khiến bạn có nguy cơ phát triển  mô hình quá khớp .

Ví dụ, nếu tập dữ liệu gốc chỉ chứa 100 mẫu – 80 mẫu từ class đa số và 20 mẫu từ class thiểu số – và tôi loại bỏ 60 mẫu từ class đa số để cân bằng tập dữ liệu, thì tôi đã bỏ qua 60% dữ liệu đã thu thập. Mô hình giờ chỉ còn 40 điểm dữ liệu để huấn luyện. Với lượng dữ liệu ít ỏi như vậy, mô hình có khả năng sẽ ghi nhớ dữ liệu huấn luyện và không thể khái quát hóa khi gặp dữ liệu chưa từng thấy trước đây. 

Với phương pháp lấy mẫu thiếu, tập dữ liệu trong ví dụ minh họa của chúng ta có thể trông như thế này, điều này rõ ràng là không lý tưởng.

blank

Việc đạt được một tập dữ liệu cân bằng với nguy cơ quá khớp là một sự đánh đổi lớn, vì vậy các nhóm ML cần phải suy nghĩ kỹ về loại bài toán mà họ sử dụng phương pháp lấy mẫu thiếu. 

Giả sử lớp thiểu số có số lượng mẫu nhỏ. Trong trường hợp đó, việc sử dụng phương pháp lấy mẫu thiếu có lẽ không phải là ý tưởng hay vì kích thước của tập dữ liệu cân bằng sẽ làm tăng nguy cơ quá khớp. 

Tuy nhiên, việc lấy mẫu thiếu có thể là một lựa chọn tốt khi vấn đề mà mô hình đang cố gắng giải quyết tương đối đơn giản. Ví dụ, nếu các mẫu trong hai lớp dễ phân biệt vì chúng không chồng chéo nhiều, thì mô hình không cần nhiều dữ liệu để học cách đưa ra dự đoán vì nó khó có thể nhầm lẫn giữa các lớp với nhau, và ít có khả năng gặp phải nhiễu trong dữ liệu.

Lấy mẫu thiếu (undersampling) có thể là một lựa chọn tốt khi huấn luyện các mô hình để dự đoán các bài toán dữ liệu dạng bảng đơn giản. Tuy nhiên, hầu hết các bài toán thị giác máy tính đều quá phức tạp để áp dụng phương pháp lấy mẫu thiếu. Hãy nghĩ về các bài toán phân loại ảnh cơ bản. Hình ảnh một con mèo đen và một con mèo trắng có thể trông rất khác nhau đối với con người. Tuy nhiên, một mô hình thị giác máy tính sẽ tiếp nhận tất cả thông tin trong hình ảnh: nền, phần trăm diện tích hình ảnh bị chiếm bởi con mèo, giá trị pixel, và nhiều hơn nữa. Điều mà mắt người chỉ nhìn thấy là một sự khác biệt đơn giản lại là một quyết định phức tạp hơn nhiều trong mắt của một mô hình.

Nhìn chung, các nhóm ML thường cân nhắc kỹ trước khi loại bỏ dữ liệu, vì vậy họ thường ưu tiên các phương pháp cân bằng dữ liệu khác, chẳng hạn như lấy mẫu quá mức (oversampling).

Lấy mẫu quá mức

Lấy mẫu quá mức (oversampling) làm tăng số lượng mẫu trong lớp thiểu số cho đến khi thành phần của nó bằng với lớp đa số. Các nhóm nghiên cứu ML tạo bản sao của các mẫu trong lớp ít được đại diện để mô hình gặp số lượng mẫu bằng nhau từ mỗi lớp, làm giảm khả năng bị thiên vị về lớp đa số.  

Khác với lấy mẫu thiếu (undersampling), lấy mẫu thừa (oversampling) không liên quan đến việc loại bỏ dữ liệu, vì vậy nó có thể giúp các nhóm ML giải quyết vấn đề thiếu dữ liệu mà không có nguy cơ mất thông tin quan trọng. Tuy nhiên, vì lớp thiểu số vẫn bao gồm một lượng hạn chế các điểm dữ liệu duy nhất, mô hình dễ bị ghi nhớ các mẫu dữ liệu và quá khớp (overfitting). 

Để giảm thiểu rủi ro quá khớp (overfitting), các nhóm nghiên cứu ML có thể tăng cường dữ liệu sao cho các bản sao của mẫu trong lớp thiểu số khác với bản gốc. Khi huấn luyện mô hình thị giác máy tính trên dữ liệu hình ảnh, họ có thể kết hợp nhiều phép tăng cường khác nhau như xoay ảnh, thay đổi độ sáng, cắt xén, tăng độ sắc nét hoặc làm mờ, v.v. để mô phỏng một tập dữ liệu đa dạng hơn. Thậm chí, các thuật toán cũng được thiết kế  để giúp tìm ra các phép tăng cường tốt nhất cho một tập dữ liệu. 

Với phương pháp lấy mẫu quá mức (oversampling), các tập dữ liệu trong ví dụ minh họa của chúng ta có thể trông như thế này: 

blank

Tính toán trọng số tổn thất của bạn

Thay vì sử dụng phương pháp lấy mẫu quá mức, bạn có thể điều chỉnh hàm mất mát để tính đến sự phân bố lớp không đồng đều. Trong mô hình phân loại, các hàm mất mát không trọng số coi tất cả các lỗi phân loại sai là các lỗi tương tự, nhưng trọng số phạt hướng dẫn thuật toán xử lý các lỗi dự đoán khác nhau tùy thuộc vào việc lỗi xảy ra khi dự đoán cho lớp thiểu số hay lớp đa số. Việc thêm trọng số phạt sẽ đưa sự thiên vị có chủ ý vào mô hình, ngăn nó ưu tiên lớp đa số.

Nếu một thuật toán có trọng số cao hơn cho lớp thiểu số và trọng số thấp hơn cho lớp đa số, nó sẽ phạt các lỗi phân loại sai từ lớp thiểu số nhiều hơn so với lớp đa số. Với trọng số phạt, các nhóm ML có thể điều chỉnh mô hình để chú trọng hơn đến lớp thiểu số trong quá trình huấn luyện, từ đó tạo ra sự cân bằng giữa các lớp.

Hãy xem một ví dụ đơn giản. Giả sử bạn có sáu mẫu huấn luyện, trong đó năm mẫu là mèo và một mẫu là chó. Nếu bạn lấy mẫu quá mức (oversample), bạn sẽ tạo ra một tập dữ liệu với năm con mèo khác nhau và năm bản sao của con chó. Khi bạn tính toán hàm mất mát trên tập dữ liệu được lấy mẫu quá mức này, mèo và chó sẽ đóng góp như nhau vào giá trị mất mát. 

Tuy nhiên, với phương pháp trọng số tổn thất, bạn sẽ không lấy mẫu quá mức mà chỉ đơn giản là nhân tổn thất của mỗi mẫu riêng lẻ với nghịch đảo số lượng mẫu (INS) của lớp đó

blank

Như vậy, mỗi mẫu mèo trong số năm mẫu sẽ đóng góp một phần năm vào tổn thất, trong khi tổn thất của các mẫu chó sẽ không được tính theo tỷ lệ. Do đó, nhóm mèo và nhóm chó sẽ đóng góp ngang nhau.

Về mặt lý thuyết, phương pháp này tương đương với việc lấy mẫu quá mức. Ưu điểm ở đây là chỉ cần một vài dòng mã đơn giản để triển khai, và nó thậm chí còn hoạt động được với các bài toán đa lớp. 

Mặc dù các kỹ sư ML thường sử dụng phương pháp này cùng với việc tăng cường dữ liệu, vấn đề quá khớp vẫn có thể tồn tại vì mô hình vẫn có thể ghi nhớ lớp thiểu số trong nhiều trường hợp. Để giảm thiểu vấn đề này, họ có thể cần sử dụng các phương pháp điều chỉnh mô hình như  dropout  hoặc xem xét  thêm trọng số phạt vào  mô hình.

Sử dụng nhiều chỉ số khác nhau để kiểm tra hiệu suất mô hình

Mỗi khi các nhóm ML huấn luyện lại mô hình của họ trên một tập dữ liệu đã được thay đổi, họ nên kiểm tra hiệu suất của mô hình bằng các chỉ số khác nhau.

Tất cả các kỹ thuật nêu trên đều yêu cầu một số hình thức thử và sai, vì vậy việc kiểm tra mô hình trên các tập dữ liệu chưa từng được sử dụng trước đây là rất quan trọng để đảm bảo rằng việc huấn luyện lại mô hình trên một tập dữ liệu cân bằng mang lại hiệu suất ở mức chấp nhận được. 

Hãy nhớ rằng, điểm số hiệu năng của mô hình trên dữ liệu huấn luyện không phản ánh hiệu năng thực tế của nó trong môi trường thực tế. Một mô hình đủ phức tạp có thể đạt được độ chính xác 100%, độ chính xác tuyệt đối và khả năng nhớ lại dữ liệu huấn luyện hoàn hảo vì nó đã học cách ghi nhớ các mẫu dữ liệu. Để được đưa vào sử dụng thực tế, mô hình cần hoạt động tốt trên dữ liệu chưa từng được sử dụng trước đây vì hiệu năng của nó cho thấy điều gì sẽ xảy ra khi được áp dụng trong thế giới thực.