O que é uma Rede Neural Artificial?

15

À 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?

Firebug
fonte
Esse artigo sobre Deep Neural Decision Trees está bem longe. Normalmente, as funções de ativação são funções com valor real, não produtos externos. Portanto, eles não estão realmente discutindo RNAs como normalmente pensamos neles, mas uma generalização matemática que não é amplamente usada ou aceita. Para mostrar uma RNA é diferente de uma árvore de decisão, eu simplesmente salientar que todos os RNAs são paramétricos (ter um espaço de parâmetros finito), enquanto as árvores são não-paramétrica (ter um espaço de parâmetros potencialmente infinito.)
olooney
@olooney o produto Kronecker não é uma função de ativação, é simplesmente uma operação nas saídas da camada anterior (como uma convolução ou qualquer outra operação que definimos em relação às ativações). O DNDT pode representar qualquer árvore de decisão E todo DNDT pode ser representado por uma árvore de decisão.
Firebug
1
@olooney seguindo sua definição de função de ativação, o Softmax não é uma função de ativação.
Firebug
2
Não tenho muita certeza de entender a motivação para esta pergunta. Uma definição possível e solta de uma RNA é que é um modelo gráfico direcionado, que usa neurônios (ou seja, funções de ativação) para processar entradas / saídas e, na maioria das vezes, você usa a descida gradiente para treiná-la. Quando você diz que "tudo pode ser expresso como uma RNA", você está perguntando especificamente se existe um mapeamento exato entre os outros modelos mencionados e as RNAs? O problema é que você precisará criar rotinas de treinamento altamente modificadas para corresponder às otimizações.
Alex R.
1
@ Sycorax Eu também faço, ele e Hinton sugeriram isso. Eu quero dar uma oportunidade para answerers em outro campo para fornecer fontes credíveis :)
Firebug

Respostas:

6

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.

Quais componentes modificáveis ​​de um sistema de aprendizado são responsáveis ​​por seu sucesso ou fracasso? Quais mudanças para eles melhoram o desempenho? Isso foi chamado de problema fundamental de atribuição de crédito (Minsky, 1963). Existem métodos gerais de atribuição de crédito para solucionadores de problemas universais que são ótimos no tempo em vários sentidos teóricos (Seção 6.8). A presente pesquisa, no entanto, se concentrará no subcampo mais estreito, mas agora comercialmente importante, do Deep Learning (DL) em Redes Neurais Artificiais (NNs).

Uma rede neural padrão (NN) consiste em muitos processadores simples e conectados, chamados neurônios, cada um produzindo uma sequência de ativações com valor real. Os neurônios de entrada são ativados através de sensores que percebem o ambiente, outros neurônios são ativados através de conexões ponderadas de neurônios previamente ativos (detalhes na Seção 2). Alguns neurônios podem influenciar o ambiente desencadeando ações. A atribuição de aprendizado ou crédito consiste em encontrar pesos que façam o NN exibir o comportamento desejado, como dirigir um carro. Dependendo do problema e de como os neurônios estão conectados, esse comportamento pode exigir longas cadeias causais de estágios computacionais (Seção 3), onde cada estágio transforma (geralmente de maneira não linear) a ativação agregada da rede. O Deep Learning trata da atribuição precisa de crédito em muitos desses estágios.

Modelos rasos do tipo NN com poucos estágios existem há muitas décadas, senão séculos (Seção 5.1). Modelos com várias camadas não-lineares sucessivas de neurônios datam pelo menos dos anos 1960 (Seção 5.3) e 1970 (Seção 5.5). Um método eficiente de descida em gradiente para o aprendizado supervisionado (SL) baseado em professor em redes discretas e diferenciáveis ​​de profundidade arbitrária denominadas retropropagação (PA) foi desenvolvido nas décadas de 1960 e 1970 e aplicado aos RNs em 1981 (seção 5.5). O treinamento baseado em BP de NNs profundos com muitas camadas, no entanto, foi considerado difícil na prática no final da década de 1980 (Seção 5.6), e havia se tornado um assunto explícito de pesquisa no início da década de 1990 (Seção 5.9). O DL tornou-se praticamente viável, em certa medida, com a ajuda da Aprendizagem Não Supervisionada (UL), por exemplo, Sec. 5.10 (1991), Sec. 5.15 (2006). As décadas de 1990 e 2000 também tiveram muitas melhorias no DL puramente supervisionado (Seção 5). No novo milênio, as NNs profundas finalmente atraíram muita atenção, principalmente superando os métodos alternativos de aprendizado de máquina, como as máquinas de kernel (Vapnik, 1995; Scholkopf et al., 1998) em inúmeras aplicações importantes. De fato, desde 2009, as NNs profundas supervisionadas venceram muitas competições oficiais internacionais de reconhecimento de padrões (por exemplo, Sec. 5.17, 5.19, 5.21, 5.22), alcançando os primeiros resultados de reconhecimento de padrões visuais sobre-humanos em domínios limitados (Sec. 5.19, 2011). As NNs profundas também se tornaram relevantes para o campo mais geral da Aprendizagem por Reforço (RL), onde não há professor supervisor (Seção 6). principalmente superando métodos alternativos de aprendizado de máquina, como máquinas de kernel (Vapnik, 1995; Scholkopf et al., 1998) em inúmeras aplicações importantes. De fato, desde 2009, as NNs profundas supervisionadas venceram muitas competições oficiais internacionais de reconhecimento de padrões (por exemplo, Sec. 5.17, 5.19, 5.21, 5.22), alcançando os primeiros resultados de reconhecimento de padrões visuais sobre-humanos em domínios limitados (Sec. 5.19, 2011). As NNs profundas também se tornaram relevantes para o campo mais geral da Aprendizagem por Reforço (RL), onde não há professor supervisor (Seção 6). principalmente superando métodos alternativos de aprendizado de máquina, como máquinas de kernel (Vapnik, 1995; Scholkopf et al., 1998) em inúmeras aplicações importantes. De fato, desde 2009, as NNs profundas supervisionadas venceram muitas competições oficiais internacionais de reconhecimento de padrões (por exemplo, Sec. 5.17, 5.19, 5.21, 5.22), alcançando os primeiros resultados de reconhecimento de padrões visuais sobre-humanos em domínios limitados (Sec. 5.19, 2011). As NNs profundas também se tornaram relevantes para o campo mais geral da Aprendizagem por Reforço (RL), onde não há professor supervisor (Seção 6). alcançar o primeiro reconhecimento de padrões visuais sobre-humanos resulta em domínios limitados (Seção 5.19, 2011). As NNs profundas também se tornaram relevantes para o campo mais geral da Aprendizagem por Reforço (RL), onde não há professor supervisor (Seção 6). alcançar o primeiro reconhecimento de padrões visuais sobre-humanos resulta em domínios limitados (Seção 5.19, 2011). As NNs profundas também se tornaram relevantes para o campo mais geral da Aprendizagem por Reforço (RL), onde não há professor supervisor (Seção 6).

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. "

Sycorax diz restabelecer Monica
fonte
Então, basicamente, todo modelo e heurística conhecido hoje em Machine Learning and Statistics seria considerado uma RNA por Schmidhuber, com a nomenclatura distinta sendo simplesmente dada pela estratégia de otimização (incluindo modelos sem otimização aqui)?
Firebug
1
Entendo isso do ponto de vista prático, mas isso não muda o fato de que praticamente todos os modelos são, a rigor, uma RNA (não consigo pensar em nenhum modelo que não seja).
Firebug
2
@ Firebug Como você reformataria os problemas de agrupamento de regressão ou (k-means simples e outros), treinados ou colocados em um 'ambiente de aprendizado', de modo que sejam iguais a esta definição de RNA?
Sextus Empiricus
1
@ Firebug Não vejo como o fato de o PCA poder ser mostrado como equivalente a um determinado autoencoder torna o PCA "uma rede neural". No PCA padrão, nem usamos descida de gradiente.
Ameba diz Reinstate Monica
1
@ Firebug Se você definir "NN" como "nós computacionais conectados", acho que qualquer cálculo é um NN. Não tenho certeza se é de alguma utilidade, mas tudo bem.
Ameba diz Reinstate Monica
7

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:

Para qualquer modelo, posso montar um modelo de RNA para emular esse modelo, o mais próximo possível e em um período de tempo razoável?

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.

f(x)=ex

Alex R.
fonte
2
Obrigado pela resposta! Com relação à pergunta - "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.
Firebug
1
"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.
Firebug
"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;)
Firebug
2

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 .

amiga
fonte
2
A aprendizagem baseada em gradientes certamente desempenhou um papel no sucesso das RNAs. Mas não vejo a diferenciabilidade como essencial para a definição, porque algumas RNAs não são diferenciáveis. Por exemplo, a primeira RNA (modelo McCulloch-Pitts) usava unidades de limite binário. Um tópico de pesquisa atual é como executar o aprendizado em RNAs não diferenciáveis, como redes de spikes. Ou, suponha que comecemos com uma RNA típica e diferenciável, mas depois declaramos que queremos minimizar uma função de perda não diferenciável. Já não é uma RNA?
User20160
Foi exatamente por isso que propus uma definição alternativa que abrange redes de avanço, recorrentes, recursivas, convolucionais, auto-codificadores, VAEs, GANs, atenção e muitos outros modelos que normalmente chamamos de "redes neurais", mas exclui, por exemplo, abordagens baseadas na simulação de cérebro humano ou amostragem extensiva sobre PGMs. A partir de 2018, essas abordagens são realmente diferentes, elas usam métodos de otimização diferentes, bibliotecas diferentes etc. (embora eu não consiga pensar em um nome melhor do que "rede neural" para spishing nets, pois, diferentemente das CNNs ou RNNs, na verdade simula cérebro).
ffriend
1

Eu posso tentar postular algumas coisas que ajudam a definir uma rede neural.

  • Um gráfico de computação com parâmetros ajustáveis.
  • Os referidos parâmetros podem ser ajustados para se ajustarem aos dados (reais ou simulados).
  • Uma função objetiva a ser otimizada está envolvida implícita ou explicitamente. Pode ser global ou local nos parâmetros.

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.

Firebug
fonte