NÂNG CAO HIỆU QUẢ PHÂN LỚP ẢNH X-QUANG VỚI MÔ HÌNH HỌC KẾT HỢP BỎ PHIẾU MỀM CÓ TRỌNG SỐ ĐƯỢC TỐI ƯU HÓA BẰNG TÌM KIẾM LƯỚI
hue-hujos-tt-8390.pdf · Phiên bản 1 · 16 trang
Tạp chí Khoa học Đại học Huế: Kỹ thuật và Công nghệ Tập 135, Số 2A, 5–20, 2026 pISSN 2588-1175 eISSN 2615-9732 DOI: 10.26459/hueunijtt.v135i2A.8390 13 Tập dữ liệu COVID-19 [19], đây là tập dữ liệu mất cân bằng, được tổng hợp và chọn lọc gồm các hình ảnh X-quang ngực COVID-19 thu được bằng cách đối chiếu 15 tập dữ liệu công khai. Tập dữ liệu chứa 1281 hình ảnh X-quang bệnh lý COVID-19, 3270 hình ảnh X-quang bình thường, 1656 hình ảnh X-quang viêm phổi do virus và 3001 hình ảnh X-quang viêm phổi do vi khuẩn. Đây là tập dữ liệu mất cân bằng. Phân bố tập dữ liệu được trình bày ở Bảng 2. Bảng 2. Phân bố tập dữ liệu COVID-19 Lớp Số mẫu Tỷ lệ (%) COVID-19 1.281 13,9 Normal 3.271 35,5 Bacterial Pneumonia 3.001 32,6 Viral Pneumonia 1.656 18,0 Tổng 9.208 100 Chúng tôi thực hiện phân chia ngẫu nhiên, các tập dữ nghiên cứu thành tập huấn luyện, tập xác thực và tập kiểm thử theo tỷ lệ 80:10:10. Các tập huấn luyện, tập xác thực và tập kiểm thử được lưu trữ trong 3 thư mục vật lý độc lập để đảm bảo tính nhất quán khi so sánh đánh giá các mô hình khác nhau và giữa các lần chạy thuật toán. Quá trình chia tập dữ liệu hình ảnh gốc thành ba tập con riêng biệt: tập huấn luyện (Train), tập xác thực (Val) và tập kiểm thử (Test) được thực hiện qua hai bước chính bằng thư viện NumPy như sau: Xáo trộn ngẫu nhiên dữ liệu (Data Shuffling). Trước tiên, toàn bộ danh sách các đường dẫn file ảnh được xáo trộn ngẫu nhiên bằng hàm np.random.seed(42) và np.random.shuffle(). Bước này là bắt buộc để triệt tiêu tính thứ tự trong tập dữ liệu gốc. Việc xáo trộn giúp đảm bảo phân phối dữ liệu đồng đều ở
cả ba tập, từ đó giúp mô hình học được các đặc trưng tổng quát và tránh tình trạng học vẹt (overfitting). Phân chia tập dữ liệu (Data Splitting). Sau khi dữ liệu đã được xáo trộn, hàm np.split được sử dụng để cắt danh sách này thành 3 phần theo tỷ lệ được thiết lập (80% Train, 10% Val, 10% Test). Chúng ta sẽ tính toán các chỉ số (index) làm điểm cắt dựa trên tổng số lượng mẫu. Hàm np.split sẽ nhận mảng dữ liệu và các điểm cắt này để tách dữ liệu thành 3 mảng con hoàn toàn độc lập. Các mẫu dữ liệu được đưa vào ba tập huấn luyện, xác thực và kiểm thử, được lưu trữ trên 3 thư mục vật lý độc lập phục vụ cho quá trình nghiên cứu. Chi tiết số lượng mẫu trong các tập huấn luyện, tập xác thực và tập kiểm tra của hai bộ dữ liệu nghiên cứu được mô tả trong Bảng 3 và Bảng 4. Hình ảnh minh họa của tập dữ liệu ChestXray- ImageDataset thể hiện ở Hình 2. Bảng 3. Phân chia tập ChestXray-ImageDataset thành tập huấn luyện, tập xác thực và tập kiểm thử Lớp Số mẫu Tập Train Tập Val Tập Test COVID-19 1.100 880 110 110 Lung-Opacity 1.200 960 120 120 Normal 1.000 800 100 100 Viral Pneumonia 1.050 840 105 105 Tổng 4.350