Explore cross-validation to prevent overfitting and boost model reliability. Learn how to implement K-Fold splits with YOLO26 to ensure your AI generalizes well.
Kiểm định chéo là một quy trình lấy mẫu lại thống kê mạnh mẽ được sử dụng để đánh giá hiệu suất của các mô hình học máy (ML) trên một mẫu dữ liệu hạn chế. Không giống như phương pháp giữ lại tiêu chuẩn, chia dữ liệu thành một tập huấn luyện và một tập kiểm tra duy nhất, kiểm định chéo liên quan đến việc phân vùng tập dữ liệu thành nhiều tập con để đảm bảo rằng mọi điểm dữ liệu đều được sử dụng cho cả huấn luyện và xác thực. Kỹ thuật này rất quan trọng để đánh giá xem kết quả của một phân tích thống kê sẽ khái quát hóa như thế nào đối với một tập dữ liệu độc lập, giúp detect Hiện tượng quá khớp (overfitting) xảy ra khi mô hình ghi nhớ các ví dụ huấn luyện thay vì học các mẫu có thể khái quát hóa.
Biến thể được sử dụng rộng rãi nhất của kỹ thuật này là Kiểm định chéo K-Fold . Trong quy trình này, toàn bộ tập dữ liệu được chia ngẫu nhiên thành k nhóm có kích thước bằng nhau, hay còn gọi là "fold". Quá trình huấn luyện sau đó được lặp lại k lần. Trong mỗi lần lặp, một fold đóng vai trò là dữ liệu kiểm định để kiểm tra mô hình, trong khi k-1 fold còn lại được sử dụng làm dữ liệu huấn luyện .
Chỉ số hiệu suất cuối cùng thường được tính bằng cách lấy trung bình các điểm số — chẳng hạn như độ chính xác , độ chuẩn xác hoặc Độ chính xác trung bình ( mAP ) — thu được từ mỗi vòng lặp. Cách tiếp cận này làm giảm đáng kể phương sai liên quan đến một lần thử nghiệm duy nhất của việc chia tập dữ liệu huấn luyện và kiểm tra, cung cấp ước tính đáng tin cậy hơn về lỗi tổng quát hóa . Nó đảm bảo rằng việc đánh giá không bị thiên vị bởi việc lựa chọn dữ liệu kiểm tra một cách tùy ý.
Kiểm định chéo đặc biệt hữu ích khi làm việc với các tập dữ liệu nhỏ hoặc khi thực hiện tinh chỉnh siêu tham số nghiêm ngặt. Mặc dù các framework học sâu hiện đại như PyTorch giúp đơn giản hóa vòng lặp huấn luyện, việc quản lý các fold đòi hỏi sự chuẩn bị dữ liệu cẩn thận.
Ví dụ sau đây minh họa cách lặp qua các tệp cấu hình YAML được tạo sẵn cho một thí nghiệm kiểm định chéo 5 lần sử dụng mô hình YOLO26 . Giả sử bạn đã chia tập dữ liệu của mình thành năm tệp cấu hình riêng biệt.
from ultralytics import YOLO
# List of dataset configuration files representing 5 folds
fold_yamls = [f"dataset_fold_{i}.yaml" for i in range(5)]
for i, yaml_file in enumerate(fold_yamls):
# Load a fresh YOLO26 Nano model for each fold
model = YOLO("yolo26n.pt")
# Train the model, saving results to a unique project directory
results = model.train(data=yaml_file, epochs=20, project="cv_experiment", name=f"fold_{i}")
Để tìm hiểu sâu hơn về việc tự động tạo phân nhóm, hãy tham khảo hướng dẫn về Kiểm định chéo K-Fold .
Kiểm tra chéo là không thể thiếu trong các ngành công nghiệp nơi dữ liệu khan hiếm, chi phí thu thập cao hoặc nơi yêu cầu độ tin cậy quan trọng đối với an toàn.
Việc tích hợp kiểm định chéo vào vòng đời phát triển AI cung cấp những hiểu biết quan trọng về sự đánh đổi giữa độ lệch và phương sai .
Điều quan trọng là phải phân biệt phương pháp kiểm định chéo với các thuật ngữ đánh giá khác:
Việc quản lý các thành phần, số liệu và mô hình từ nhiều fold khác nhau có thể rất phức tạp. Nền tảng Ultralytics đơn giản hóa điều này bằng cách cung cấp tính năng theo dõi thử nghiệm tập trung, cho phép các nhóm so sánh hiệu suất giữa các fold khác nhau và trực quan hóa thông tin chi tiết về đánh giá mô hình một cách dễ dàng.