Hard Negative Mining
Aprende cómo la minería de negativos difíciles reduce los falsos positivos en visión por computador al identificar ejemplos negativos confusos y mejorar el entrenamiento de modelos YOLO.
La minería de negativos difíciles es una estrategia de datos de entrenamiento que identifica ejemplos negativos que el modelo considera inusualmente convincentes y les presta más atención durante el aprendizaje. Un ejemplo negativo no pertenece a la clase objetivo, mientras que un negativo difícil se parece lo suficiente a un positivo como para producir una puntuación alta, una detección incorrecta o un embedding cercano. Al centrarse en estos casos confusos en lugar de mostrar repetidamente al modelo ejemplos de fondo fáciles, la minería de negativos difíciles puede afinar los límites de decisión y reducir los falsos positivos.
Cómo funciona la minería de negativos difíciles#
El proceso suele comenzar con un modelo base entrenado con datos de entrenamiento representativos. A continuación, el modelo evalúa un conjunto más amplio de candidatos, como imágenes de producción sin etiquetar, escenas que solo contienen negativos o ejemplos de cada lote de entrenamiento. Los candidatos que reciben puntuaciones positivas altas a pesar de ser negativos se seleccionan para su revisión y para futuros entrenamientos.
Lo que se considera «difícil» depende de la tarea:
- En la detección de objetos, una región de fondo es difícil cuando el detector la confunde con un objeto objetivo.
- En clasificación, es un ejemplo de la clase incorrecta al que se asigna una confianza alta para la clase objetivo.
- En recuperación o aprendizaje métrico, es un elemento irrelevante clasificado cerca de la consulta en el espacio de embeddings. La guía de Google sobre el muestreo de negativos para modelos de recomendación describe los negativos difíciles como elementos negativos con puntuaciones altas que afectan considerablemente al gradiente.
- En el aprendizaje con tripletes, el negativo aparece demasiado cerca del ancla en comparación con su positivo correspondiente. La documentación de TripletMarginLoss de PyTorch explica la estructura ancla-positivo-negativo utilizada para aprender la similitud relativa.
La minería puede realizarse sin conexión, ejecutando periódicamente un modelo sobre un conjunto de datos grande, o en línea, seleccionando negativos difíciles del minib lote actual. Una capa de minería de negativos difíciles de Keras proporciona un ejemplo de selección por consulta basada en los logits de los candidatos.
Por qué son importantes los negativos difíciles#
La mayoría de los ejemplos negativos son fáciles: es poco probable que un cielo vacío confunda a un detector de carretillas elevadoras. Una vez que el modelo clasifica correctamente estos ejemplos, aportan poca señal de aprendizaje útil. Los negativos difíciles exponen las características visuales o semánticas concretas que el modelo ha interpretado mal.
Son especialmente valiosos cuando las falsas alarmas reducen la precisión. El análisis de precisión y exhaustividad ayuda a determinar si el reentrenamiento realmente reduce los falsos positivos sin provocar una disminución inaceptable de la exhaustividad, como se muestra en la guía de precisión y exhaustividad de scikit-learn.
La minería de negativos difíciles se diferencia de técnicas relacionadas:
- El muestreo de negativos selecciona un subconjunto manejable de todos los negativos; la minería de negativos difíciles prioriza los que generan más confusión.
- El aprendizaje activo generalmente selecciona ejemplos inciertos para que los etiquete una persona, incluidos posibles positivos. La minería de negativos difíciles se centra específicamente en negativos confirmados que ponen a prueba al modelo.
- La pérdida focal cambia cómo se ponderan los ejemplos dentro de la función de pérdida, mientras que la minería cambia qué ejemplos se seleccionan o se enfatizan.
- El reequilibrado de clases aborda las frecuencias desiguales de las clases. La guía de Google sobre conjuntos de datos con clases desbalanceadas trata el submuestreo y la ponderación, pero los negativos frecuentes no son necesariamente negativos difíciles.
- La aumentación de datos crea variaciones de muestras existentes; no puede introducir de forma fiable un modo de fallo desconocido en producción.
Aplicaciones en el mundo real#
Detección de seguridad en almacenes: Supón que un detector de carretillas elevadoras identifica repetidamente transpaletas, reflejos de estanterías y plataformas elevadoras de tijera como carretillas elevadoras. Estos falsos positivos pueden activar alertas innecesarias y reducir la confianza de los operarios. Los ingenieros pueden recopilar esas escenas como imágenes negativas sin anotaciones de carretillas elevadoras, añadirlas al conjunto de datos y volver a entrenar el detector para distinguir el objetivo de equipos similares.
Búsqueda visual de productos: Un cliente busca unas zapatillas de running negras concretas, pero el sistema de recuperación clasifica demasiado alto unas zapatillas visualmente similares de otras líneas de productos. Esos productos que no coinciden se convierten en negativos difíciles. Entrenar con ellos anima al modelo de embeddings a conservar diferencias sutiles, como la forma de la suela, la posición del logotipo y el material. El ejemplo de red siamesa de Keras demuestra cómo las imágenes ancla, positivas y negativas ayudan al aprendizaje de similitud.
Flujo de trabajo práctico para la minería#
Un flujo de trabajo fiable es iterativo:
- Ejecuta predicciones sobre datos representativos de validación y producción.
- Revisa los falsos positivos con alta confianza y los patrones de confusión entre clases mediante el modo de validación de Ultralytics y una matriz de confusión.
- Confirma que cada candidato es realmente negativo; las etiquetas incorrectas pueden enseñar al modelo a suprimir objetos reales.
- Busca muestras relacionadas, elimina duplicados y conserva fondos, puntos de vista y condiciones diversos.
- Vuelve a entrenar y compara después el rendimiento tanto en el conjunto de prueba completo como en un subconjunto específico de negativos difíciles mediante el flujo de trabajo de pruebas de modelos de visión por ordenador.
La búsqueda de similitud de Ultralytics Explorer puede ayudar a localizar imágenes parecidas a un falso positivo conocido:
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 similitud por sí sola no demuestra que un candidato sea un negativo difícil; una persona encargada de la revisión debe verificar su etiqueta de referencia. Los equipos pueden utilizar Ultralytics Platform para organizar imágenes candidatas, anotarlas o corregirlas, entrenar modelos actualizados y supervisar las implementaciones.
Evita seleccionar únicamente los ejemplos absolutamente más difíciles. Algunos pueden estar mal etiquetados, ser ambiguos o constituir valores atípicos extremos que desestabilicen el entrenamiento. Una combinación equilibrada de negativos fáciles, moderadamente difíciles y difíciles suele conservar una amplia cobertura y, al mismo tiempo, enseñar al modelo dónde falla su límite actual.









