Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Quá khớp (Overfitting)

Tìm hiểu cách xác định, ngăn ngừa và giải quyết tình trạng quá khớp (overfitting) trong học máy. Khám phá các kỹ thuật để cải thiện khả năng khái quát hóa mô hình và hiệu suất trong thế giới thực.

Quá khớp (overfitting) xảy ra trong học máy (ML) khi một mô hình học các chi tiết và nhiễu cụ thể của dữ liệu huấn luyện đến mức ảnh hưởng tiêu cực đến hiệu suất của nó trên dữ liệu mới. Về cơ bản, mô hình ghi nhớ các ví dụ huấn luyện thay vì học các mẫu cơ bản cần thiết cho quá trình khái quát hóa . Điều này dẫn đến một hệ thống đạt được độ chính xác cao trong quá trình phát triển nhưng lại không đưa ra được dự đoán đáng tin cậy khi triển khai trong các tình huống thực tế.

Hiểu hiện tượng

Trong bối cảnh học có giám sát , mục tiêu là tạo ra một mô hình hoạt động tốt trên các đầu vào chưa được biết đến, được gọi là dữ liệu thử nghiệm . Quá khớp (overfitting) thường xảy ra khi một mô hình quá phức tạp so với lượng dữ liệu có sẵn, một tình huống thường được mô tả là có phương sai cao. Một mô hình như vậy sẽ nhận ra các biến động ngẫu nhiên hoặc "nhiễu" trong tập dữ liệu như thể chúng là các đặc điểm quan trọng. Đây là một thách thức cốt lõi trong học sâu (DL) , đòi hỏi các nhà phát triển phải cân bằng giữa độ phức tạp và tính linh hoạt, thường được gọi là sự đánh đổi giữa độ lệch và phương sai .

Các ví dụ thực tế

Việc lắp quá mức có thể gây ra hậu quả nghiêm trọng tùy thuộc vào ứng dụng:

  • Xe tự hành: Hãy cân nhắc một hệ thống thị giác dành cho xe tự hành được đào tạo hoàn toàn dựa trên hình ảnh đường cao tốc được chụp trong điều kiện thời tiết nắng. Mô hình có thể bị quá tải với những điều kiện ánh sáng và kết cấu đường cụ thể này. Do đó, hệ thống có thể không phát hiện vật thể chính xác khi gặp mưa, bóng râm hoặc môi trường đô thị, gây ra rủi ro an toàn.
  • Chẩn đoán Y khoa: Trong AI trong chăm sóc sức khỏe , một mô hình có thể được huấn luyện để xác định bệnh lý trên phim chụp X-quang. Nếu tập dữ liệu đến từ một bệnh viện duy nhất, mô hình có thể bị quá khớp với các hiện tượng nhiễu cụ thể của thiết bị hình ảnh tại bệnh viện đó. Khi áp dụng để phân tích hình ảnh y khoa từ một cơ sở khác, hiệu suất của mô hình có thể giảm đáng kể vì nó học được nhiễu của thiết bị thay vì các đặc điểm sinh học của bệnh.

Xác định và ngăn ngừa hiện tượng quá khớp

Các nhà phát triển thường detect Quá khớp (overfitting) bằng cách theo dõi các hàm mất mát trong quá trình huấn luyện. Một chỉ báo rõ ràng là khi độ mất mát trong huấn luyện tiếp tục giảm trong khi độ mất mát dữ liệu xác thực bắt đầu tăng. Để khắc phục điều này, một số kỹ thuật được áp dụng:

  • Tăng cường dữ liệu: Điều này liên quan đến việc tăng tính đa dạng của tập huấn luyện một cách nhân tạo. Bằng cách áp dụng các phép biến đổi ngẫu nhiên như xoay hoặc lật, tăng cường dữ liệu ngăn mô hình ghi nhớ các sắp xếp pixel chính xác.
  • Chuẩn hóa: Các phương pháp như chuẩn hóa L1/L2 hoặc thêm lớp bỏ qua sẽ gây bất lợi cho các mô hình quá phức tạp bằng cách bỏ qua một tỷ lệ phần trăm nơ-ron trong quá trình đào tạo, buộc mạng nơ-ron phải học các tính năng dự phòng và mạnh mẽ.
  • Dừng sớm: Kỹ thuật này dừng quá trình đào tạo khi số liệu xác thực ngừng cải thiện, ngăn mô hình học nhiễu ở các kỷ nguyên sau.

Quá khớp so với Khớp thiếu

Điều quan trọng là phải phân biệt khái niệm này với hiện tượng "underfitting ". Trong khi hiện tượng "overfitting" liên quan đến một mô hình quá phức tạp và "cố gắng quá mức" để khớp với dữ liệu huấn luyện (phương sai cao), thì hiện tượng "underfitting" xảy ra khi một mô hình quá đơn giản để nắm bắt được xu hướng cơ bản của dữ liệu (độ lệch cao). Cả hai đều dẫn đến hiệu suất dự đoán kém, nhưng vì những lý do trái ngược nhau. Để đạt được mô hình tối ưu đòi hỏi phải điều hướng giữa hai thái cực này.

Triển khai thực tế

Các thư viện hiện đại như ultralytics đơn giản hóa việc thực hiện các chiến lược phòng ngừa. Ví dụ, người dùng có thể dễ dàng áp dụng dừng sớm và bỏ học khi đào tạo một YOLO11 người mẫu.

from ultralytics import YOLO

# Load the YOLO11 model (recommended for latest SOTA performance)
model = YOLO("yolo11n.pt")

# Train with 'patience' for early stopping and 'dropout' for regularization
# This helps the model generalize better to new images
results = model.train(
    data="coco8.yaml",
    epochs=100,
    patience=10,  # Stop if validation loss doesn't improve for 10 epochs
    dropout=0.1,  # Randomly drop 10% of units to prevent co-adaptation
)

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay