Hard Negative Mining
Tìm hiểu cách hard negative mining giảm false positive trong computer vision bằng cách xác định các negative example dễ gây nhầm lẫn và cải thiện quá trình huấn luyện model YOLO.
Khai thác mẫu âm khó là một chiến lược về dữ liệu huấn luyện, trong đó xác định các ví dụ âm mà model đánh giá là thuyết phục một cách bất thường và dành cho chúng nhiều sự chú ý hơn trong quá trình học. Một ví dụ âm không thuộc lớp mục tiêu, trong khi mẫu âm khó có nét tương đồng đủ cao với mẫu dương để tạo ra điểm số cao, một detection sai hoặc embedding lân cận. Bằng cách tập trung vào các trường hợp gây nhầm lẫn này thay vì liên tục đưa cho model các ví dụ nền dễ nhận diện, khai thác mẫu âm khó có thể làm ranh giới quyết định sắc nét hơn và giảm false positive.
Khai thác mẫu âm khó hoạt động như thế nào#
Quy trình thường bắt đầu với một model baseline được huấn luyện trên dữ liệu huấn luyện mang tính đại diện. Sau đó, model đánh giá một tập ứng viên lớn hơn, chẳng hạn như ảnh production chưa gán nhãn, các cảnh chỉ chứa mẫu âm hoặc các ví dụ trong mỗi training batch. Những ứng viên nhận điểm dương cao dù là mẫu âm sẽ được chọn để xem xét và đưa vào huấn luyện trong tương lai.
Điều gì được xem là “khó” phụ thuộc vào tác vụ:
- Trong object detection, một vùng nền được xem là khó khi detector nhầm nó với một object mục tiêu.
- Trong bài toán classification, đó là một ví dụ thuộc lớp sai nhưng được gán độ tin cậy cao cho lớp mục tiêu.
- Trong retrieval hoặc metric learning, đó là một item không liên quan nhưng được xếp hạng gần query trong không gian embedding. Hướng dẫn của Google về negative sampling cho các model recommendation mô tả mẫu âm khó là các item âm có điểm số cao và ảnh hưởng mạnh đến gradient.
- Trong triplet learning, mẫu âm nằm quá gần anchor so với mẫu dương tương ứng. Tài liệu PyTorch TripletMarginLoss giải thích cấu trúc anchor-positive-negative được sử dụng để học độ tương đồng tương đối.
Việc khai thác có thể diễn ra offline, bằng cách định kỳ chạy model trên một dataset lớn, hoặc online, bằng cách chọn các mẫu âm khó từ mini-batch hiện tại. Một layer khai thác mẫu âm khó của Keras cung cấp ví dụ về việc lựa chọn theo từng query dựa trên logits của các ứng viên.
Vì sao mẫu âm khó quan trọng#
Phần lớn các ví dụ âm đều dễ: một bầu trời trống gần như không khiến detector forklift bị nhầm lẫn. Khi model đã phân loại đúng các ví dụ này, chúng đóng góp rất ít tín hiệu học hữu ích. Mẫu âm khó làm lộ ra chính xác những đặc trưng trực quan hoặc ngữ nghĩa mà model đã hiểu sai.
Chúng đặc biệt có giá trị khi các cảnh báo sai làm giảm precision. Phân tích precision-recall giúp xác định liệu việc huấn luyện lại có thực sự làm giảm false positive mà không gây sụt giảm recall không thể chấp nhận hay không, như được minh họa trong hướng dẫn precision-recall của scikit-learn.
Khai thác mẫu âm khó khác với các kỹ thuật liên quan:
- Negative sampling chọn một tập con có quy mô phù hợp từ tất cả các mẫu âm; khai thác mẫu âm khó ưu tiên những mẫu gây nhầm lẫn nhất.
- Active learning thường chọn các ví dụ không chắc chắn để con người gán nhãn, bao gồm cả các mẫu có thể là mẫu dương. Khai thác mẫu âm khó tập trung cụ thể vào các mẫu âm đã được xác nhận nhưng gây thách thức cho model.
- Focal loss thay đổi cách các ví dụ được gán trọng số bên trong hàm loss, trong khi việc khai thác thay đổi các ví dụ được chọn hoặc được nhấn mạnh.
- Cân bằng lại class xử lý sự chênh lệch về tần suất giữa các class. Hướng dẫn của Google về dataset mất cân bằng class đề cập đến việc downsampling và gán trọng số, nhưng các mẫu âm xuất hiện thường xuyên không nhất thiết là các mẫu âm khó.
- Data augmentation tạo ra các biến thể của những sample hiện có; kỹ thuật này không thể tạo ra một cách đáng tin cậy một failure mode chưa biết trong production.
Các ứng dụng trong thực tế#
Detection an toàn trong kho: Giả sử một detector forklift liên tục nhận diện pallet jack, phản chiếu trên kệ và xe nâng người dạng cắt kéo là forklift. Các false positive này có thể kích hoạt cảnh báo không cần thiết và làm giảm lòng tin của operator. Kỹ sư có thể thu thập những cảnh đó dưới dạng ảnh âm không có annotation forklift, thêm chúng vào dataset và huấn luyện lại detector để phân biệt mục tiêu với các thiết bị tương tự.
Tìm kiếm sản phẩm trực quan: Một khách hàng tìm kiếm một đôi giày chạy bộ màu đen cụ thể, nhưng hệ thống retrieval lại xếp hạng quá cao những đôi giày có hình ảnh tương tự từ các dòng sản phẩm khác. Những sản phẩm không khớp đó trở thành mẫu âm khó. Việc huấn luyện với các mẫu này khuyến khích model embedding duy trì những khác biệt tinh tế như hình dạng đế, vị trí logo và chất liệu. Ví dụ mạng Siamese của Keras minh họa cách các ảnh anchor, dương và âm hỗ trợ việc học độ tương đồng.
Quy trình khai thác thực tế#
Một quy trình đáng tin cậy có tính lặp:
- Chạy prediction trên dữ liệu validation và production mang tính đại diện.
- Xem xét các false positive có độ tin cậy cao và các mẫu nhầm lẫn giữa class bằng chế độ validation của Ultralytics và confusion matrix.
- Xác nhận mọi ứng viên thực sự là mẫu âm; nhãn không chính xác có thể khiến model học cách loại bỏ các object thực.
- Tìm các sample liên quan, loại bỏ bản sao và duy trì sự đa dạng về nền, góc nhìn và điều kiện.
- Huấn luyện lại, sau đó so sánh hiệu năng trên cả test set đầy đủ lẫn một slice dành riêng cho mẫu âm khó bằng quy trình testing model computer vision.
Tìm kiếm độ tương đồng của Ultralytics Explorer có thể giúp tìm ra các ảnh giống với một false positive đã biết:
from ultralytics import Explorer
# Build an embedding index for the example dataset
explorer = Explorer(data="coco128.yaml", model="yolo26n.pt")
explorer.create_embeddings_table()
# Retrieve visually similar candidates for human review
candidates = explorer.get_similar(
img="https://ultralytics.com/images/bus.jpg",
limit=12,
)
print(candidates.head())Chỉ riêng độ tương đồng không chứng minh rằng một ứng viên là mẫu âm khó; reviewer phải xác minh nhãn ground truth của ứng viên đó. Các team có thể sử dụng Ultralytics Platform để tổ chức ảnh ứng viên, gán nhãn hoặc sửa nhãn, huấn luyện các model đã cập nhật và giám sát các deployment.
Tránh chỉ chọn những ví dụ tuyệt đối khó nhất. Một số ví dụ có thể bị gán nhãn sai, mơ hồ hoặc là outlier cực đoan khiến quá trình huấn luyện mất ổn định. Một hỗn hợp cân bằng gồm các mẫu âm dễ, khó vừa phải và khó thường giúp duy trì phạm vi bao phủ rộng, đồng thời chỉ cho model biết ranh giới hiện tại của nó thất bại ở đâu.









