Hard Negative Mining
La minería de negativos difíciles encuentra los negativos que el modelo más confunde con positivos y centra en ellos el entrenamiento, reduciendo los falsos positivos en detección y búsqueda.
La minería de negativos difíciles es una estrategia de entrenamiento que busca los ejemplos negativos en los que más se equivoca un modelo y concentra el aprendizaje en ellos. Un ejemplo negativo no pertenece a la clase objetivo, y un negativo difícil es uno que el modelo sigue puntuando como positivo: un recorte del fondo que un detector delimita como objeto o una imagen no relacionada que un modelo de incrustaciones sitúa junto a la consulta. La mayoría de los negativos son fáciles y, una vez que el modelo los gestiona, apenas aportan señal de aprendizaje. Por eso, seleccionar los más difíciles afina las fronteras de decisión y reduce los falsos positivos.
Cómo funciona la minería de negativos difíciles#
Lo que se considera difícil depende de la tarea:
- En la detección de objetos, una región del fondo es difícil cuando el detector la puntúa como si fuera un objeto.
- En clasificación, un negativo difícil es un ejemplo de una clase incorrecta al que se asigna una confianza alta para la clase objetivo.
- En recuperación y sistemas de recomendación, es un elemento irrelevante clasificado cerca de la consulta; los negativos con puntuaciones altas son los que más influyen en el gradiente.
- En aprendizaje de métricas, es un negativo que queda más cerca del ancla que el positivo correspondiente; una pérdida de margen triplete lo penaliza.
La minería se realiza sin conexión o en línea. La minería sin conexión ejecuta un modelo entrenado sobre un gran conjunto de datos que solo contiene negativos, recopila sus falsos positivos, los añade al conjunto de entrenamiento y vuelve a entrenar el modelo. Los detectores clásicos de peatones con ventana deslizante se entrenaban de esta forma: buscaban falsas alarmas en imágenes sin personas y volvían a entrenarse con ellas. La minería en línea selecciona ejemplos difíciles dentro de cada lote de entrenamiento. SSD ordena sus cajas predeterminadas negativas según la pérdida de clasificación y conserva solo las que tienen mayor pérdida, hasta un máximo de 3 negativos por positivo. La minería en línea de ejemplos difíciles (OHEM) aplica la misma idea a las propuestas de región de los detectores de dos etapas. La selección de SSD ocupa unas pocas líneas:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
# Simulated objectness logits for 8,400 candidate boxes: 20 cover an object, the rest are background
logits = torch.randn(8400) - 3
labels = torch.zeros(8400)
labels[:20] = 1
loss = F.binary_cross_entropy_with_logits(logits, labels, reduction="none")
# Keep every positive plus only the highest-loss negatives, at most 3 per positive
positives = labels == 1
negative_loss = loss.masked_fill(positives, 0)
hard_negatives = negative_loss.topk(3 * int(positives.sum())).indices
kept = torch.cat([positives.nonzero().squeeze(1), hard_negatives])
print(f"boxes in the loss: {len(kept)} of {len(loss)}")
print(f"mean negative loss: all {loss[~positives].mean():.3f}, mined {loss[hard_negatives].mean():.3f}")La pérdida conserva 80 de las 8.400 cajas: los 20 positivos y los 60 negativos que el modelo más puntúa como objetos. La pérdida media de esos 60 negativos seleccionados es de 0,648, frente a 0,075 para los 8.380 negativos; así, el gradiente se concentra en el fondo que realmente confunde al modelo.
Minería de negativos difíciles y técnicas relacionadas#
- Muestreo de negativos: Selecciona un subconjunto manejable de todos los negativos, a menudo al azar. La minería de negativos difíciles elige los que más confunden al modelo.
- Pérdida focal: Incluye todos los ejemplos en la pérdida, pero reduce el peso de los que se clasifican correctamente. Esto permite entrenar con todas las cajas candidatas a detectores de una etapa como RetinaNet sin muestreo explícito.
- Aprendizaje activo: Selecciona ejemplos sin etiquetar que generan dudas para que una persona los anote, incluidos posibles positivos. La minería de negativos difíciles se centra en ejemplos ya confirmados como negativos.
- Reequilibrio de clases: Corrige las frecuencias desiguales de las clases mediante submuestreo y aumento del peso. Una clase negativa frecuente no tiene por qué ser difícil.
- Aumento de datos: Crea variaciones de las muestras existentes, pero no puede introducir un objeto confuso que nunca haya estado en el conjunto de datos.
Aplicaciones en el mundo real#
- Detección de seguridad en almacenes: Un detector de carretillas elevadoras que señala repetidamente transpaletas, reflejos en estanterías y plataformas elevadoras de tijera erosiona la confianza de los operarios con falsas alertas. Recopilar esas escenas como imágenes negativas y volver a entrenar enseña al detector las características que distinguen una carretilla elevadora de equipos parecidos.
- Búsqueda visual de productos: Cuando una búsqueda de una zapatilla negra concreta clasifica demasiado alto modelos similares de otras líneas de productos, estos se convierten en negativos difíciles. Entrenar con ellos, por ejemplo como negativos en los tripletes ancla-positivo-negativo de una red siamesa, enseña al modelo de incrustaciones a mantener diferencias sutiles como la forma de la suela, la posición del logotipo y el material.
Flujo de trabajo de minería sin conexión#
Cada ronda de minería sin conexión ejecuta el modelo actual, confirma lo que ha señalado y vuelve a incorporar los casos confirmados al entrenamiento:
El paso de revisión es importante porque un «falso positivo» suele ser un objeto real que los anotadores han pasado por alto, y añadirlo como negativo enseñaría al modelo a suprimir detecciones verdaderas. Ultralytics YOLO trata una imagen de entrenamiento con un archivo de etiquetas ausente o vacío como una imagen de fondo, así que cada punto de anclaje de esa imagen recibe una puntuación objetivo de cero y se penaliza cualquier predicción con confianza que aparezca allí. Por eso, añadir negativos seleccionados a un conjunto de datos YOLO26 consiste simplemente en copiar las imágenes sin etiquetas. El progreso se refleja en una precisión mayor con la misma exhaustividad, medida tanto en el conjunto de prueba completo como en una partición dedicada de negativos difíciles.
Entrenar solo con los negativos más difíciles puede ser contraproducente. En el entrenamiento de incrustaciones faciales de FaceNet, elegir los negativos más difíciles al principio podía hacer que el modelo colapsara y asignara el mismo punto a todas las caras. Por eso, sus autores entrenaron con negativos semidifíciles, que están más lejos del ancla que el positivo, pero siguen dentro del margen triplete.










