Qual é a diferença entre redes neurais convolucionais e aprendizado profundo?


25

Eu quero usar o aprendizado profundo no meu projeto. Examinei alguns artigos e me ocorreu uma pergunta: existe alguma diferença entre rede neural de convolução e aprendizado profundo? Essas coisas são iguais ou existem grandes diferenças e qual é a melhor?


Diga-me qual é a diferença exata da aprendizagem profunda e da rede neural convolucional Eu sou um pouco confusa nesses 2 tópicos
Yamini

Respostas:


33

O Deep Learning é o ramo do Machine Learning baseado em redes neurais profundas (DNNs), que significa redes neurais com pelo menos 3 ou 4 camadas (incluindo as camadas de entrada e saída). Mas para algumas pessoas (especialmente não técnicas), qualquer rede neural se qualifica como Deep Learning, independentemente de sua profundidade. E outros consideram uma rede neural de 10 camadas como superficial.

As redes neurais convolucionais (CNNs) são uma das arquiteturas de redes neurais mais populares. Eles são extremamente bem-sucedidos no processamento de imagens, mas também para muitas outras tarefas (como reconhecimento de fala, processamento de linguagem natural e muito mais). As CNNs de ponta são bastante profundas (pelo menos dezenas de camadas), portanto fazem parte do Deep Learning. Mas você pode criar uma CNN rasa para uma tarefa simples, caso em que não é (realmente) Deep Learning.

Mas as CNNs não estão sozinhas, existem muitas outras arquiteturas de redes neurais por aí, incluindo Redes Neurais Recorrentes (RNN), Autoencoders, Transformers, Deep Belief Nets (DBN = uma pilha de Máquinas Boltzmann Restritas, RBM) e muito mais. Eles podem ser rasos ou profundos. Nota: mesmo RNNs rasos podem ser considerados parte do Deep Learning, pois treiná-los exige que eles sejam desenrolados ao longo do tempo, resultando em uma rede profunda.


@MiniQurak. Por favor, corrija-me, estou errado. o que eu entendo é que a CNN é apenas uma das arquiteturas de redes profundas, como Autoencoders, Deep Belief Nets, Redes Neurais Recorrentes (RNN) .. está correto?
Aadnan Farooq Um

Sim esta correto.
MiniQuark 14/09/16

então, podemos dizer qual arquitetura é melhor dependendo do conjunto de dados? ou quais são os principais fatores?
Aadnan Farooq Um

11
As CNNs são ótimas para tarefas de reconhecimento de imagem. Eles também brilham sempre que os dados têm alguma forma de estrutura hierárquica, com padrões locais (por exemplo, segmentos de linha) reunidos em padrões grandes (por exemplo, quadrados, triângulos), reunidos em padrões maiores (por exemplo, casa, plano). Isso funciona bem para tarefas de reconhecimento de fala. RNNs são ótimos para séries temporais (por exemplo, previsão do tempo) e geralmente lidam com seqüências de dados (por exemplo, frases). Eles são muito usados ​​para PNL (processamento de linguagem natural). Os AutoEncoders não são supervisionados, eles aprendem padrões nos dados.
MiniQuark 14/09/16

11
Tudo bem então :)
Firebug

21

Dentro dos campos de processamento adaptativo de sinais / aprendizado de máquina, o aprendizado profundo (DL) é uma metodologia específica na qual podemos treinar representações complexas de máquinas.

Geralmente, eles terão uma formulação que pode mapear sua entrada , até o objetivo de destino, y , por meio de uma série de operações empilhadas hierarquicamente (é daí que vem o 'profundo'). Essas operações são tipicamente operações / projeções lineares ( W i ), seguidas de não linearidades ( f i ), como:xyWEufEu

y=fN(...f2(f1 1(xTW1 1)W2)...WN)

Agora, dentro da DL, existem muitas arquiteturas diferentes : uma dessas arquiteturas é conhecida como rede neural convolucional (CNN). Outra arquitetura é conhecida como perceptron de múltiplas camadas (MLP) etc. Diferentes arquiteturas se prestam à solução de diferentes tipos de problemas.

Um MLP é talvez um dos tipos mais tradicionais de arquiteturas de DL que podemos encontrar, e é quando todos os elementos de uma camada anterior são conectados a todos os elementos da próxima camada. Se parece com isso:

insira a descrição da imagem aqui

WEuWR10x20vR10x1 1vocêR1 1x20você=vTWW dos elementos da próxima camada.

Os MLPs caíram em desuso, em parte porque eram difíceis de treinar. Embora existam muitas razões para essas dificuldades, uma delas também ocorreu porque suas densas conexões não permitiram que elas se dimensionassem facilmente para vários problemas de visão computacional. Em outras palavras, eles não possuíam equivalência de tradução incorporada. Isso significava que, se houvesse um sinal em uma parte da imagem à qual eles precisavam ser sensíveis, eles precisariam reaprender a ser sensíveis a ela se esse sinal se moveu. Isso desperdiçou a capacidade da rede e, portanto, o treinamento ficou difícil.

Foi aqui que as CNNs entraram! Aqui está o que se parece:

insira a descrição da imagem aqui

WEu

É comum ver "CNNs" se referir a redes nas quais temos camadas convolucionais em toda a rede e MLPs no final, de modo que essa é uma ressalva a ser observada.


11
+1 Ótima resposta, eu acabei de aprender sobre matrizes toeplitz. ;-)
MiniQuark 16/09

@MiniQuark Thanks! Sim - você pode escrever uma convolução como uma multiplicação por uma matriz toeplitz. :)
Tarin Ziyaee

@TarinZiyaee e MiniQurak Vocês podem me sugerir um bom livro / artigo de jornal / tutorial para o iniciante aprender sobre o Deep Learning em detalhes.
Aadnan Farooq Um

CNNs não são necessariamente profundas (-1)
Firebug 27/09

7

Aprendizagem profunda = redes neurais artificiais profundas + outro tipo de modelos profundos .

Redes neurais artificiais profundas = redes neurais artificiais com mais de uma camada. (veja o número mínimo de camadas em uma rede neural profunda ou na Wikipedia para mais debates ...)

Rede Neural de Convolução = Um tipo de rede neural artificial


Justo, o Deep Learning também inclui "máquinas de kernel de várias camadas", e as CNNs podem ser rasas. :)
MiniQuark 14/09


redes neurais artificiais com mais de uma camada ..... Não sei se uma rede com apenas 2 camadas é chamada de rede profunda.
SmallChess

11
@StudentT Talvez, eu não trabalhe com marketing;) en.wikipedia.org/w/…
Franck Dernoncourt 16/16

11
Essa deve ser a resposta principal, porque as CNNs não são necessariamente profundas e o aprendizado profundo não se refere apenas às RNAs (no sentido comum).
Firebug

6

Este slide de Yann LeCun destaca que apenas os modelos com uma hierarquia de recursos (recursos de nível inferior são aprendidos em uma camada de um modelo e, em seguida, esses recursos são combinados no próximo nível) são profundos .

Uma CNN pode ser profunda ou superficial; nesse caso, depende se segue essa construção da "hierarquia de recursos" porque certas redes neurais, incluindo modelos de duas camadas , não são profundas.

Definição de Yann LeCun


3

Deep learningé um termo geral para lidar com uma rede neural complicada com várias camadas. Não existe uma definição padrão do que exatamente é deep. Geralmente, você pode pensar que uma rede profunda é algo muito grande para o seu laptop e PC treinar. O conjunto de dados seria tão grande que você não pode ajustá-lo à sua memória. Você pode precisar de GPU para acelerar seu treinamento.

Deep é mais um termo de marketing para fazer com que algo pareça mais profissional do que o contrário.

CNNé um tipo de rede neural profunda e existem muitos outros tipos. As CNNs são populares porque possuem aplicativos muito úteis para o reconhecimento de imagens.


Gostaria de objetar gentilmente a algumas dessas declarações: uma rede é geralmente considerada profunda quando tem mais de uma camada oculta, e a maioria das pessoas concorda que ter mais de 10 camadas ocultas é definitivamente profundo. É bem possível treinar redes profundas no seu laptop, eu faço isso o tempo todo. O conjunto de dados não precisa ser grande, principalmente se você usar o aprendizado por transferência (por exemplo, reutilizar camadas de uma rede pré-treinada) e / ou aumentar os dados. Certamente há muita publicidade em torno da palavra "profundo", mas existem técnicas dedicadas para o aprendizado profundo, por isso não é apenas propaganda. :)
MiniQuark 16/09

@MiniQuark Com o aumento de dados, o conjunto de dados ainda será grande, assim que você começar com algo pequeno ...
SmallChess

Bom ponto, você está certo. O que eu quis dizer é que o conjunto de dados caberia na memória, pois você geraria a maioria dos dados em tempo real.
MiniQuark 16/09
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.