El nuevo algoritmo acelera 200 veces el diseño automático de las redes neuronales.



ProxylessNAS optimiza directamente la arquitectura de las redes neuronales para una tarea y equipo específicos, lo que puede aumentar significativamente la productividad en comparación con los enfoques proxy anteriores. En un conjunto de datos ImageNet, una red neuronal está diseñada en 200 GPU horas (200–378 veces más rápido que sus contrapartes), y el modelo CNN diseñado automáticamente para dispositivos móviles alcanza el mismo nivel de precisión que MobileNetV2 1.4, trabajando 1.8 veces más rápido.

Investigadores del Instituto de Tecnología de Massachusetts han desarrollado un algoritmo eficiente para el diseño automático de redes neuronales de alto rendimiento para hardware específico, escribe la publicación MIT News .

Los algoritmos para el diseño automático de sistemas de aprendizaje automático son un nuevo campo de investigación en el campo de la IA. Esta técnica se llama búsqueda de arquitectura neural (NAS) y se considera una tarea computacional difícil.

Las redes neuronales diseñadas automáticamente tienen un diseño más preciso y eficiente que las desarrolladas por humanos. Pero la búsqueda de arquitectura neuronal requiere cálculos realmente enormes. Por ejemplo, el moderno algoritmo NASNet-F, desarrollado recientemente por Google para ejecutarse en GPU, requiere 48,000 horas de computación GPU para crear una red neuronal convolucional, que se utiliza para clasificar y detectar imágenes. Por supuesto, Google puede ejecutar cientos de GPU y otro hardware especializado en paralelo. Por ejemplo, en mil GPUs, este cálculo tomará solo dos días. Pero no todos los investigadores tienen tales oportunidades, y si ejecuta el algoritmo en la nube informática de Google, puede llegar a ser un centavo.

Los investigadores del MIT han preparado un artículo para la Conferencia Internacional sobre Representaciones de Aprendizaje, ICLR 2019 , que se llevará a cabo del 6 al 9 de mayo de 2019. El artículo ProxylessNAS: Búsqueda directa de arquitectura neuronal en tareas y hardware objetivo describe el algoritmo ProxylessNAS que puede desarrollar directamente redes neuronales convolucionales especializadas para plataformas de hardware específicas.

Cuando se ejecuta en un conjunto masivo de datos de imagen, el algoritmo diseñó la arquitectura óptima en solo 200 horas de funcionamiento de la GPU. Esto es dos órdenes de magnitud más rápido que el desarrollo de la arquitectura CNN utilizando otros algoritmos (ver tabla).



Los investigadores y las empresas con recursos limitados se beneficiarán del algoritmo. Un objetivo más general es "democratizar la IA", dice el coautor científico Song Han, profesor asociado de ingeniería eléctrica y ciencias de la computación en los Laboratorios de Tecnología de Microsistemas del MIT.

Khan agregó que tales algoritmos NAS nunca reemplazarán el trabajo intelectual de los ingenieros: "El objetivo es descargar el trabajo repetitivo y tedioso que viene con el diseño y la mejora de la arquitectura de las redes neuronales".

En su trabajo, los investigadores encontraron formas de eliminar componentes innecesarios de una red neuronal, reducir el tiempo de cómputo y usar solo una parte de la memoria del hardware para ejecutar el algoritmo NAS. Esto garantiza que el CNN desarrollado funcione de manera más eficiente en plataformas de hardware específicas: CPU, GPU y dispositivos móviles.

La arquitectura CNN consta de capas con parámetros ajustables llamados "filtros" y posibles relaciones entre ellos. Los filtros procesan píxeles de imagen en cuadrículas cuadradas, como 3 × 3, 5 × 5 o 7 × 7, donde cada filtro cubre un cuadrado. De hecho, los filtros se mueven alrededor de la imagen y combinan los colores de la cuadrícula de píxeles en un píxel. En diferentes capas, los filtros son de diferentes tamaños, que están conectados de diferentes maneras para intercambiar datos. La salida CNN produce una imagen comprimida combinada de todos los filtros. Dado que la cantidad de arquitecturas posibles, el llamado "espacio de búsqueda", es muy grande, usar NAS para crear una red neuronal en conjuntos masivos de datos de imágenes requiere enormes recursos. Normalmente, los desarrolladores ejecutan NAS en conjuntos de datos más pequeños (proxies) y transfieren las arquitecturas CNN resultantes al destino. Sin embargo, este método reduce la precisión del modelo. Además, la misma arquitectura se aplica a todas las plataformas de hardware, lo que genera problemas de rendimiento.

Los investigadores del MIT entrenaron y probaron el nuevo algoritmo en la tarea de clasificar imágenes directamente en el conjunto de datos ImageNet, que contiene millones de imágenes en mil clases. Primero, crearon un espacio de búsqueda que contiene todas las "rutas" posibles para los candidatos de CNN para que el algoritmo encuentre la arquitectura óptima entre ellos. Para ajustar el espacio de búsqueda en la memoria de la GPU, utilizaron un método llamado binarización a nivel de ruta, que guarda solo una ruta a la vez y guarda la memoria en un orden de magnitud. La binarización se combina con la poda a nivel de ruta, un método que tradicionalmente estudia qué neuronas en una red neuronal se pueden eliminar de forma segura sin dañar el sistema. Solo en lugar de eliminar neuronas, el algoritmo NAS elimina rutas completas, cambiando completamente la arquitectura.

Al final, el algoritmo corta todas las rutas poco probables y guarda solo la ruta con la mayor probabilidad: esta es la arquitectura CNN definitiva.

La ilustración muestra ejemplos de redes neuronales para clasificar imágenes que ProxylessNAS ha desarrollado para GPU, CPU y procesadores móviles (de arriba a abajo, respectivamente).

Source: https://habr.com/ru/post/444920/


All Articles