Thuật ngữ

Quá phù hợp

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 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 thực tế.

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

Cách xác định tình trạng quá khớp

Quá khớp thường được xác định bằng cách theo dõi hiệu suất của mô hình trên cả tập dữ liệu huấn luyện và một tập dữ liệu xác thực riêng biệt trong quá trình huấn luyện. Một dấu hiệu phổ biến của quá khớp là khi giá trị hàm mất mát của tập dữ liệu huấn luyện tiếp tục giảm, trong khi giá trị mất mát của tập dữ liệu xác thực bắt đầu tăng. Tương tự, nếu độ chính xác huấn luyện tiếp tục cải thiện nhưng độ chính xác xác thực chững lại hoặc giảm dần qua các kỷ nguyên tiếp theo, thì mô hình có khả năng đang quá khớp. Các công cụ như TensorBoard rất hữu ích để trực quan hóa các số liệu này và chẩn đoán sớm các vấn đề. Các nền tảng như Ultralytics HUB cũng có thể giúp theo dõi các thử nghiệm và đánh giá mô hình để phát hiện quá khớp.

Quá khớp so với quá khớp

Quá khớp và thiếu khớp là hai vấn đề phổ biến trong học máy, thể hiện sự thất bại trong việc khái quát hóa của mô hình. Về cơ bản, chúng là những vấn đề trái ngược nhau.

  • Quá khớp : Mô hình quá phức tạp so với dữ liệu (phương sai cao). Nó nắm bắt được nhiễu và biến động ngẫu nhiên trong dữ liệu huấn luyện, dẫn đến hiệu suất tuyệt vời trong quá trình huấn luyện nhưng hiệu suất kém trên dữ liệu kiểm tra .
  • Thiếu khớp : Mô hình quá đơn giản để nắm bắt được cấu trúc cơ bản của dữ liệu ( độ lệch cao). Mô hình hoạt động kém trên cả dữ liệu đào tạo và dữ liệu kiểm tra vì không thể học được các mẫu liên quan.

Thách thức trong học sâu là tìm ra sự cân bằng phù hợp, một khái niệm thường được mô tả bằng sự đánh đổi giữa độ lệch và phương sai .

Ví dụ thực tế về Overfitting

  1. Phát hiện Đối tượng Xe Tự hành : Hãy tưởng tượng việc huấn luyện một mô hình YOLO của Ultralytics cho một chiếc xe tự hành bằng một tập dữ liệu chỉ chứa hình ảnh từ điều kiện ban ngày nắng. Mô hình có thể trở nên chuyên biệt trong việc phát hiện người đi bộ và xe hơi trong điều kiện ánh sáng mạnh nhưng lại thất bại thảm hại vào ban đêm, trong thời tiết mưa hoặc sương mù. Mô hình đã bị quá khớp với điều kiện ánh sáng và thời tiết cụ thể của dữ liệu huấn luyện. Việc sử dụng các tập dữ liệu đa dạng như Argoverse có thể giúp ngăn chặn điều này.
  2. Phân tích hình ảnh y tế : Một mô hình CNN được huấn luyện để phát hiện khối u từ ảnh chụp MRI lấy từ một bệnh viện duy nhất. Mô hình có thể vô tình học cách liên kết các hiện tượng nhiễu hoặc mẫu nhiễu cụ thể từ máy MRI của bệnh viện đó với sự hiện diện của khối u. Khi được kiểm tra trên các ảnh chụp từ một bệnh viện khác bằng một máy khác, hiệu suất của nó có thể giảm đáng kể do bị quá khớp với nhiễu của tập huấn luyện ban đầu, chứ không phải các dấu hiệu sinh học thực tế của khối u. Đây là một vấn đề quan trọng trong các lĩnh vực như AI trong chăm sóc sức khỏe .

Làm thế nào để ngăn chặn quá khớp

Có thể sử dụng một số kỹ thuật để chống lại hiện tượng quá khớp và xây dựng các mô hình mạnh mẽ hơn.

  • Thu thập thêm dữ liệu : Tăng kích thước và tính đa dạng của tập dữ liệu huấn luyện là một trong những cách hiệu quả nhất để ngăn ngừa hiện tượng quá khớp. Dữ liệu lớn hơn giúp mô hình học được các mẫu cơ bản thực sự thay vì nhiễu. Bạn có thể khám phá nhiều tập dữ liệu Ultralytics khác nhau để cải thiện dự án của mình.
  • Tăng cường dữ liệu : Điều này liên quan đến việc mở rộng tập dữ liệu huấn luyện một cách nhân tạo bằng cách tạo các bản sao đã sửa đổi của dữ liệu hiện có. Các kỹ thuật như xoay ngẫu nhiên, thay đổi tỷ lệ, cắt xén và dịch chuyển màu được áp dụng. Các kỹ thuật tăng cường dữ liệu YOLO của Ultralytics được tích hợp sẵn để cải thiện độ tin cậy của mô hình.
  • Đơn giản hóa Kiến trúc Mô hình : Đôi khi, một mô hình quá phức tạp so với tập dữ liệu nhất định. Việc sử dụng một kiến trúc đơn giản hơn với ít tham số hơn có thể khiến mô hình không thể ghi nhớ dữ liệu. Ví dụ, việc chọn một biến thể mô hình nhỏ hơn như YOLOv8n so với YOLOv8x có thể có lợi cho các tập dữ liệu nhỏ hơn.
  • Chính quy hóa : Kỹ thuật này thêm một mức phạt vào hàm mất mát dựa trên độ phức tạp của mô hình, hạn chế sử dụng trọng số mô hình lớn. Các phương pháp phổ biến là chính quy hóa L1 và L2, bạn có thể tìm hiểu thêm tại đây .
  • Dropout : Một dạng chính quy hóa cụ thể, trong đó một phần ngẫu nhiên các neuron bị bỏ qua trong mỗi bước huấn luyện. Điều này buộc mạng phải học các biểu diễn dư thừa và ngăn chặn bất kỳ neuron đơn lẻ nào trở nên quá ảnh hưởng. Khái niệm Dropout được giải thích chi tiết tại đây .
  • Dừng sớm : Điều này bao gồm việc theo dõi hiệu suất của mô hình trên tập xác thực và dừng quá trình huấn luyện ngay khi hiệu suất xác thực bắt đầu giảm, ngay cả khi hiệu suất huấn luyện vẫn đang được cải thiện. Bạn có thể xem giải thích về dừng sớm trong Keras để biết thêm chi tiết.
  • Kiểm định chéo : Bằng cách sử dụng các kỹ thuật như kiểm định chéo K-Fold , dữ liệu được chia thành nhiều phần, sau đó mô hình được huấn luyện và kiểm định trên các tập con khác nhau. Điều này cung cấp ước tính mạnh mẽ hơn về khả năng khái quát hóa của mô hình.
  • Cắt tỉa Mô hình : Điều này liên quan đến việc loại bỏ các tham số hoặc kết nối khỏi mạng đã được đào tạo mà ít ảnh hưởng đến hiệu suất của mạng, do đó giảm độ phức tạp. Các công ty như Neural Magic cung cấp các công cụ chuyên cắt tỉa mô hình để triển khai hiệu quả.

Tham gia cộng đồng Ultralytics

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

Tham gia ngay
Liên kết đã được sao chép vào clipboard