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?
machine-learning
neural-networks
boltzmann-machine
Lyndon White
fonte
fonte
Respostas:
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.
fonte
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).
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.
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).
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):
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):
E, finalmente, para uma linha do tempo mais rigorosa da Inteligência Artificial, veja aqui .
fonte
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).
fonte
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.
fonte