Với hơn 5 triệu tài khoản đăng ký, các cuộc thi trên Kaggle là sân chơi quốc tế dành cho cộng đồng trí tuệ nhân tạo và khoa học dữ liệu; nhưng cũng vì thế mà trở thành “miếng bánh khó nhằn” nếu bạn muốn chinh phục đỉnh cao.
Kaggle hiện là cộng đồng dành cho dân trí tuệ nhân tạo và khoa học dữ liệu trên toàn cầu. Với Kaggle, người dùng có thể tìm và xuất bản các tập dữ liệu, khám phá và xây dựng các mô hình AI, làm việc với các nhà khoa học dữ liệu và kỹ sư học máy hàng đầu, đồng thời tham gia tranh tài trên đấu trường quốc tế. Khác với các cuộc thi lập trình thông thường, các cuộc thi trên Kaggle đều xuất phát từ những bài toán thực tế mà những doanh nghiệp, tổ chức lớn trên thế giới gặp phải, liên quan đến khoa học dữ liệu. Chính vì vậy, đây là mảnh đất vàng, cũng là thách thức lớn mà chỉ những ai có chiến thuật thông minh mới có thể vượt qua. Dưới đây là chia sẻ của một trong những Kaggle Master tại Viện Nghiên cứu Dữ liệu lớn VinBigdata, người vừa xuất sắc giành vị trí số 01 trị giá 8.000 USD tại cuộc thi Global Wheat Detection 2020 – Kỹ sư AI Nguyễn Bá Dũng.
Lộ trình giải đề
Tiếp cận bộ dữ liệu quy mô rất lớn (thường được đo bằng Gigagbyte) và phải phát triển mô hình đảm bảo độ chính xác cao, các đội thi cần xây dựng được lộ trình cụ thể, phù hợp. Theo anh Dũng, 04 bước cơ bản để hoàn thành thử thách của cuộc thi phát hiện và phân loại đối tượng trong ảnh được tổ chức trên Kaggle bao gồm:
- Bước 1: Xử lý dữ liệu: Dựa trên bộ dữ liệu đào tạo do BTC cung cấp (ví dụ với VinBigdata là 15.000 ảnh X-quang phổi có cung cấp kết quả gán nhãn), đội thi sẽ chia ra thành các tập dữ liệu con để xây dựng và đánh giá mô hình. Thông thường, tỉ lệ phân chia là 80% (training) và 20% (validation). Sau đó, thực hiện các phép biến đổi như xoay, lật, điều chỉnh độ sáng để làm tăng độ đa dạng của dữ liệu.
- Bước 2: Huấn luyện mô hình: Cần lựa chọn mô hình phù hợp nhất cho bài toán phát hiện đối tượng trong ảnh. Ví dụ, những mô hình được sử dụng phổ biến nhất hiện nay là YOLO (You Only Look Once), EfficientDet, FasterRCNN. Sau khi đã lựa chọn được các mô hình phù hợp, đội thi sẽ cho chạy đồng thời nhiều mô hình khác nhau để tiến hành việc huấn luyện.
- Bước 3: Kết hợp mô hình: Với cùng một câu hỏi, tham khảo nhiều ý kiến khác nhau sẽ cho ra câu trả lời chính xác và toàn diện nhất. Tương tự như vậy, khi giải bài toán Object Detection, để lấy được thông tin của các mô hình khác nhau, cần thực hiện các phép biến đổi tọa độ của bounding box (trung bình tọa độ, xóa bounding box giao nhau…). Đối với các đội thi, mỗi thành viên có thể xử lý các mô hình độc lập, sau đó sử dụng thuật toán gom vùng tổn thương để kết hợp các mô hình với nhau. Do đó, đội thi tham gia giải đề càng sớm và càng đông thành viên thì sẽ có càng nhiều lợi thế về số lượng mô hình cũng như thời gian xây dựng, kết hợp và thử nghiệm mô hình.
- Bước 4: Lọc nhiễu: Để tăng độ chính xác của mô hình, bước cuối cùng nhưng cũng không kém phần quan trọng là loại bỏ các dữ liệu nhiễu khỏi tập huấn luyện. Ở đây, các đội tiến hành kết hợp một số phương pháp lọc nhiễu, xử lý để dữ liệu sạch hơn.
Chiến thuật thông minh
Bên cạnh những bước cơ bản, trong quá trình thi đấu, các Kagglers cũng bỏ túi những chiến thuật riêng để xây dựng được mô hình chính xác và tối ưu nhất. Từ bộ dữ liệu, tài liệu tham khảo, đến việc tìm đồng đội và lựa chọn máy tính, tất cả những yếu tố này đều ảnh hưởng ít nhiều đến kết quả chung cuộc của đội thi. Dưới đây là một số chiến thuật được chia sẻ bởi Kaggle Master Nguyễn Bá Dũng.
- Nghiên cứu thử thách: Đối với từng bộ dữ liệu sẽ có các bài báo đi kèm, cần đọc kĩ cách nhãn được gán, các đặc tính của đối tượng. Với những cuộc thi về y tế như Phát hiện điểm bất thường trên ảnh X-quang lồng ngực do VinBigdata tổ chức, các đội thi nên tìm hiểu đặc trưng của các mặt bệnh, đào sâu vào dữ liệu để xem dữ liệu đại diện cho loại tổn thương nào.
- “Dắt lưng tài liệu tham khảo”: Tham khảo mục thảo luận (Discussion) ngay tại cuộc thi trên Kaggle, đặc biệt chú ý phần chia sẻ của những Discussion Master để học hỏi thêm ý tưởng của các chuyên gia. Ngoài ra, để thuật toán tối ưu, đội thi cũng cần tìm tòi thêm những tài liệu bên ngoài, đọc về những mô hình mới và tiên tiến nhất để trau dồi thêm kiến thức.
- “Chọn bạn mà chơi”: Đối với những cuộc thi theo nhóm, muốn giành được chiến thắng, phải tìm được đồng đội tốt. Khi giải đề, mỗi người trong đội sẽ xây dựng một mô hình độc lập, thử nhiều phương pháp khác nhau. Sau đó, cả đội sẽ kết hợp các mô hình để đảm bảo độ đa dạng và chính xác.
- Ra trận phải có “vũ khí tốt”: Phần cứng máy tính càng mạnh, tốc độ thử nghiệm thuật toán càng nhanh.
Kỹ sư AI Nguyễn Bá Dũng, đại diện phòng Xử lý ảnh y tế, là một trong những Kaggle Master của Viện Nghiên cứu Dữ liệu lớn VinBigdata. Tham gia các cuộc thi trên Kaggle từ 03 năm trước, lọt top không dưới 10 cuộc thi và xuất sắc với giành vị trí Top 1 trị giá 8.000 USD tại cuộc thi Global Wheat Detection 2020, anh chia sẻ thêm: “Tham gia các cuộc thi trên Kaggle là cơ hội rất lớn để các bạn sinh viên được thực hành, tích lũy kinh nghiệm và tiếp cận với những bộ dữ liệu lớn.”
Nói riêng về cuộc thi Phát hiện điểm bất thường trên ảnh X-quang lồng ngực của VinBigdata, anh nhận định: “18.000 ảnh X-quang được chia sẻ là một trong những bộ dữ liệu X-quang chi tiết nhất từ trước tới nay, đặc biệt là có các vùng tổn thương được gán nhãn bởi 17 bác sỹ chẩn đoán hình ảnh kinh nghiệm thay vì các nhãn phân loại đơn thuần. Hơn nữa, thử thách cuộc thi đặt ra cũng rất thực tế, bằng việc xây dựng một mô hình tự động phát hiện tổn thương trên X-quang phổi sẽ trợ giúp các bác sỹ vốn rất bận rộn trong việc chẩn đoán bệnh, giảm tải cho các bệnh viện trong việc sàng lọc bệnh nhân, giúp tiết kiệm rất nhiều thời gian và nhân lực. Chắc chắn, các bạn tham dự sẽ học hỏi được nhiều điều từ cuộc thi này.”
Từ ngày 31/12/2020 – 31/03/2021, trên nền tảng Kaggle, VinBigdata tổ chức cuộc thi Phát hiện điểm bất thường trên ảnh X-quang lồng ngực. Tham gia cuộc thi, thí sinh có cơ hội tiếp cận bộ dữ liệu 18.000 ảnh X-quang và rinh về giải thưởng có tổng giá trị 50.000 USD. Xem thêm chi tiết cuộc thi tại đây.