Hard Negative Mining
Découvre comment le hard negative mining réduit les faux positifs en vision par ordinateur en identifiant les exemples négatifs ambigus et en améliorant l'entraînement du modèle YOLO.
L'exploitation des exemples négatifs difficiles (hard negative mining) est une stratégie de données d'entraînement qui identifie les exemples négatifs qu'un modèle trouve anormalement convaincants et leur accorde une plus grande attention lors de l'apprentissage. Un exemple négatif n'appartient pas à la classe cible, tandis qu'un exemple négatif difficile (hard negative) ressemble suffisamment à un exemple positif pour produire un score élevé, une détection incorrecte ou un embedding proche. En se concentrant sur ces cas ambigus au lieu de présenter à plusieurs reprises des exemples de fond faciles au modèle, l'exploitation des exemples négatifs difficiles permet d'affiner les frontières de décision et de réduire les faux positifs.
Fonctionnement de l'exploitation des exemples négatifs difficiles#
Le processus commence généralement par un modèle de base entraîné sur des données d'entraînement représentatives. Le modèle évalue ensuite un plus grand bassin de candidats, tel que des images de production non étiquetées, des scènes exclusivement négatives ou des exemples au sein de chaque lot d'entraînement. Les candidats qui reçoivent des scores positifs élevés bien qu'ils soient négatifs sont sélectionnés pour examen et entraînement futur.
Ce qui qualifie un exemple de « difficile » dépend de la tâche :
- En détection d'objets, une région de fond est difficile lorsque le détecteur la confond avec un objet cible.
- En classification, il s'agit d'un exemple d'une mauvaise classe auquel est assignée une confiance élevée pour la classe cible.
- En recherche ou en apprentissage métrique, il s'agit d'un élément non pertinent classé près de la requête dans l'espace des embeddings. Les directives de Google sur l'échantillonnage négatif pour les modèles de recommandation décrivent les négatifs difficiles comme des éléments négatifs à score élevé qui affectent fortement le gradient.
- En apprentissage par triplet (triplet learning), le négatif apparaît trop près d'une ancre par rapport à son positif correspondant. La documentation PyTorch TripletMarginLoss explique la structure ancre-positif-négatif utilisée pour apprendre la similarité relative.
L'exploitation peut se produire hors ligne (offline), en exécutant périodiquement un modèle sur un grand ensemble de données, ou en ligne (online), en sélectionnant les négatifs difficiles du mini-lot actuel. Une couche d'exploitation des exemples négatifs difficiles Keras fournit un exemple de sélection par requête basée sur les logits des candidats.
Pourquoi les exemples négatifs difficiles comptent#
La plupart des exemples négatifs sont faciles : un ciel vide ne perturbera guère un détecteur de chariots élévateurs. Une fois que le modèle classifie correctement ces exemples, ils n'apportent que peu de signaux d'apprentissage utiles. Les négatifs difficiles mettent en lumière les caractéristiques visuelles ou sémantiques précises que le modèle a mal interprétées.
Ils sont particulièrement précieux lorsque les fausses alarmes réduisent la précision. L'analyse précision-rappel aide à déterminer si le réentraînement réduit effectivement les faux positifs sans provoquer une baisse inacceptable du rappel, comme l'illustre le guide précision-rappel scikit-learn.
L'exploitation des exemples négatifs difficiles diffère des techniques apparentées :
- L'échantillonnage négatif sélectionne un sous-ensemble gérable de tous les négatifs ; l'exploitation des exemples négatifs difficiles priorise les plus ambigus.
- L'apprentissage actif sélectionne généralement des exemples incertains pour l'étiquetage humain, y compris des positifs possibles. L'exploitation des exemples négatifs difficiles cible spécifiquement les négatifs confirmés qui mettent le modèle au défi.
- La perte focale modifie la pondération des exemples au sein de la fonction de perte, tandis que l'exploitation modifie les exemples sélectionnés ou mis en avant.
- Le rééquilibrage des classes traite des fréquences de classes inégales. Le guide de Google sur les ensembles de données déséquilibrés couvre le sous-échantillonnage et la pondération, mais les négatifs fréquents ne sont pas nécessairement des négatifs difficiles.
- L'augmentation de données crée des variations d'échantillons existants ; elle ne peut pas introduire de manière fiable un mode de défaillance inconnu en production.
Applications concrètes#
Détection de la sécurité en entrepôt : Supposons qu'un détecteur de chariots élévateurs identifie à répétition des transpalettes, des reflets d'étagères et des nacelles élévatrices comme des chariots élévateurs. Ces faux positifs peuvent déclencher des alertes inutiles et réduire la confiance de l'opérateur. Les ingénieurs peuvent collecter ces scènes comme des images négatives sans annotations de chariots élévateurs, les ajouter à l'ensemble de données et réentraîner le détecteur pour distinguer la cible d'un équipement similaire.
Recherche visuelle de produits : Un client recherche une chaussure de course noire spécifique, mais le système de recherche classe trop haut des chaussures visuellement similaires provenant d'autres gammes de produits. Ces produits non correspondants deviennent des négatifs difficiles. L'entraînement par rapport à ceux-ci encourage le modèle d'embedding à préserver des différences subtiles telles que la forme de la semelle, l'emplacement du logo et le matériau. L'exemple de réseau siamois Keras démontre comment les images d'ancrage, positives et négatives prennent en charge l'apprentissage de la similarité.
Flux de travail d'exploitation pratique#
Un flux de travail fiable est itératif :
- Exécutez des prédictions sur des données de validation et de production représentatives.
- Examinez les faux positifs à haute confiance et les schémas de confusion de classes en utilisant le mode de validation Ultralytics et une matrice de confusion.
- Confirmez que chaque candidat est véritablement négatif ; des étiquettes incorrectes peuvent enseigner au modèle à supprimer de vrais objets.
- Trouvez des échantillons apparentés, supprimez les doublons et conservez des arrière-plans, des points de vue et des conditions diversifiés.
- Réentraînez, puis comparez les performances à la fois sur l'ensemble de test complet et sur une tranche dédiée aux négatifs difficiles en utilisant le flux de travail de test de modèles de vision par ordinateur.
La recherche de similarité de l'Explorateur Ultralytics peut aider à faire surface des images ressemblant à un faux positif connu :
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())La similarité seule ne prouve pas qu'un candidat est un négatif difficile ; un réviseur doit vérifier son étiquette de vérité terrain. Les équipes peuvent utiliser la plateforme Ultralytics Platform pour organiser les images candidates, les annoter ou les corriger, entraîner des modèles mis à jour et surveiller les déploiements.
Évitez de sélectionner uniquement les exemples les plus difficiles. Certains peuvent être mal étiquetés, ambigus ou être des valeurs aberrantes extrêmes qui déstabilisent l'entraînement. Un mélange équilibré de négatifs faciles, modérément difficiles et difficiles préserve généralement une large couverture tout en enseignant au modèle là où sa frontière actuelle échoue.






