【MobileNetsv1】: Redes neuronales convolucionales eficientes para aplicaciones de visión móvil

MobileNets: redes neuronales convolucionales eficientes para aplicaciones de visión móvil

MobileNets: redes neuronales convolucionales eficientes para aplicaciones de visión móvil

https://arxiv.org/pdf/1704.04861.pdf%EF%BC%89
2017
Andrew G. Howard Menglong Zhu Bo Chen Dmitry Kalenichenko
Weijun Wang Tobias Weyand Marco Andreetto Hartwig Adam


Resumen

Proporcionamos una clase de modelo eficiente llamada MobileNets para aplicaciones de visión integradas y móviles. MobileNets se basa en una arquitectura simplificada que utiliza convoluciones separables en profundidad para construir redes neuronales profundas y ligeras. Introducimos dos hiperparámetros globales simples que compensan efectivamente la latencia y la precisión. Estos hiperparámetros permiten a los creadores de modelos elegir el modelo del tamaño adecuado para su aplicación en función de las limitaciones del problema. Llevamos a cabo amplios experimentos de compensación de precisión y recursos y demostramos un rendimiento sólido en comparación con otros modelos populares en la tarea de clasificación de ImageNet. Luego demostramos la efectividad de MobileNets en una variedad de aplicaciones y casos de uso que incluyen detección de objetos, clasificación detallada, atributos faciales y geolocalización a gran escala.


1. Introducción

Las redes neuronales convolucionales se han vuelto omnipresentes en la visión por computadora desde que AlexNet [19] popularizó las redes neuronales convolucionales profundas al ganar el ImageNet Challenge: ILSVRC 2012 [24]. La tendencia general es crear redes más profundas y complejas para lograr una mayor precisión [27, 31, 29, 8]. Sin embargo, estos avances en precisión no necesariamente hacen que la red sea más eficiente en términos de tamaño y velocidad. En muchas aplicaciones del mundo real, como la robótica, los vehículos autónomos y la realidad aumentada, las tareas de reconocimiento deben completarse de manera oportuna en plataformas con recursos informáticos limitados.

Este artículo describe una arquitectura de red eficiente y un conjunto de dos hiperparámetros para construir modelos muy pequeños y de baja latencia que puedan cumplir fácilmente con los requisitos de diseño de aplicaciones de visión integradas y móviles. La sección 2 revisa trabajos previos sobre la construcción de modelos pequeños. La Sección 3 presenta la arquitectura MobileNet y dos hiperparámetros, multiplicador de ancho y multiplicador de resolución para definir MobileNets más pequeños y eficientes. La Sección 4 describe experimentos en ImageNet y una variedad de diferentes aplicaciones y casos de uso. La sección 5 resume y concluye.

aaaaAAaaaa lindo gatito"

Figura 1. Los modelos MobileNet se pueden aplicar a diversas tareas de reconocimiento para lograr una inteligencia eficiente en el dispositivo.


2. Empleo anterior

El interés en construir redes neuronales pequeñas y eficientes está aumentando en la literatura reciente, por ejemplo [16, 34, 12, 36, 22]. En general, se pueden clasificar muchos enfoques diferentes como comprimir redes previamente entrenadas o entrenar directamente redes pequeñas. Este artículo propone una clase de arquitecturas de red que permiten a los desarrolladores de modelos seleccionar específicamente redes pequeñas que coincidan con las limitaciones de recursos (latencia, tamaño) de sus aplicaciones. MobileNets se centra principalmente en optimizar la latencia, pero también produce redes pequeñas. Muchos artículos sobre redes pequeñas se centran sólo en el tamaño, no en la velocidad.

Las MobileNets se construyen principalmente a partir de convoluciones separables en profundidad introducidas originalmente en [26] y posteriormente utilizadas en el modelo Inception [13] para reducir el cálculo de las primeras capas. Flattened Networks [16] utiliza convoluciones totalmente factorizadas para la construcción de redes y demuestra el potencial de las redes extremadamente factorizadas. Independientemente de este artículo, las redes factorizadas [34] introdujeron un uso similar de convoluciones factorizadas y conexiones topológicas. Posteriormente, la red Xception [3] demostró cómo escalar filtros profundamente separables para superar el rendimiento de la red Inception V3. Otra red pequeña es Squeezenet [12], que utiliza un enfoque de cuello de botella para diseñar una red muy pequeña. Otras redes que reducen el esfuerzo computacional incluyen redes de transformación estructural [28] y redes neuronales convolucionales profundas [37].

Otra forma de obtener redes pequeñas es reducir, factorizar o comprimir redes previamente entrenadas. En la literatura se han propuesto métodos de compresión basados ​​en cuantificación de productos [36], hash [2], poda, cuantificación de vectores y codificación de Huffman [5]. Además, se han propuesto varias factorizaciones para acelerar las redes previamente entrenadas [14, 20]. Otro método para entrenar redes pequeñas es la destilación [9], que utiliza una red más grande para enseñar a una red más pequeña. Complementa nuestro enfoque y se presenta en algunos casos de uso en la Sección 4. Otro enfoque emergente son las redes de bajo nivel [4, 22, 11].


3. Arquitectura MobileNet

En esta sección, primero describimos la capa central de la arquitectura MobileNet, es decir, las convoluciones separables en profundidad. Luego describimos la estructura de la red MobileNet y resumimos dos hiperparámetros de reducción del modelo: multiplicador de ancho y multiplicador de resolución.

3.1 Convolución separable en profundidad


El modelo MobileNet se basa en convoluciones separables en profundidad, una forma de convolución factorizada que descompone convoluciones estándar en convoluciones en profundidad y convoluciones de 1 × 1 punto. Para MobileNets, las convoluciones profundas aplican un único filtro a cada canal de entrada. Luego, la convolución puntual aplica una convolución 1 × 1 para combinar la salida de la convolución profunda. Mientras que la convolución estándar filtra y combina la entrada en un solo paso, la convolución separable en profundidad la divide en dos capas, una para filtrar y otra para combinar. El efecto de esta factorización es reducir significativamente el esfuerzo computacional y el tamaño del modelo.Figura 2Muestra cómo las convoluciones estándar se descomponen en convoluciones en profundidad y convoluciones de 1 × 1 punto.

La capa convolucional estándar será DF × DF × M D_F×D_F×MDF×DF×M mapas de características F toman como entrada y producen unDF × DF × N D_F×D_F×NDF×DF×N mapa de características G, dondeDF D_FDFes el ancho y alto espacial del mapa de características de entrada (se supone que es cuadrado), M es el número de canales de entrada (profundidad de entrada), DG D_GDGRAMOson el ancho espacial y la altura del mapa de características de salida, y N es el número de canales de salida (profundidad de salida).

La capa convolucional estándar consta del tamaño DK × DK × M × N D_K ×D_K ×M × NDk×Dk×METRO×El núcleo de convolución K de N está parametrizado, dondeDK D_KDkes la dimensión espacial del núcleo, que se supone que es cuadrada, M es el número de canales de entrada y N es el número de canales de salida, como se describió anteriormente.

Suponiendo un paso de 1 y relleno, el mapa de características de salida de una convolución estándar se calcula de la siguiente manera:

G k , l , n = ∑ i , j , m K i , j , m , n ⋅ F k + i − 1 , l + j − 1 , m (1) G _ { k ,l , n } = \ suma _ { i , j , m } K _ { i , j , m, n } ·F _ { k + i -1 , l+j -1 , m }\tag{1}GRAMOk , l , n=yo , j , mki , j , m , nFk + i 1 , l + j 1 , metro( 1 )

El costo computacional de la convolución estándar es:

DK ⋅ DK ⋅ M ⋅ N ⋅ DF ⋅ DF (2) D _ { K } \cdot D _ { K } \cdot M \cdot N \cdot D _ { F } \cdot D _ { F }\tag{2 }DkDkMETROnorte

Supongo que te gusta

Origin blog.csdn.net/wagnbo/article/details/131176772
Recomendado
Clasificación