Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

One-Shot Learning

El aprendizaje one-shot reconoce una clase nueva a partir de un único ejemplo etiquetado, normalmente mediante la comparación de embeddings. Descubre las redes siamesas, sus usos y el código.

El aprendizaje one-shot consiste en reconocer una clase nueva a partir de un único ejemplo etiquetado. Un modelo convencional de clasificación de imágenes necesita cientos de imágenes etiquetadas por clase y volver a entrenarse cada vez que se añade una clase, mientras que una persona suele reconocer una cara o un producto nuevos después de verlos una sola vez. Los sistemas one-shot se acercan a esa capacidad reutilizando el conocimiento de muchas clases aprendidas previamente: una red entrenada con esas clases asigna imágenes a embeddings en los que las imágenes de una misma cosa quedan próximas entre sí, de modo que basta un único ejemplo para indicar dónde se encuentra una clase nueva. La verificación facial, la comprobación de firmas y el reconocimiento de productos funcionan así; en los modelos de lenguaje grandes (LLMs), una indicación one-shot proporciona al modelo un único ejemplo resuelto de una tarea en su prompt.

Cómo funciona el aprendizaje one-shot#

La mayoría de los sistemas one-shot sustituyen la clasificación por la comparación. Una red neuronal realiza extracción de características en el ejemplo almacenado y en cada nueva consulta, y una distancia entre ambos embeddings, como la distancia euclídea o la similitud coseno, determina si coinciden. Una red neuronal siamesa formaliza este proceso con dos ramas que comparten los mismos pesos. Jane Bromley, Yann LeCun y sus colegas utilizaron una para verificar firmas en 1993, y Gregory Koch y sus colegas entrenaron una en 2015 para clasificar caracteres manuscritos de alfabetos nuevos después de ver un ejemplo de cada uno:

La red de embeddings se entrena previamente con muchas otras clases mediante funciones de pérdida contrastivas o triplete, que acercan las imágenes de una misma clase y alejan las de clases distintas, de modo que la distancia aprendida se generaliza a clases que aparecen más adelante. Los métodos de metaaprendizaje, como las redes de correspondencia, se entrenan con miles de tareas one-shot simuladas, cada una con un ejemplo de varias clases, para que el modelo practique exactamente el problema al que se enfrentará.

Clasificación one-shot con embeddings#

Los modelos de clasificación Ultralytics YOLO26 devuelven embeddings de imagen mediante embed(), que agrupa la salida de la capa anterior a la head de clasificación en un vector por imagen. Este ejemplo crea un clasificador one-shot de 10 clases para CIFAR-10 a partir de esos embeddings: los únicos datos etiquetados son una imagen almacenada por clase, y cada consulta recibe la etiqueta de la imagen almacenada más similar:

from pathlib import Path

import torch
import torch.nn.functional as F
from torchvision.datasets.utils import download_and_extract_archive
from ultralytics import YOLO

# CIFAR-10 test images, one folder per class
download_and_extract_archive("https://github.com/ultralytics/assets/releases/download/v0.0.0/cifar10.zip", "data")
images = [sorted(folder.glob("*.png")) for folder in sorted(Path("data/cifar10/test").iterdir()) if folder.is_dir()]
model = YOLO("yolo26n-cls.pt")

# Support set: the first image of each class is its only labeled example (one shot)
shots = torch.stack([model.embed(paths[0], verbose=False)[0] for paths in images])

# Query set: the next 50 images of each class, each labeled with the class of its most similar shot
correct = 0
for label, paths in enumerate(images):
    for path in paths[1:51]:
        query = model.embed(path, verbose=False)[0]
        correct += F.cosine_similarity(shots, query.unsqueeze(0)).argmax().item() == label
print(f"10-way 1-shot accuracy: {correct / 500:.1%} (random guessing: 10%)")

El modelo nunca se entrena con CIFAR-10, así que la precisión impresa mide hasta qué punto un ejemplo por clase define esa clase en el espacio de embeddings de YOLO26; para añadir una undécima clase bastaría con almacenar un embedding más.

Aplicaciones#

  • Verificación facial: Las puertas fronterizas automatizadas comparan la imagen de una cámara en directo con la única foto almacenada en el chip del pasaporte, y los teléfonos y sistemas de control de acceso comparan cada intento con el rostro registrado durante el alta.
  • Reconocimiento de productos en comercios: Las tiendas incorporan productos nuevos constantemente, y una única foto de catálogo por artículo permite que un sistema lo reconozca en la estantería sin volver a entrenarse.
  • Aprendizaje por imitación one-shot: Entrena robots para realizar una nueva variante de una tarea, como apilar bloques en un orden nuevo, después de observar una única demostración.

Retos#

Un solo ejemplo no muestra cómo varía una clase, por lo que una foto de referencia tomada con poca luz, desde un ángulo inusual o con el objeto parcialmente oculto proporciona una referencia deficiente para todas las comparaciones posteriores. El umbral de coincidencia determina el equilibrio entre falsos positivos y falsos negativos, y debe ajustarse con pares de validación para cada aplicación; además, un embedding entrenado en un dominio, como el de las fotos cotidianas, separa peor las clases en otro dominio, como el de las imágenes médicas.

  • Aprendizaje few-shot: El problema general de aprender con unos pocos ejemplos etiquetados por clase. El aprendizaje one-shot es el caso con exactamente uno, escrito 1-shot en la notación N-way K-shot.
  • Aprendizaje zero-shot: Reconoce clases sin ningún ejemplo, a partir de una descripción textual o de atributos.
  • Aprendizaje por transferencia: Reutiliza un modelo preentrenado para una tarea nueva, normalmente mediante ajuste fino con muchos ejemplos etiquetados. Los sistemas one-shot también se basan en características transferidas, pero las comparan directamente sin actualizar ningún peso.
  • Detección de anomalías: Aprende cómo es lo normal y señala todo lo que se aleja de ello; responde si un elemento es inusual, en lugar de indicar a qué clase pertenece.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático