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).
![Limite de decisão linear](https://i.stack.imgur.com/2Z2ct.png)
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.
![Limite de decisão de rede Xor](https://i.stack.imgur.com/otLn1.jpg)
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).
![Limite de decisão não linear complexo usando uma rede neural profunda de camada n](https://i.stack.imgur.com/M67cb.png)
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](https://i.stack.imgur.com/1jnOy.jpg)
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 convolucional](https://i.stack.imgur.com/J7FZG.jpg)
E, finalmente, para uma linha do tempo mais rigorosa da Inteligência Artificial, veja aqui .