Qual é a diferença entre uma rede neural, um sistema de aprendizado profundo e uma rede de crenças profundas?

23

Qual é a diferença entre uma rede neural, um sistema de aprendizado profundo e uma rede de crenças profundas?

Pelo que me lembro, sua rede neural básica é um tipo de coisa de três camadas, e eu tive os Deep Belief Systems descritos como redes neurais empilhadas umas sobre as outras.

Até recentemente, não ouvi falar de um Deep Learning Systems, mas suspeito fortemente que seja sinônimo de Deep Belief System. alguém pode confirmar isso?

Lyndon White
fonte
talvez você queira dizer "aprendizado profundo"? veja, por exemplo, notícias / links de aprendizagem profunda
vzn
Crença profunda do sistema, é o termo Corri para, eles podem ou não podem ser sinônimos (A Pesquisa Google irá lançar-se artigos para profunda crença Sistema)
Lyndon Branco
Deep Belief Network é o nome canônico, porque eles derivam da Deep Boltzmann Network (e pode ser confusa com um sistema de propagação de crenças que é totalmente diferente, pois trata-se de redes bayesianas e teoria probabilística da decisão).
gaborous 17/07/2015
@gaborous Deep Belief Network é o nome correto (o documento que recebi anos atrás, me apresentando a eles deve ter tido um erro de digitação). mas, como é derivado de redes boltzman profundas, esse nome em si não é canônico (AFAIK, feliz em ver uma citação). DBNs derivam de Sigmoid Belief Networks e RBMs empilhados. Eu não acho que o termo Deep Boltzmann Network seja usado sempre. Por outro lado profunda Boltzmann Machine é um termo usado, mas no fundo Boltzmann Machines foram criados após Networks profunda crença
Lyndon Branca
@Oxinabox Você está certo, eu cometi um erro de digitação, é a Deep Boltzmann Machines, embora realmente deva se chamar Deep Boltzmann Network (mas a sigla seria a mesma, talvez seja por isso). Não sei qual arquitetura profunda foi inventada primeiro, mas as máquinas Boltzmann são anteriores ao bm semi-restrito. DBN e DBM são realmente a mesma construção, exceto que a rede base usada como uma camada de repetição é um SRBM vs BM.
gaborous

Respostas:

10

modelos de redes neurais artificiais geralmente eram restritos a apenas algumas camadas, digamos 3, por décadas, por várias razões, incluindo uma prova matemática chamada Kolmogorovs th que indicava que eles poderiam teoricamente aproximar funções arbitrárias com baixo erro (mas apenas com muitos neurônios).

redes multicamadas além das que não eram viáveis ​​/ eficazes por meio de técnicas de aprendizado anteriores um avanço semelhante ocorreu em 2006 por três pesquisadores diferentes, Hinton, Le Cun, Bengio, que foram capazes de treinar muito mais camadas. o principal problema nessa área era o reconhecimento de caligrafia.

o termo "rede de crenças profundas" parece originar-se de um artigo de 2006 de Hinton, referindo-se a redes bayesianas , que têm estreitas conexões conceituais / teóricas / analogias com redes neurais. "Um algoritmo de aprendizado rápido para redes de crenças profundas"

veja o slide 17 em particular desta apresentação redes neurais profundas

portanto, o campo de aprendizado profundo tem apenas cerca de meia década e está em rápida pesquisa e desenvolvimento. Google, Facebook e Yahoo anunciaram iniciativas baseadas em aprendizado profundo e a pesquisa e o desenvolvimento estão em andamento.

vzn
fonte
web site dedicado à aprendizagem profunda por pesquisadores no campo
vzn
14

As redes neurais artificiais são uma classe de algoritmos que incluem muitos tipos diferentes de algoritmos baseados em gráficos; portanto, não detalharei aqui além do que você pediu, porque há muito a dizer, uma vez que existem muitos tipos de RNAs.

O primeiro tipo de redes neurais artificiais, os famosos neurônios McCulloch-Pitts, eram lineares , significando que eles só poderiam resolver problemas de decisão lineares (isto é, conjuntos de dados que poderiam ser linearmente separáveis desenhando uma linha). Com o tempo, esse modelo de rede neural linear ficou conhecido como Perceptron ou Adaline (dependendo de como você calcula a atualização de pesos).

As redes neurais lineares são compostas apenas de um gráfico bipartido, onde os nós do lado esquerdo são as entradas e o lado direito, a saída. Somente os pesos das arestas entre esses nós são aprendidos (o limite de ativação dos nós também pode ser ajustado, mas isso raramente é feito).

Rede neural básica, como Adaline ou Perceptron (sem camada oculta) Limite de decisão linear

Um grande passo foi dado quando redes neurais rasas foram inventadas: em vez de ter apenas um gráfico bipartido, usamos um gráfico de 3 partes: a "camada" de entrada, a "camada" de saída e uma "camada oculta" entre elas. Graças à camada oculta, a rede agora pode tomar decisões não lineares e resolver problemas como o XOR canônico.

Rede neural Xor Caminhos de ativações de exemplo de rede neural Xor Limite de decisão de rede Xor

Observe que o termo "superficial" foi cunhado retrospectivamente quando a rede neural profunda (também chamada de redes neurais de n camadas ) foi inventada. Isso se opõe às redes neurais com apenas uma camada oculta, com redes neurais profundas com n camadas ocultas . Como você pode adivinhar, o uso de camadas mais ocultas permite decidir conjuntos de dados mais complexos, pois há mais camadas para modular a decisão (ou seja, você está aumentando a dimensionalidade do seu limite de decisão, o que pode levar ao sobreajuste).

Rede neural de camada N Limite de decisão não linear complexo usando uma rede neural profunda de camada n

Você pode perguntar: por que ninguém tentou usar redes neurais multicamadas (profundas) antes? De fato, eles fizeram, já em 1975 por Fukushima, com o Cognitron e o Neocognitron (que é de fato uma rede neural convolucional, mas isso é outra história). No entanto, o problema era que ninguém sabia como aprender com eficiência essas redes, o grande problema era a regularização . Os AutoEncoders de Hinton abriram o caminho e, mais tarde, as Unidades Lineares Retificadas da LeCun resolveram o problema definitivamente.

E as Redes de Crenças Profundas (DBN)? São apenas máquinas Boltzmann semi-restritas de várias camadas. Portanto, eles são um tipo de rede neural profunda, mas com um padrão de rede básico diferente (ou seja: a camada, esse é o padrão que se repete): as máquinas Boltzmann são diferentes de outras redes por serem generativas , o que significa que geralmente são usado para aprender com seus dados para reproduzi-los ("gerá-los"), enquanto as redes neurais profundas comuns são usadas para separar seus dados (traçando um "limite de decisão").

Em outras palavras, os DNN são ótimos para classificar / prever um valor do seu conjunto de dados, enquanto os DBN são ótimos para "reparar" dados corrompidos (quando digo reparo, não são apenas dados corrompidos, eles também podem estar em dados perfeitamente precisos que você só deseja corrigir um pouco para ser mais estereotipado e reconhecer mais facilmente com outra rede neural, como dígitos escritos à mão).

De fato, para resumir bem, você pode dizer que os AutoEncoders são uma forma mais simples da Deep Belief Network. Aqui está um exemplo de um DBN treinado para reconhecer rostos, mas NÃO números, os números são automaticamente apagados (este é o efeito "consertador" do DBN):

Exemplo da Deep Belief Network sobre reconhecimento facial

Portanto, no final, DBN e DNN não são opostos: são complementares. Por exemplo, você pode imaginar um sistema para reconhecer caracteres manuscritos que primeiro alimentarão a imagem de um personagem em um DBN para torná-lo mais estereotipado e, em seguida, alimentarão a imagem estereotipada em um DNN que produzirá qual caractere a imagem representa.

Uma última observação: as redes de crença profunda estão muito próximas das máquinas Deep Boltzmann: as máquinas de Deep Boltzmann usam camadas de máquinas Boltzmann (que são redes neurais bidirecionais, também chamadas de redes neurais recorrentes), enquanto as redes de crença profunda usam máquinas Boltzmann semi-restritas (semi- restrito significa que eles são alterados para unidirecionais, portanto, permite usar a retropropagação para aprender a rede que é muito mais eficiente do que aprender uma rede recorrente). Ambas as redes são usadas para o mesmo objetivo (regenerar o conjunto de dados), mas o custo computacional é diferente (as máquinas Deep Boltzmann são significativamente mais caras para aprender devido à sua natureza recorrente: é mais difícil "estabilizar" os pesos).

Bônus: sobre as Redes Neurais Convolucionais (CNN), você encontrará muitas afirmações contraditórias e confusas, e geralmente verá que elas são apenas redes neurais profundas. No entanto, parece que o consenso é usar a definição original do Neocognitron de Fukushima: uma CNN é um DNN que é forçado a extrair diferentes recursos em diferentes níveis hierárquicos, impondo uma convolução antes da ativação (o que um DNN pode fazer naturalmente, mas forçando-a) definir uma função de convolução / ativação diferente em diferentes camadas da rede pode gerar melhores resultados, pelo menos é a aposta da CNN):

Recursos da rede neural profunda Recursos da rede neural convolucional

E, finalmente, para uma linha do tempo mais rigorosa da Inteligência Artificial, veja aqui .

laborioso
fonte
1
Ótima resposta! Um aspecto principal (talvez o aspecto definidor) das redes profundas convolucionais é que cada camada corresponde à aplicação de uma convolução e à aplicação de uma função de ativação: existe um núcleo e todos os nós em uma camada aplicam o mesmo núcleo. Imagine que a entrada é uma imagem. Normalmente, você tem um nó para cada pixel e ele tem conexões provenientes de pixels próximos. Uma rede comum permitiria que cada pixel tivesse seu próprio padrão de pesos nas bordas recebidas. Uma rede convolucional impõe o requisito extra de que seja a mesma sequência de pesos em cada pixel da imagem.
DW
Sim, de fato, você está certo, e é daí que o nome vem. Mas, pessoalmente, acho que isso costuma ser usado como hack para especializar uma rede neural profunda do que qualquer outra coisa (quando a característica definidora de uma rede neural profunda deve ser de propósito geral e independente do conjunto de dados). Por exemplo, HMAX, uma espécie de CNN, usa a convolução para mapas saliência de computação, que é claramente um corte quando o mapa de saliências em uma rede neural biológica é claro que não calculado usando programação dinâmica ...
gaborous
3

Redes neurais profundas são redes neurais com profundidade relativamente alta. Eles são uma subclasse de redes neurais. A ideia remonta décadas e não é nova. A novidade é que descobrimos como treiná-los na prática. A razão pela qual se tornou muito popular recentemente é treiná-los, tornando-se viáveis ​​e as pessoas os usavam para vencer algoritmos de última geração. O DNN precisa de muitos dados e muita potência computacional que não estavam disponíveis décadas atrás. Geoff Hinton e seus alunos e colegas descobriram como treiná-los na prática na última década e os usaram para vencer os algoritmos de aprendizado de máquina de última geração em vários campos em que a maioria dos pesquisadores evitou a ideia de usá-los completamente na época.

As redes de crenças são uma classe de modelos gráficos probabilísticos, modelam várias variáveis ​​aleatórias e suas dependências usando um gráfico (existem várias maneiras de fazer isso). Essas variáveis ​​em si podem ser de distribuições parametrizadas e podem ser modeladas por redes neurais (ou algum outro modelo para representar distribuições parametrizadas). Redes de crenças profundas são redes de crenças com profundidade relativamente alta.

As redes de crenças tendem a ser generativas, ou seja, podemos usar um modelo treinado para gerar amostras a partir da distribuição que representa.

As redes neurais tendem a ser discriminatórias, podemos usá-las para calcular a probabilidade de uma determinada entrada (isso é uma imagem de um gato? Qual é a probabilidade de isso ser uma imagem de um gato?), Mas geralmente não para amostragem (gerar um foto de um gato).

Kaveh
fonte
Eu não sou especialista em ML, então pegue o que escrevi com um grão de sal.
Kaveh
-1

As redes neurais são normalmente implementadas onde são necessárias camadas ocultas e equações quadráticas. Onde redes de aprendizado profundo e crenças profundas são utilizadas, onde várias camadas ocultas são necessárias para a manipulação de dados, assim como redes profundas de Boltzmann.

Case Msee
fonte
Então, ambos exigem camadas ocultas? Você poderia fazer várias camadas ocultas no NN normal? Esta rede Boltzmann, você quis dizer máquinas Boltzmann? Então qual é a diferença? Não responde à pergunta (ou talvez sim, mas é muito claro).
Mal