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

Neural Architecture Search (NAS)

La búsqueda de arquitecturas neuronales (NAS) automatiza el diseño de redes neuronales mediante la búsqueda entre capas y conexiones. Descubre los métodos, los costes de cómputo y los modelos creados con NAS.

La búsqueda de arquitecturas neuronales (NAS) es la rama del aprendizaje automático automatizado (AutoML) que diseña automáticamente la estructura de una red neuronal. En lugar de que un ingeniero elija a mano los tipos de capas de convolución y otras capas, su profundidad, anchura y conexiones, un algoritmo de búsqueda propone arquitecturas candidatas, estima su rendimiento en la tarea y utiliza los resultados para proponer otras mejores. El objetivo suele ser la precisión, a menudo combinada con un coste como la latencia de inferencia, el número de parámetros o los FLOPs en el hardware de destino. NAS ha producido varios backbones de visión artificial muy utilizados, como EfficientNet y MobileNetV3.

Cómo funciona NAS#

Una revisión publicada en el Journal of Machine Learning Research clasifica los métodos NAS según tres dimensiones:

  1. Espacio de búsqueda: El conjunto de arquitecturas que se pueden construir, por ejemplo, qué tipos de operaciones, tamaños de kernel y conexiones de salto están permitidos y cómo pueden conectarse. Muchos métodos buscan una pequeña celda repetible y apilan copias de ella, lo que reduce el espacio y permite transferir a un conjunto de datos grande una celda encontrada con uno pequeño.
  2. Estrategia de búsqueda: El algoritmo que elige qué candidatos probar, desde controladores de aprendizaje por refuerzo y algoritmos evolutivos hasta métodos basados en gradientes y muestreo aleatorio simple.
  3. Estrategia de estimación del rendimiento: Cómo se puntúa un candidato sin entrenarlo por completo, utilizando menos épocas de entrenamiento, imágenes o conjuntos de datos más pequeños, predicciones de la precisión final o pesos compartidos entre candidatos.

De miles de días de GPU a unas horas#

Las primeras búsquedas NAS eran costosas porque cada candidato se entrenaba hasta converger. En el estudio de Zoph y Le de 2016, un controlador recurrente entrenado con aprendizaje por refuerzo generaba las redes, y la búsqueda se ejecutaba simultáneamente en 800 GPU; el estudio posterior de NASNet utilizó 500 GPU durante cuatro días para encontrar una celda con CIFAR-10 que se pudiera transferir a ImageNet. AmoebaNet obtuvo resultados similares con evolución regularizada, con un coste de unos 3.150 días de GPU. ENAS redujo la búsqueda a menos de 16 horas en una sola GPU al compartir los pesos del modelo entre todos los candidatos, tratados como subgrafos de una gran red; DARTS relajó la elección discreta de operaciones y la convirtió en pesos continuos, de modo que la propia arquitectura se pudiera optimizar mediante descenso del gradiente en unos pocos días de GPU. La evaluación comparativa también moderó las expectativas del campo: la búsqueda aleatoria con parada temprana obtuvo resultados al menos tan buenos como ENAS en las pruebas de referencia Penn Treebank y CIFAR-10.

NAS adaptada al hardware y modelos creados con NAS#

El mayor impacto práctico de NAS se ha producido en los modelos eficientes para IA en el borde, donde hay que equilibrar la precisión y la velocidad en un dispositivo concreto. MnasNet incorporó la latencia medida en teléfonos reales al objetivo de búsqueda y alcanzó una precisión top-1 del 75,2 % en ImageNet a 78 ms en un teléfono Pixel: fue 1,8 veces más rápido que MobileNetV2 y ofreció un 0,5 % más de precisión. EfficientNet-B0 surgió de una búsqueda similar y después se amplió a la familia B1-B7 mediante escalado compuesto; MobileNetV3 combinó NAS adaptada al hardware con el algoritmo NetAdapt para ajustarse a las CPU móviles. Para la detección de objetos, los modelos YOLO-NAS de Deci, descubiertos con su motor de búsqueda AutoNAC y diseñados para perder poca precisión tras la cuantización INT8, se ejecutan en el paquete Ultralytics mediante la clase NAS para inferencia, validación y exportación, pero no para entrenamiento. NVIDIA adquirió Deci posteriormente, y el equipo original ya no actualiza los modelos.

Un ejemplo mínimo de NAS#

El siguiente ejemplo aplica la estrategia de búsqueda más sencilla, el muestreo aleatorio, a un pequeño espacio de búsqueda de perceptrones multicapa con los dígitos manuscritos de scikit-learn. Cada candidato se entrena durante solo 30 épocas como estimación económica del rendimiento y se evalúa con datos de validación:

import random
import warnings

from sklearn.datasets import load_digits
from sklearn.exceptions import ConvergenceWarning
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier

warnings.simplefilter("ignore", ConvergenceWarning)  # short training runs are the cheap estimate
X, y = load_digits(return_X_y=True)
X_train, X_val, y_train, y_val = train_test_split(X / 16, y, random_state=0)

# Search space: 1-3 hidden layers, each 8-128 units wide. Search strategy: 12 random samples
random.seed(0)
space = [8, 16, 32, 64, 128]
candidates = {tuple(random.choices(space, k=random.randint(1, 3))) for _ in range(12)}

# Performance estimation: train each candidate for only 30 epochs, then score it on validation data
scores = {}
for layers in candidates:
    model = MLPClassifier(hidden_layer_sizes=layers, max_iter=30, random_state=0)
    scores[layers] = model.fit(X_train, y_train).score(X_val, y_val)

worst, best = min(scores, key=scores.get), max(scores, key=scores.get)
print(f"{len(scores)} architectures: worst {worst} {scores[worst]:.3f}, best {best} {scores[best]:.3f}")

Las 12 muestras producen 10 arquitecturas distintas, y su precisión de validación va de 0.398 con dos capas de 8 unidades a 0.978 con capas de 128, 128 y 16 unidades, de modo que la elección de arquitectura por sí sola cambia la precisión en casi 60 puntos. Una ejecución NAS completa volvería a entrenar al modelo ganador hasta que convergiera y comunicaría su puntuación en un conjunto de prueba independiente.

  • Ajuste de hiperparámetros: Optimiza los ajustes de entrenamiento, como la tasa de aprendizaje, para una arquitectura fija. NAS trata la propia arquitectura como variable, y ambos procesos suelen ejecutarse juntos.
  • Poda de modelos y destilación de conocimiento: Reducen o imitan una red existente después del entrenamiento, mientras que NAS busca un diseño eficiente antes de entrenar.
  • Aprendizaje por transferencia: Reutiliza los pesos aprendidos de un modelo preentrenado. NAS decide la estructura que ocuparán esos pesos, y las redes descubiertas con NAS, como EfficientNet, también son backbones preentrenados populares.

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