Qual é a diferença entre uma rede neural convolucional e uma rede neural regular?

18

Eu já vi esses termos lançados em torno deste site, especificamente nas tags e .

Eu sei que uma rede neural é um sistema baseado livremente no cérebro humano. Mas qual é a diferença entre uma Rede Neural Convolucional e uma Rede Neural regular? Um é muito mais complicado e, ahem, complicado do que o outro?

Mithical
fonte

Respostas:

23

TLDR: A rede neural convolucional é uma subclasse de redes neurais que possuem pelo menos uma camada de convolução. Eles são ótimos para capturar informações locais (por exemplo, pixels vizinhos em uma imagem ou palavras ao redor em um texto), além de reduzir a complexidade do modelo (treinamento mais rápido, precisa de menos amostras, reduz a chance de sobreajuste).

Veja o gráfico seguinte, que retrata as várias arquiteturas neurais-redes, incluindo-neurais-redes deep-convencionais: visualização.


Redes Neurais (NN) , ou mais precisamente Redes Neurais Artificiais (RNA) , é uma classe de algoritmos de Aprendizado de Máquina que recentemente recebeu muita atenção (novamente!) Devido à disponibilidade de Big Data e instalações de computação rápida (a maioria dos Deep Learning algoritmos são essencialmente diferentes variações de RNA).

A classe da RNA abrange várias arquiteturas, incluindo Redes Neurais Convolucionais ( CNN ), Redes Neurais Recorrentes ( RNN ), por exemplo, LSTM e GRU , Autoencoders e Deep Belief Networks . Portanto, a CNN é apenas um tipo de RNA.

De um modo geral, uma RNA é uma coleção de unidades conectadas e ajustáveis ​​(também conhecidas como nós, neurônios e neurônios artificiais) que podem transmitir um sinal (geralmente um número com valor real) de uma unidade para outra. O número de (camadas de) unidades, seus tipos e a maneira como eles estão conectados são chamados de arquitetura de rede.

Uma CNN, em específico, possui uma ou mais camadas de unidades de convolução . Uma unidade de convolução recebe sua entrada de várias unidades da camada anterior que juntas criam uma proximidade. Portanto, as unidades de entrada (que formam uma pequena vizinhança) compartilham seus pesos.

As unidades de convolução (assim como as unidades de pool) são especialmente benéficas como:

  • Eles reduzem o número de unidades na rede (já que são mapeamentos muitos para um ). Isso significa que há menos parâmetros a serem aprendidos, o que reduz a chance de adaptação excessiva, pois o modelo seria menos complexo do que uma rede totalmente conectada.
  • Eles consideram o contexto / informações compartilhadas nos pequenos bairros. Esse futuro é muito importante em muitas aplicações, como imagem, vídeo, texto e processamento / mineração de fala, pois as entradas vizinhas (por exemplo, pixels, quadros, palavras, etc.) geralmente carregam informações relacionadas.

Leia o seguinte para obter mais informações sobre CNNs (profundas):

  1. Classificação ImageNet com redes neurais convolucionais profundas
  2. Aprofundando-se com as convoluções

O ps ANN não é "um sistema baseado livremente no cérebro humano", mas sim uma classe de sistemas inspirados nas conexões neuronais existentes no cérebro de animais.

Borhan Kazimipour
fonte
10

As Redes Neurais Convolucionais (CNNs) são redes neurais com restrições arquiteturais para reduzir a complexidade computacional e garantir a invariância da tradução (a rede interpreta os padrões de entrada da mesma forma, independentemente da tradução - em termos de reconhecimento de imagem: uma banana é uma banana, independentemente de onde esteja. imagem). As redes neurais convolucionais têm três importantes características arquitetônicas.

Conectividade local: neurônios em uma camada são conectados apenas a neurônios na próxima camada que estão espacialmente próximos a eles. Esse design apara a grande maioria das conexões entre camadas consecutivas, mas mantém as que carregam as informações mais úteis. A suposição feita aqui é que os dados de entrada têm significado espacial ou, no exemplo da visão computacional, a relação entre dois pixels distantes é provavelmente menos significativa do que dois vizinhos próximos.

Pesos compartilhados: esse é o conceito que torna as CNNs "convolucionais". Ao forçar os neurônios de uma camada a compartilhar pesos, a passagem para frente (alimentando dados pela rede) torna-se equivalente a convolver um filtro sobre a imagem para produzir uma nova imagem. O treinamento das CNNs passa a ser a tarefa de aprender os filtros (decidir quais recursos você deve procurar nos dados).

Pooling e ReLU: CNNs têm duas não linearidades: pooling layers e ReLU functions. As camadas de pool consideram um bloco de dados de entrada e simplesmente transmitem o valor máximo. Isso reduz o tamanho da saída e não requer parâmetros adicionais para aprender; portanto, as camadas de agrupamento são frequentemente usadas para regular o tamanho da rede e manter o sistema abaixo de um limite computacional. A função ReLU pega uma entrada, x, e retorna o máximo de {0, x}. ReLU(x) = argmax(x, 0). Isso introduz um efeito semelhante ao tanh (x) ou sigmóide (x) como não linearidades para aumentar o poder expressivo do modelo.


Leitura adicional

Como outra resposta mencionada, o curso CS 231n de Stanford aborda isso em detalhes. Confira este guia escrito e esta palestra para mais informações. Postagens de blog como este e este também são muito úteis.

Se você ainda está curioso para saber por que as CNNs têm a estrutura que possuem, sugiro ler o artigo que as apresentou, embora isso seja bastante longo, e talvez verificando essa discussão entre Yann Lecun e Christopher Manning sobre anteriores inatos (as suposições que fazemos quando nós projetamos a arquitetura de um modelo).

Jackson Waschura
fonte
2
"e garantir a invariância da tradução" O que diabos é invariância da tradução? Ao mencionar um termo tão misterioso, você deve, pelo menos, defini-lo intuitivamente.
Nbro 02/11/19
1
Opa, eu concordo - eu adicionei em uma breve descrição.
Jackson Waschura 3/11
1
Essa é uma resposta melhor para mim, pois explica exatamente como as CNNs são um tipo específico de NN. Outras respostas não mencionam que o compartilhamento de peso é imposto.
Denziloe
5

Uma rede neural convolucional é aquela que possui camadas convolucionais . Se uma rede neural geral é, vagamente, inspirada por um cérebro humano (que não é muito preciso), a rede neural convolucional é inspirada pelo sistema do córtex visual, em humanos e outros animais (que é mais próximo da verdade) . Como o nome sugere, essa camada aplica a convolução com um filtro que pode ser aprendido (também conhecido como kernel ); como resultado, a rede aprende os padrões nas imagens: arestas, cantos, arcos e figuras mais complexas. A rede neural convolucional também pode conter outras camadas, comumente agrupadas e densas.

Recomendo o tutorial do CS231n sobre esse assunto: é muito detalhado e contém muitas visualizações muito agradáveis.

Máxima
fonte