À medida que nos aprofundamos na literatura das Redes Neurais , conseguimos identificar outros métodos com topologias neuromórficas (arquiteturas semelhantes à "Rede Neural"). E não estou falando do Teorema da Aproximação Universal . Exemplos são dados abaixo.
Então, isso me faz pensar: qual é a definição de uma rede neural artificial? Sua topologia parece cobrir tudo.
Exemplos:
Uma das primeiras identificações que fazemos é entre o PCA e um Autoencoder linear com pesos vinculados no codificador e decodificador e ativações de limiar na camada de gargalo.
Além disso, é feita uma identificação comum entre modelos lineares (regressão logística em especial) e uma Rede Neural sem camada oculta e uma única camada de saída. Essa identificação abre várias portas.
Séries de Fourier e Taylor? ANNs . SVM ? ANN. Processo Gaussiano? RNA (com uma única camada oculta com infinitas unidades ocultas).
E, com a mesma facilidade, podemos incorporar versões regularizadas arbitrárias com funções especializadas de perda desses algoritmos em uma estrutura de rede neural.
Mas quanto mais cavamos, mais semelhanças aparecem. Acabei de me deparar com Deep Neural Decision Trees , que faz a identificação de uma arquitetura específica da RNA com árvores de decisão, permitindo que elas sejam aprendidas pelos métodos da RNA (como a retropropagação gradiente de descida). A partir disso, podemos construir Florestas Aleatórias e Árvores de Decisão Impulsionadas por Gradiente a partir exclusivamente de topologias de Redes Neurais.
Se tudo pode ser expresso como uma rede neural artificial, o que define uma rede neural artificial?
fonte
Respostas:
Jürgen Schmidhuber, " Aprendizado profundo em redes neurais: uma visão geral " traça a história dos principais conceitos em redes neurais e aprendizado profundo. Para ele, as redes neurais parecem abranger essencialmente qualquer modelo que possa ser caracterizado como um gráfico direcionado, em que cada nó representa alguma unidade computacional. Schmidhuber é um destacado pesquisador de redes neurais e escreveu o artigo original em redes LSTM com Sepp Hochreiter.
Por outro lado, não tenho certeza de que seja necessariamente lucrativo tentar construir uma taxonomia de buckets mutuamente exclusivos para estratégias de aprendizado de máquina. Penso que podemos dizer que existem perspectivas a partir das quais os modelos podem ser vistos como redes neurais. Não acho que essa perspectiva seja necessariamente a melhor ou útil em todos os contextos. Por exemplo, ainda estou planejando me referir a florestas aleatórias e árvores com aumento de gradiente como "conjuntos de árvores" em vez de abstrair suas distinções e chamá-las de "árvores de redes neurais". Além disso, Schmidhuber distingue os NNs das máquinas do kernel - embora as máquinas do kernel tenham algumas conexões com os NNs - quando ele escreve "No novo milênio, os NNs profundos finalmente atraíram uma atenção ampla, principalmente superando métodos alternativos de aprendizado de máquina, como máquinas de kernel ... em inúmeras aplicações importantes. "
fonte
Se você deseja uma definição básica de uma RNA, pode dizer que é um modelo gráfico direcionado, onde entradas e saídas são processadas em cada nó por meio de uma função de ativação, e na maioria das vezes a descida do gradiente é usada para treiná-lo. Então a pergunta realmente se torna: quais modelos lá fora podem ser expressos como modelos gráficos?
Eu não sou um especialista, mas acredito que teoricamente algumas RNAs podem ser mostradas como Turing completas, o que significa que elas devem ser capazes de fazer qualquer conjunto de cálculos possível (com um número infinito possível de recursos, veja bem).
Também vou interpretar sua pergunta da seguinte maneira:
Uma rede neural de baunilha pode emular uma árvore de decisão, usando ativações passo a passo. O problema é que essas ativações de unidade têm gradiente zero, portanto a descida normal do gradiente não funcionará. Você pode dizer: "não há problema, basta usar uma forma modificada de descida de gradiente". No entanto, isso ainda não é suficiente. Para um exemplo melhor, use algo como XGBOOST, que não é apenas florestas com aumento de gradiente. Há muito trabalho extra na escolha de pontos de divisão, remoção, otimização de velocidade etc. Talvez após modificações suficientes, você possa criar uma RNA de aparência semelhante, mas não está claro que essa RNA funcionaria pelo menos como bem, nem se está otimizado para fazer o trabalho.
fonte
"For any given model, can I slap together an ANN model to emulate that model, as close as possible, and in a reasonable amount of time?"
- Receio dizer que não é esse o ponto. A questão é que a topologia da RNA é tão geral que parece abranger tudo, e a estratégia de otimização não parece capaz de determinar o que é e o que não é uma RNA. Portanto, a pergunta, o que define uma RNA? Porque, caso contrário, tudo é, de certa forma, uma RNA expressada em outros termos."A vanilla neural network can emulate a decision tree, by using heaviside step-activations. The problem is that such unit activations have zero gradient, so normal gradient descent won't work. You might say, "no problem, just use a modified form of gradient descent." However, that's still not enough. [...]"
- Como poderíamos afirmar, a otimização não é um fator determinante para a definição do que constitui uma RNA. Se você pode escrever todas as árvores de decisão como uma rede neural (e nós podemos fazer isso), podemos dizer com segurança que as DTs são (um tipo de) NN, enquanto o inverso não é verdadeiro."If you want a basic definition of an ANN, you might say that it's a directed-graphical-model, where inputs and outputs are processed at each node via an activation function, and most of the time gradient descent is used to train it. So the question really becomes: what models out there can be expressed as graphical models?"
- Eu concordo com isto. Então, "Rede Neural" pode ser interpretada como a classe mais geral de modelos, talvez apenas menos geral que "Modelos de gráfico", que é um superconjunto dos modelos de gráfico não direcionado e direcionado. Talvez você poderia elaborar mais sobre isso;)Talvez um nome mais preciso para RNAs seja "redes diferenciáveis", isto é, funções parametrizadas complexas que podem ser otimizadas usando a descida de gradiente ou sua variante. Essa é uma definição muito geral que enfatiza a diferenciabilidade, mas não diz nada sobre as principais idéias, tarefas para as quais é adequado, estrutura matemática subjacente etc.
Observe que a diferenciabilidade é uma característica, e não a principal. Por exemplo, o SVM pode ser treinado usando descida de gradiente e, portanto, exibe propriedades de uma rede neural / diferenciável, mas a idéia principal está na separação de dados usando hiperplanos. O autoencoder variacional usa MLPs para codificador e decodificador, mas a função que você otimiza vem das estatísticas bayesianas e assim por diante.
Existem também alguns modelos que são frequentemente chamados de redes neurais, mas não usam o GD para aprender. Um bom exemplo é o RBM. Meu palpite é que o rótulo "rede neural" foi anexado a ele principalmente por razões históricas - eventualmente, o criador do RBM é Geoffrey Hinton, e Hinton é um cara da rede neural, certo? No entanto, se você analisar o modelo, verá que a estrutura do RBM é uma rede de Markov, a função de custo baseada em energia vem da física estatística do início do século XX e a amostragem MCMC / Gibbs vem se desenvolvendo paralelamente e de forma totalmente independente das redes neurais .
fonte
Eu posso tentar postular algumas coisas que ajudam a definir uma rede neural.
Tenho certeza de que isso cobre todas as redes neurais de uso comum hoje e também algumas esotéricas.
É independente da otimização (se impusemos a otimização baseada em gradiente, as redes evoluídas não seriam redes neurais).
Ele não menciona neurônios / nós ou camadas (algumas redes neurais hoje são dificilmente descritas por esses termos), mas acho que poderíamos incorporar isso e ser um pouco mais restritivo.
fonte