Articles

Inovações do modelo de rede neural convolucional para a classificação de imagens

Tweet Share

última atualização em 5 de julho de 2019

uma introdução suave às inovações em redes neurais convolucionais LeNet, AlexNet, VGG, Inception, e ResNet.

as redes neurais convolucionais são compostas por dois elementos muito simples, nomeadamente camadas convolucionais e camadas em comum.

embora simples, existem maneiras quase infinitas de organizar essas camadas para um dado problema de visão computacional.,felizmente, existem ambos padrões comuns para configurar essas camadas e inovações arquitetônicas que você pode usar para desenvolver redes neurais convolucionais muito profundas. Estudar essas decisões de design arquitetônico desenvolvidas para tarefas de classificação de imagens de última geração pode fornecer uma lógica e intuição para como usar esses projetos ao projetar seus próprios modelos de rede neural convolucional profunda.

neste tutorial, você vai descobrir os marcos chave da arquitetura para o uso de redes neurais convolucionais para desafiar problemas de classificação de imagens.,

Após completar este tutorial, você saberá:

  • como modelar o número de filtros e tamanhos de filtros ao implementar redes neurais convolucionais.
  • Como organizar camadas convolucionais e de agrupamento em um padrão uniforme para desenvolver modelos com bom desempenho.
  • Como usar o módulo inicial e o módulo residual para desenvolver redes convolucionais muito mais profundas.

kick-start o seu projecto com o meu novo livro Deep Learning for Computer Vision, incluindo tutoriais passo-a-passo e os ficheiros de código-fonte Python para todos os exemplos.vamos começar.,

  • Update abr / 2019: Corrected description of filter size for LeNet (thanks Huang).

Tutorial Visão geral

Este tutorial é dividido em seis partes; são eles:

  1. Design Arquitetônico para CNNs
  2. LeNet-5
  3. AlexNet
  4. VGG
  5. Criação e GoogLeNet
  6. Residual de Rede ou ResNet

Design Arquitetônico para CNNs

Os elementos de uma convolucionais rede neural, tais como convolucionais e agrupamento de camadas, são relativamente simples de entender.,

a parte desafiadora do uso de redes neurais convolucionais na prática é como projetar arquiteturas modelo que melhor usem esses elementos simples.

uma abordagem útil para aprender como projetar arquiteturas de rede neural convolucional eficazes é estudar aplicações bem sucedidas. Isto é particularmente simples de fazer por causa do intenso estudo e aplicação da CNNs até 2012-2016 para o ImageNet Desafio de reconhecimento Visual em larga escala, ou ILSVRC., Este Desafio resultou no rápido avanço no estado da arte para tarefas de visão computacional muito difíceis e no desenvolvimento de inovações gerais na arquitetura de modelos de rede neural convolucional.

Vamos começar com o LeNet-5, que muitas vezes é descrito como o primeiro importantes e bem-sucedidos de aplicação das CNNs antes da ILSVRC, em seguida, olhar para quatro diferentes vencedores de arquitetura inovações para o convolucionais rede neural desenvolvido para o ILSVRC, ou seja, AlexNet, VGG, Criação, e ResNet.,ao compreender estes modelos marcantes e as suas inovações arquitectónicas ou arquitectónicas de alto nível, irá desenvolver uma apreciação pelo uso destes elementos arquitectónicos em aplicações modernas da CNN na visão de computador e será capaz de identificar e escolher elementos arquitectónicos que possam ser úteis no desenho dos seus próprios modelos.

quer resultados com aprendizagem profunda para a visão de computador?

tome o meu curso livre de estoiro de e-mail de 7 dias agora (com o código de exemplo).,

Clique para se inscrever e também obter uma versão ebook PDF livre do curso.

baixe o seu Mini-curso gratuito

LeNet-5

talvez a primeira aplicação amplamente conhecida e bem sucedida de redes neurais convolucionais foi LeNet-5, descrita por Yann LeCun, et al. em seu artigo de 1998 intitulado “Gradient-Based Learning Applied to Document Recognition” (get the PDF).

o sistema foi desenvolvido para uso em um problema de reconhecimento de caracteres manuscritos e demonstrado no conjunto de dados padrão MNIST, alcançando aproximadamente 99.,Precisão de classificação de 2% (ou uma taxa de erro de 0,8%). A rede foi então descrita como a técnica central em um sistema mais amplo referido como redes de transformadores de Grafos.

é um papel longo, e talvez a melhor parte a ser focada é a seção II. B. que descreve a arquitetura LeNet-5. Na seção, o papel descreve a rede como tendo sete camadas com imagens de entrada em tons de cinza com a forma 32×32, O tamanho das imagens no conjunto de dados MNIST.

o modelo propõe um padrão de uma camada convolucional seguida por uma camada comum média, referida como uma camada subamostrante., Este padrão é repetido duas vezes e meia antes que os mapas de características de saída sejam achatados e alimentados a um número de camadas totalmente conectadas para interpretação e uma previsão final. Uma imagem da arquitetura de rede é fornecida no papel e reproduzida abaixo.

Architecture of the LeNet-5 convolucional Neural Network for Handwritten Character Recognition (taken from the 1998 paper).,

o padrão de blocos de camadas convolucionais e camadas agregadas agrupadas e repetidas permanece um padrão comum na concepção e utilização de redes neurais convolucionais hoje, mais de vinte anos depois.

curiosamente, a arquitetura usa um pequeno número de filtros como a primeira camada oculta, especificamente seis filtros cada um com o tamanho de 5×5 pixels., Depois de agrupamento (chamado de uma subamostragem layer), outro convolucionais camada tem muitos mais filtros, novamente com um tamanho menor, mas menor do que o anterior convolucionais camada, especificamente, de 16 de filtros com um tamanho de 5×5 pixels, novamente, seguido pelo agrupamento. Na repetição destes dois blocos de camadas de convolução e pooling, a tendência é um aumento no número de filtros.

em comparação com aplicações modernas, o número de filtros também é pequeno, mas a tendência de aumentar o número de filtros com a profundidade da rede também permanece um padrão comum no uso moderno da técnica.,

o achatamento dos mapas de recursos e a interpretação e classificação das características extraídas por camadas totalmente conectadas também permanece um padrão comum hoje em dia. Na terminologia moderna, a seção final da arquitetura é muitas vezes referida como o classificador, enquanto as camadas convolucionais e pooling mais cedo no modelo são referidas como o extractor de recursos.

podemos resumir os aspectos chave da arquitectura relevante nos modelos modernos da seguinte forma:

  • imagens de entrada de tamanho fixo.camadas convolucionais de grupo e de agrupamento em blocos.,
  • repetição de blocos de agrupamento convolucional na arquitectura.
  • aumenta o número de filtros com a profundidade da rede.
  • extracção de características distintas e partes classificadoras da arquitectura.o trabalho que talvez pudesse ser creditado como despertando um interesse renovado nas redes neurais e o início do domínio da aprendizagem profunda em muitas aplicações de visão computacional foi o artigo de 2012 de Alex Krizhevsky, et al. intitulado ” ImageNet Classification with Deep convolucional Neural Networks.,”

    The paper describes a model later referred to as “AlexNet” designed to address the ImageNet Large Scale Visual Recognition Challenge or ILSVRC-2010 competition for classification photographs of objects into one of 1,000 different categories.

    O ILSVRC foi um concurso realizado de 2011 a 2016, projetado para estimular a inovação no campo da visão computacional. Antes do desenvolvimento de AlexNet, a tarefa era muito difícil e muito além da capacidade dos métodos modernos de visão computacional., AlexNet demonstrou com sucesso a capacidade de o convolucionais modelo de rede neural no domínio, e acendeu um fogo, que resultou em muitas mais melhorias e inovações, muitas demonstrado na mesma ILSVRC tarefa em anos subsequentes. Mais amplamente, o documento mostrou que é possível desenvolver modelos profundos e eficazes de ponta a ponta para um problema desafiador sem usar técnicas de pré-formação não supervisionadas que eram populares na época.

    importante no design do AlexNet foi um conjunto de métodos que foram novos ou bem sucedidos, mas não amplamente adotados na época., Agora, eles tornaram-se Requisitos ao usar CNN para a classificação de imagens.

    AlexNet fez uso da função de ativação linear retificada, ou ReLU, como a não linearmente após cada camada convolucional, em vez de funções em forma de S, tais como a logística ou tanh que eram comuns até aquele ponto. Além disso, uma função de ativação softmax foi usada na camada de saída, agora um grampo para classificação multi-classe com redes neurais.,

    a agregação média utilizada na LeNet-5 foi substituída por um método de agregação máximo, embora, neste caso, se tenha verificado que a agregação sobreposta supera a agregação não sobreposta que é normalmente utilizada hoje (por exemplo, o stride da operação de agregação é da mesma dimensão que a operação de agregação, por exemplo, 2 por 2 pixels). Para abordar o overfitting, o método de desistência recentemente proposto foi usado entre as camadas totalmente conectadas da parte classificadora do modelo para melhorar o erro de generalização.a arquitetura de AlexNet é profunda e se estende sobre alguns dos padrões estabelecidos com LeNet-5., A imagem abaixo, retirada do papel, resume a arquitetura modelo, neste caso, dividida em dois gasodutos para treinar no hardware da GPU da época.

    Architecture of the AlexNet convolucional Neural Network for Object Photo Classification (taken from the 2012 paper).

    o modelo tem cinco camadas convolucionais na parte de extração de características do modelo e três camadas totalmente conectadas na parte classificadora do modelo.

    As imagens de entrada foram fixadas ao tamanho 224×224 Com três canais de cores., Em termos de número de filtros utilizados em cada convolucionais camada, o padrão de aumentar o número de filtros com profundidade visto em LeNet foi, principalmente, respeitados, neste caso, os tamanhos: 96, 256, 384, 384, e 256. Da mesma forma, o padrão de diminuir o tamanho do filtro (kernel) com profundidade foi usado, começando do tamanho menor de 11×11 e diminuindo para 5×5, e então para 3×3 nas camadas mais profundas. O uso de pequenos filtros como 5×5 e 3×3 é agora a norma.,

    um padrão de uma camada convolucional seguida pela camada de pooling foi usado no início e no fim da parte de detecção de características do modelo. Curiosamente, um padrão de camada convolucional seguido imediatamente por uma segunda camada convolucional foi usado. Este padrão também se tornou um padrão moderno.

    O modelo foi treinado com aumento de dados, aumentando artificialmente o tamanho do conjunto de dados de treinamento e dando ao modelo mais uma oportunidade de aprender as mesmas características em diferentes orientações.,

    podemos resumir os aspectos chave da arquitectura relevante nos modelos modernos da seguinte forma:

    • Utilização da função de activação de ReLU após camadas convolucionais e softmax para a camada de saída.Utilização da agregação máxima em vez da agregação média.
    • Uso de regularização de desistência entre as camadas totalmente conectadas.padrão da camada convolucional alimentada diretamente a outra camada convolucional.utilização de aumento de dados.,

    VGG

    o desenvolvimento de redes neurais convolucionais profundas para tarefas de visão computacional parecia ser um pouco de uma arte escura após AlexNet.um trabalho importante que procurou padronizar o design de arquitetura para redes convolucionais profundas e desenvolveu modelos muito mais profundos e de melhor desempenho no processo foi o artigo de 2014 intitulado “Very Deep convolucional Networks for Large-Scale Image Recognition” por Karen Simonyan e Andrew Zisserman.

    sua arquitetura é geralmente referida como VGG após o nome de seu laboratório, o grupo de geometria Visual em Oxford., Seu modelo foi desenvolvido e demonstrado no concurso sameILSVRC, neste caso, a versão ILSVRC-2014 do challenge.

    A primeira diferença importante que se tornou um padrão de facto é o uso de um grande número de pequenos filtros. Especificamente, filtros com o tamanho 3×3 e 1×1 com o stride de um, diferente dos filtros de grande tamanho em LeNet-5 e os filtros menores, mas ainda relativamente grandes e grande stride de quatro em AlexNet.,

    Max agrupamento de camadas são utilizados depois que a maioria, mas não todos, convolucionais camadas, aprender a partir do exemplo em AlexNet, mas todas agrupamento é realizada com o tamanho 2×2 e o mesmo passo, que também tornou-se um padrão de fato. Especificamente, as redes VGG usam exemplos de duas, três, e até mesmo quatro camadas convolucionais empilhadas juntas antes de uma camada de poça máxima ser usada. A lógica era que camadas convolucionais empilhadas com filtros menores aproximavam o efeito de uma camada convolucional com um filtro de maior tamanho, e.g., três camadas convolucionais empilhadas com 3×3 filtros aproximam-se de uma camada convolucional com um filtro de 7×7.outra diferença importante é o grande número de filtros utilizados. O número de filtros aumenta com a profundidade do modelo, embora comece em um número relativamente grande de 64 e aumente através de 128, 256 e 512 filtros no final da parte de extração de recursos do modelo.

    uma série de variantes da arquitetura foram desenvolvidas e avaliadas, embora duas sejam referidas mais comumente devido ao seu desempenho e profundidade., Eles são nomeados para o número de camadas: eles são os VGG-16 e os VGG-19 para 16 e 19 camadas aprendidas, respectivamente.

    abaixo está uma tabela retirada do papel; observe as duas colunas à direita indicando a configuração (número de filtros) usada nas versões VGG-16 e VGG-19 da arquitetura.

    Architecture of the VGG convolucional Neural Network for Object Photo Classification (taken from the 2014 paper).,

    as decisões de projeto nos modelos VGG tornaram-se o ponto de partida para o uso simples e direto de redes neurais convolucionais em geral.

    finalmente, o trabalho de VGG foi um dos primeiros a lançar pesos de modelo valiosos sob uma licença permissiva que levou a uma tendência entre pesquisadores de visão de computador de aprendizagem profunda. Isto, por sua vez, levou ao uso pesado de modelos pré-treinados como VGG na aprendizagem de transferência como um ponto de partida para novas tarefas de visão de computador.,

    podemos resumir os aspectos-chave da arquitectura relevante nos modelos modernos da seguinte forma:

    • utilização de filtros convolucionais muito pequenos, por exemplo 3×3 e 1×1 com um passo de um.utilização de um máximo de agregação com uma dimensão de 2×2 e com um stride com as mesmas dimensões.
    • a importância de empilhar juntas camadas convolucionais antes de usar uma camada de agrupamento para definir um bloco.
    • repetição dramática do padrão de bloco convolucional.desenvolvimento de modelos muito profundos (16 e 19 camadas).,

    Inception and GoogLeNet

    inovações importantes no uso de camadas convolucionais foram propostas no artigo de 2015 por Christian Szegedy, et al. intitulado ” Going Deeper with Convolutions.”

    No artigo, os autores propõem uma arquitetura referida como início (ou início de v1, para diferenciá-lo de extensões) e um modelo específico chamado GoogLeNet que alcançou os melhores resultados em 2014, a versão do ILSVRC desafio.

    a inovação chave nos modelos iniciais é chamado de módulo inicial., Este é um bloco de camadas convolucionais paralelas com filtros de tamanho diferente (e.g. 1×1, 3×3, 5×5) e uma camada de agregação máxima de 3×3, cujos resultados são então concatenados. Abaixo está um exemplo do módulo inicial retirado do papel.

    exemplo do módulo inicial ingênuo (retirado do artigo de 2015).

    um problema com uma implementação ingênua do modelo inicial é que o número de filtros (profundidade ou canais) começa a crescer rapidamente, especialmente quando os módulos iniciais são empilhados.,

    executar convoluções com tamanhos de filtro maiores (por exemplo, 3 e 5) pode ser computacionalmente caro em um grande número de filtros. Para resolver isso, camadas convolucionais 1×1 são usadas para reduzir o número de filtros no modelo inicial. Especificamente antes das camadas convolucionais 3×3 e 5×5 e depois da camada de agrupamento. A imagem abaixo retirada do artigo mostra esta mudança para o módulo inicial.

    exemplo do módulo inicial com redução de dimensionalidade (retirado do artigo de 2015).,

    uma segunda decisão importante de projeto no modelo inicial foi conectar a saída em diferentes pontos do modelo. Isso foi conseguido através da criação de pequenas redes de saída off-shoot a partir da rede principal que foram treinados para fazer uma previsão. A intenção era fornecer um sinal adicional de erro a partir da tarefa de classificação em diferentes pontos do modelo profundo, a fim de resolver o problema do gradiente de desaparecimento. Estas pequenas redes de saída foram então removidas após o treinamento.,

    abaixo mostra uma versão rodada (da esquerda para a direita para entrada-saída) da arquitetura do modelo GoogLeNet tomada a partir do papel usando os módulos iniciais da entrada à esquerda para a classificação de saída à direita e as duas redes de saída adicionais que foram usadas apenas durante o treinamento.

    Architecture of the GoogLeNet Model Used During Training for Object Photo Classification (taken from the 2015 paper).,

    curiosamente, foi utilizada a acumulação máxima e uma grande operação média de agrupamento foi utilizada no final da parte de extracção de características do modelo antes da parte classificadora do modelo.

    podemos resumir os aspectos chave da arquitectura relevante nos modelos modernos da seguinte forma:

    • Desenvolvimento e repetição do módulo inicial.uso pesado da convolução 1×1 para reduzir o número de canais.
    • Utilização do feedback de erros em vários pontos da rede.desenvolvimento de modelos muito profundos (22 camadas).,Utilização da agregação média global para a produção do modelo.

    rede Residual ou ResNet

    uma inovação importante final nas redes neurais convolucionais que iremos rever foi proposta por Kaiming He, et al. em seu artigo de 2016 intitulado ” Deep Residual Learning for Image Recognition.”

    no artigo, os autores propuseram um modelo muito profundo chamado de rede Residual, ou ResNet para abreviar, um exemplo do qual alcançou sucesso na versão 2015 do Desafio ILSVRC.

    Seu Modelo tinha um impressionante 152 camadas., A chave para o design do modelo é a ideia de blocos residuais que fazem uso de conexões de atalho. Estas são simplesmente conexões na arquitetura de rede onde a entrada é mantida como-is (não ponderada) e passada para uma camada mais profunda, por exemplo, saltando a próxima camada.

    um bloco residual é um padrão de duas camadas convolucionais com ativação de ReLU onde a saída do bloco é combinada com a entrada para o bloco, por exemplo, a conexão de atalho. Uma versão projetada da entrada usada via 1×1 se a forma da entrada para o bloco é diferente da saída do bloco, chamadas convoluções 1×1., Estes são referidos como conexões de atalho projetadas, em comparação com as conexões de atalho não ponderadas ou de identidade.

    Os autores começar com o que eles chamam de uma simples rede, que é um VGG inspiração profunda convolucionais uma rede neural com filtros pequenos (3×3), agrupados convolucionais camadas seguido sem pooling entre, e com uma média de agrupamento no final do recurso detector parte do modelo antes de totalmente ligado camada de saída com uma função de ativação softmax.,

    a rede simples é modificada para se tornar uma rede residual, adicionando ligações de atalho para definir blocos residuais. Tipicamente a forma da entrada para a conexão de atalho é o mesmo tamanho que a saída do bloco residual.

    A imagem abaixo foi tirada do papel e da esquerda para a direita compara a arquitetura de um VGG modelo, uma planície convolucionais modelo, e uma versão da planície convolucionais com residual módulos, chamado de residual de rede.,

    Architecture of the Residual Network for Object Photo Classification (taken from the 2016 paper).

    podemos resumir os aspectos chave da arquitectura relevante nos modelos modernos da seguinte forma:

    • utilização de ligações de atalho.desenvolvimento e repetição dos blocos residuais.desenvolvimento de modelos muito profundos (152 camadas).

    Leitura Adicional

    Esta secção fornece mais recursos sobre o tópico se você está procurando ir mais fundo.,

    Papers

    • Gradient-based learning applied to document recognition, (PDF) 1998.classificação ImageNet com redes neurais convolucionais profundas, 2012.redes convolucionais muito profundas para reconhecimento de imagens em grande escala, 2014.
    • Going Deeper with Convolutions, 2015.
    • Profundo Residual de Aprendizagem para Reconhecimento de Imagem, 2016

    API

    • Keras Aplicações API

    Artigos

    • 9 Aprendizagem Profunda Documentos que Você Precisa Saber Sobre
    • Um Guia Simples para as Versões da Criação da Rede, em 2018.,arquiteturas CNN: LeNet, AlexNet, VGG, GoogLeNet, ResNet e muito mais., 2017.

    resumo

    neste tutorial, você descobriu os marcos fundamentais da arquitetura para o uso de redes neurais convolucionais para desafiar a classificação de imagens.especificamente, você aprendeu:

    • como modelar o número de filtros e tamanhos de filtros quando implementa redes neurais convolucionais.
    • Como organizar camadas convolucionais e de agrupamento em um padrão uniforme para desenvolver modelos com bom desempenho.,
    • Como usar o módulo inicial e o módulo residual para desenvolver redes convolucionais muito mais profundas.tem alguma pergunta?Faça suas perguntas nos comentários abaixo e farei o meu melhor para responder.

      desenvolver modelos de aprendizagem profunda para a visão de hoje!

      desenvolva os seus próprios modelos de visão em minutos

      …,with just a few lines of python code

      Discover how in my new Ebook:
      Deep Learning for Computer Vision

      it provides self-study tutorials on topics like:
      classification, object detection (yolo and rcnn), face recognition (vggface and facenet), data preparation and much more…

      finalmente trazer a aprendizagem profunda para os seus projetos de visão

      saltar os acadêmicos. Apenas Resultados.

      ver o que está dentro de

      Tweet Share