Neural Architecture Search (NAS)
Aprende cómo la búsqueda de arquitectura neuronal (NAS, por sus siglas en inglés) automatiza el diseño de modelos de aprendizaje profundo. Descubre sus mecanismos principales y explora modelos optimizados como Ultralytics YOLO26.
Neural Architecture Search (NAS) es una técnica sofisticada dentro del ámbito de Automated Machine Learning (AutoML) que automatiza el diseño de redes neuronales artificiales. Tradicionalmente, diseñar arquitecturas de deep learning (DL) de alto rendimiento requería una gran experiencia humana, intuición y un proceso de prueba y error largo y tedioso. NAS reemplaza este proceso manual con estrategias algorítmicas que exploran sistemáticamente una amplia gama de topologías de red para descubrir la estructura óptima para una tarea específica. Al probar varias combinaciones de capas y operaciones, NAS puede identificar arquitecturas que superan significativamente a los modelos diseñados por humanos en términos de accuracy, eficiencia computacional o velocidad de inferencia.
Mecanismos principales de NAS#
El proceso de descubrir una arquitectura superior generalmente implica tres dimensiones fundamentales que interactúan para encontrar la mejor neural network (NN):
-
Search Space: Esto define el conjunto de todas las arquitecturas posibles que el algoritmo puede explorar. Actúa como una biblioteca de bloques de construcción, como filtros de convolution, capas de agrupación y varias activation functions. Un espacio de búsqueda bien definido limita la complejidad para garantizar que la búsqueda siga siendo computacionalmente viable al tiempo que permite suficiente flexibilidad para la innovación.
-
Search Strategy: En lugar de probar todas las posibilidades (fuerza bruta), NAS emplea algoritmos inteligentes para navegar por el espacio de búsqueda de manera eficiente. Los enfoques comunes incluyen reinforcement learning, donde un agente aprende a generar mejores arquitecturas con el tiempo, y evolutionary algorithms, que mutan y combinan los modelos de mejor rendimiento para generar candidatos superiores.
-
Performance Estimation Strategy: Entrenar cada red candidata desde cero es extremadamente lento. Para acelerar esto, NAS utiliza técnicas de estimación, como entrenar en menos epochs, usar conjuntos de datos proxy de menor resolución o emplear weight sharing, para clasificar rápidamente el potencial de una arquitectura candidata.
Aplicaciones en el mundo real#
NAS se ha vuelto fundamental en industrias donde las restricciones de hardware o los requisitos de rendimiento son estrictos, superando los límites de computer vision (CV) y otros dominios de IA.
- Efficient Edge Computing: Desplegar IA en dispositivos móviles requiere modelos que sean tanto ligeros como rápidos. NAS se utiliza ampliamente para descubrir arquitecturas como MobileNetV3 y EfficientNet que minimizan la inference latency mientras mantienen una alta precisión. Esto es vital para aplicaciones de edge AI, como análisis de video en tiempo real en cámaras inteligentes o drones autónomos.
- Medical Imaging: En el medical image analysis, la precisión es primordial. NAS puede adaptar redes para detectar anomalías sutiles en radiografías o escáneres de resonancia magnética, encontrando a menudo nuevas vías de extracción de características que los ingenieros humanos podrían pasar por alto. Esto conduce a herramientas más confiables para identificar afecciones como brain tumors o fracturas con mayor sensibilidad.
NAS frente a conceptos relacionados#
Para entender el papel específico de NAS, es útil distinguirlo de técnicas de optimización similares:
- NAS vs. Hyperparameter Tuning: Si bien ambos implican optimización, el hyperparameter tuning se centra en ajustar la configuración (como el learning rate o el batch size) para una arquitectura fija. Por el contrario, NAS cambia la estructura fundamental del modelo en sí, como el número de capas o cómo se conectan las neuronas.
- NAS vs. Transfer Learning: El Transfer learning toma un modelo existente preentrenado y adapta sus pesos a una nueva tarea. NAS crea la arquitectura del modelo desde cero (o busca un mejor backbone) antes de que comience el entrenamiento.
Utilización de modelos derivados de NAS#
Aunque ejecutar una búsqueda NAS completa requiere importantes GPU computing resources, los desarrolladores pueden utilizar fácilmente modelos creados mediante NAS. Por ejemplo, la arquitectura YOLO-NAS se descubrió utilizando estos principios de búsqueda para optimizar las tareas de object detection.
El siguiente ejemplo de Python demuestra cómo cargar y utilizar un modelo NAS prebuscado utilizando el paquete ultralytics:
from ultralytics import NAS
# Load a pre-trained YOLO-NAS model (architecture found via NAS)
# 'yolo_nas_s.pt' refers to the small version of the model
model = NAS("yolo_nas_s.pt")
# Run inference on an image to detect objects
# This utilizes the optimized architecture for fast detection
results = model("https://ultralytics.com/images/bus.jpg")
# Print the top detected class
print(f"Detected: {results[0].names[int(results[0].boxes.cls[0])]}")Para quienes buscan entrenar modelos de última generación sin la complejidad de NAS, Ultralytics YOLO26 ofrece una arquitectura altamente optimizada lista para usar, que incorpora los últimos avances en investigación. Puedes gestionar fácilmente conjuntos de datos, entrenamiento y despliegue para estos modelos utilizando la Ultralytics Platform, que simplifica todo el ciclo de vida de MLOps.






