Espacios de búsqueda prediseñados

Un espacio de Búsqueda de arquitectura neuronal es clave para lograr un buen rendimiento. Este define todas las arquitecturas o parámetros posibles para explorar y buscar. La Búsqueda de arquitectura neuronal proporciona un conjunto de espacios de búsqueda predeterminados en el archivo search_spaces.py:

  • Mnasnet
  • Efficientnet_v2
  • Nasfpn
  • Spinenet
  • Spinenet_v2
  • Spinenet_mbconv
  • Spinenet_scaling
  • Randaugment_detection
  • Randaugment_segmentation
  • AutoAugmentation_detection
  • AutoAugmentation_segmentation

Además, también proporcionamos los siguientes ejemplos de espacios de búsqueda:

El notebook Lidar publica los resultados de la verificación en el notebook. El resto del código de los espacios de búsqueda de PyTorch se debe usar solo como ejemplo y no para comparativas.

Cada uno de estos espacios de búsqueda tiene un caso de uso específico:

  • El espacio de búsqueda de MNasNet se usa para la clasificación de imágenes y las tareas de detección de objetos, y se basa en la arquitectura de MobileNetV2.
  • El espacio de búsqueda de EfficientNetV2 se usa para las tareas de detección de objetos. EfficientNetV2 agrega operaciones nuevas, como Fused-MBCon. Consulta el documento de EfficientNetV2 para obtener más detalles.
  • Por lo general, el espacio de búsqueda NAS-FPN se usa para la detección de objetos. Puedes encontrar una descripción detallada en esta sección.
  • La familia de espacios de búsqueda de SpineNet incluye spinenet, spinenet_v2, spinenet_mbconv y spinenet_scaling. Por lo general, también se usan para la detección de objetos. Puedes encontrar una descripción detallada de SpineNet en esta sección.

    • spinenet es el espacio de búsqueda base en esta familia que ofrece candidatos con bloqueos residuales y de cuello de botella durante la búsqueda.
    • spinenet_v2 ofrece una versión más pequeña de spinenet que puede ayudar a una convergencia más rápida, ofreciendo solo candidatos con bloqueos de cuello de botella durante la búsqueda.
    • spinenet_mbconv ofrece una versión de spinenet para las plataformas móviles y usa los candidatos de bloqueo mbconv durante la búsqueda.
    • spinenet_scaling se suele usar después de encontrar una buena arquitectura mediante el uso del espacio de búsqueda spinenet para aumentar o reducir la escala a fin de cumplir con los requisitos de latencia. Esta búsqueda se realiza en elementos como el tamaño de la imagen, la cantidad de filtros, el tamaño del filtro y la cantidad de repeticiones de bloque.
  • Los espacios de búsqueda Randagoment y AutoMayment te permiten buscar operaciones óptimas de magnificación de datos para la detección y segmentación, respectivamente. Nota: Por lo general, la magnificación de datos se suele utilizar después de que un modelo se haya buscado. Puedes encontrar una descripción detallada de DataAugmentation en esta sección.

  • El espacio de búsqueda Lidar para las nubes de puntos en 3D muestra una búsqueda de extremo a extremo en el marcador, la red troncal, el decodificador y el encabezado de detección.

  • El ejemplo del espacio de búsqueda de segmentación de imágenes médicas de 3D PyTorch muestra la búsqueda en el codificador de UNet y el decodificador de UNet.

La mayoría de las veces, estos espacios de búsqueda predeterminados son suficientes. Sin embargo, si es necesario, puedes personalizar los que ya existen o agregar uno nuevo según sea necesario mediante la biblioteca PyGlove. Consulta el código de ejemplo para especificar el espacio de búsqueda de NAS-FPN.

Espacio de búsqueda MNasnet y EfficientNetV2

Los espacios de búsqueda MNasNet y EfficientV2 definen diferentes opciones de compilación de backbone, como ConvOps, KernelSize y ChannelSize. El backbone se puede usar para diferentes tareas como la clasificación y la detección.

La estructura de EfficientNet

Espacio de búsqueda NAS-FPN

El espacio de búsqueda NAS-FPN define el espacio de búsqueda en las capas de FPN que conectan diferentes niveles de atributos para la detección de objetos, como se muestra en la siguiente figura.

La estructura de NAS-FPN

Espacio de búsqueda SpineNet

El espacio de búsqueda SpineNet permite buscar una red troncal con atributos intermedios de permutados a escala y conexiones a escala cruzada, con un rendimiento de vanguardia de la detección de objetos de una etapa en COCO que tienen un 60% menos de procesamiento, y supera a las contrapartes de ResNet-FPN en un AP del 6%. Las siguientes son conexiones de capas troncales en la arquitectura SpineNet-49 de búsqueda.

La estructura de SpineNet

Espacio de búsqueda de magnificación de datos

Después de buscar la mejor arquitectura, también puedes buscar una mejor política de aumento de datos. La magnificación de datos puede mejorar aún más la exactitud de la arquitectura que se consultó antes.

La plataforma de Búsqueda de arquitectura neuronal proporciona espacios de búsqueda de magnificación de Randagoment y AutoAgment para dos tareas: (a) randaugment_detection para la detección de objetos y (b) randaugment_segmentation para la segmentación. Elige de forma interna entre una lista de operaciones de magnificación, como el contraste automático, la distorsión o la rotación, que se aplicarán a los datos de entrenamiento.

Espacio de búsqueda RandAugment

El espacio de búsqueda RandAugment se configura mediante dos parámetros: (a) N, que es la cantidad de operaciones de magnificación sucesivas que se aplicarán a una imagen y (b) M, que es la magnitud de TODAS esas operaciones Por ejemplo, en la siguiente imagen, se muestra un ejemplo en el que se aplican operaciones N=2 (distorsionar y contrastar) con diferentes M=magnitud aplicada a una imagen.

Aplicación de RandAugment a una imagen

Para un valor determinado de N, la lista de operaciones se selecciona de forma aleatoria del banco de operaciones. La búsqueda de magnificación encuentra el mejor valor de N y M para el trabajo de entrenamiento en cuestión. La búsqueda no usa una tarea de proxy y, por lo tanto, ejecuta los trabajos de entrenamiento hasta el final.

Espacio de búsqueda AutoAugment

El espacio de búsqueda de AutoAgment te permite buscar operaciones choice, magnitude y probability para optimizar el entrenamiento de tu modelo. El espacio de búsqueda AutoAgment te permite buscar las opciones de la política, que Randagoment no admite.