【MobileNetsv1】: Redes Neurais Convolucionais Eficientes para Aplicações de Visão Móvel

MobileNets: redes neurais convolucionais eficientes para aplicações de visão móvel

MobileNets: redes neurais convolucionais eficientes para aplicações de visão móvel

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


Resumo

Fornecemos uma classe de modelo eficiente chamada MobileNets para aplicações de visão móveis e incorporadas. MobileNets é baseado em uma arquitetura simplificada que usa convoluções separáveis ​​em profundidade para construir redes neurais profundas e leves. Apresentamos dois hiperparâmetros globais simples que efetivamente compensam latência e precisão. Esses hiperparâmetros permitem que os construtores de modelos escolham o modelo do tamanho certo para sua aplicação com base nas restrições do problema. Conduzimos extensos experimentos de compensação de recursos e precisão e demonstramos forte desempenho em comparação com outros modelos populares na tarefa de classificação ImageNet. Em seguida, demonstramos a eficácia dos MobileNets em uma variedade de aplicações e casos de uso, incluindo detecção de objetos, classificação refinada, atributos faciais e geolocalização em grande escala.


1. Introdução

As redes neurais convolucionais tornaram-se onipresentes na visão computacional desde que AlexNet [19] popularizou as redes neurais convolucionais profundas ao vencer o Desafio ImageNet: ILSVRC 2012 [24]. A tendência geral é criar redes mais profundas e complexas para obter maior precisão [27, 31, 29, 8]. No entanto, estes avanços na precisão não tornam necessariamente a rede mais eficiente em termos de tamanho e velocidade. Em muitas aplicações do mundo real, como robótica, veículos autônomos e realidade aumentada, as tarefas de reconhecimento precisam ser concluídas em tempo hábil em plataformas com recursos computacionais limitados.

Este artigo descreve uma arquitetura de rede eficiente e um conjunto de dois hiperparâmetros para construir modelos muito pequenos e de baixa latência que podem facilmente atender aos requisitos de design de aplicações de visão móveis e incorporadas. A seção 2 analisa trabalhos anteriores sobre a construção de pequenos modelos. A seção 3 apresenta a arquitetura MobileNet e dois multiplicadores de largura e multiplicador de resolução de hiperparâmetros para definir MobileNets menores e mais eficientes. A seção 4 descreve experimentos no ImageNet e uma variedade de aplicações e casos de uso diferentes. A seção 5 resume e conclui.

aaaaaaaaa gatinha fofa"

Figura 1. Os modelos MobileNet podem ser aplicados a várias tarefas de reconhecimento para eficiência na inteligência do dispositivo.


2. Emprego anterior

O interesse na construção de redes neurais pequenas e eficientes está aumentando na literatura recente, por exemplo, [16, 34, 12, 36, 22]. Muitas abordagens diferentes podem ser geralmente classificadas como compressão de redes pré-treinadas ou treinamento direto de pequenas redes. Este artigo propõe uma classe de arquiteturas de rede que permite aos desenvolvedores de modelos selecionar especificamente pequenas redes que atendam às restrições de recursos (latência, tamanho) de suas aplicações. A MobileNets se concentra principalmente na otimização da latência, mas também produz pequenas redes. Muitos artigos sobre redes pequenas focam apenas no tamanho, não na velocidade.

MobileNets são construídos principalmente a partir de convoluções separáveis ​​em profundidade originalmente introduzidas em [26] e posteriormente usadas no modelo Inception [13] para reduzir o cálculo das primeiras camadas. Flattened Networks [16] usa convoluções totalmente fatoradas para construção de redes e demonstra o potencial de redes extremamente fatoradas. Independentemente deste artigo, redes fatoradas [34] introduziram uso semelhante de convoluções fatoradas e conexões topológicas. Posteriormente, a rede Xception [3] demonstrou como ampliar filtros profundamente separáveis ​​para exceder o desempenho da rede Inception V3. Outra rede pequena é a Squeezenet [12], que utiliza uma abordagem de gargalo para projetar uma rede muito pequena. Outras redes que reduzem o esforço computacional incluem redes de transformação estrutural [28] e redes neurais convolucionais profundas [37].

Outra forma de obter redes pequenas é reduzir, fatorar ou compactar redes pré-treinadas. Métodos de compressão baseados em quantização de produto [36], hashing [2], poda, quantização vetorial e codificação de Huffman [5] foram propostos na literatura. Além disso, várias fatorações foram propostas para acelerar redes pré-treinadas [14, 20]. Outro método para treinar redes pequenas é a destilação [9], que utiliza uma rede maior para ensinar uma rede menor. Ele complementa nossa abordagem e é apresentado em alguns casos de uso na Seção 4. Outra abordagem emergente são as redes de baixo nível [4, 22, 11].


3. Arquitetura MobileNet

Nesta seção, descrevemos primeiro a camada central da arquitetura MobileNet, ou seja, convoluções separáveis ​​em profundidade. Em seguida, descrevemos a estrutura da rede MobileNet e resumimos dois hiperparâmetros de redução do modelo: multiplicador de largura e multiplicador de resolução.

3.1. Convolução separável em profundidade


O modelo MobileNet é construído em convoluções separáveis ​​em profundidade, uma forma de convolução fatorada que decompõe convoluções padrão em convoluções em profundidade e convoluções de 1 × 1 ponto. Para MobileNets, as convoluções profundas aplicam um único filtro a cada canal de entrada. Então, a convolução de ponto aplica uma convolução 1×1 para combinar a saída da convolução de profundidade. Enquanto a convolução padrão filtra e combina a entrada em uma única etapa, a convolução separável em profundidade a divide em duas camadas, uma para filtragem e outra para combinação. O efeito desta fatoração é reduzir significativamente o esforço computacional e o tamanho do modelo.Figura 2Mostra como as convoluções padrão são decompostas em convoluções profundas e convoluções de 1 × 1 ponto.

A camada convolucional padrão será DF × DF × M D_F×D_F×MDF×DF×M mapas de características F tomam como entrada e produzem umDF × DF × N D_F×D_F×NDF×DF×N mapa de características G, ondeDF D_FDFé a largura e altura espacial do mapa de recursos de entrada (assumido como quadrado), M é o número de canais de entrada (profundidade de entrada), DG D_GDGsão a largura e a altura espaciais do mapa de recursos de saída e N é o número de canais de saída (profundidade de saída).

A camada convolucional padrão consiste no tamanho DK × DK × M × N D_K ×D_K ×M × NDK×DK×M×O kernel de convolução K de N é parametrizado, ondeDK D_KDKé a dimensão espacial do kernel, considerada quadrada, M é o número de canais de entrada e N é o número de canais de saída, conforme descrito anteriormente.

Assumindo uma passada de 1 e preenchimento, o mapa de recursos de saída de uma convolução padrão é calculado da seguinte forma:

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 } = \ soma _ { i , j , m } K _ { i , j , m, n } ·F _ { k + i -1 , l+j -1 , m }\tag{1}Gk , eu , n=eu , j , mKeu , j , m , nFk + eu 1 , eu + j 1 , m( 1 )

O custo computacional da convolução padrão é:

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

Acho que você gosta

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