Rede neuronal

Da Thinkfn

Diagrama simplificado de uma rede neural

Redes neuronais, ou, mais propriamente Redes neuronais artificiais, são sistemas computacionais baseados numa aproximação à computação baseada em ligações. Nós simples (ou "neurões", "neurónios", "processadores" ou "unidades") são interligados para formar uma rede de nós - daí o termo "rede neuronal". A inspiração original para esta técnica advém do exame das estruturas do cérebro, em particular do exame de neurónios.

Redes Neuronais

Hoje em dia a maior parte dos investigadores concorda que as redes neuronais são muito diferentes do cérebro em termos de estrutura. No entanto, como o cérebro, uma rede neuronal é uma coleção massivamente paralela de unidades de processamento pequenas e simples, onde as interligações formam a maior parte da inteligência da rede. Entretanto, em termos de escala, o cérebro é muito maior que qualquer rede neural. Além disso, as unidades usadas na rede neural são tipicamente muito mais simples que os neurónios e o processo de aprendizado do cérebro (embora ainda desconhecido) é, certamente, muito diferente do das redes neurais.

Rede Pró-alimentada

Uma rede neural "pró-alimentada" (em contraposição a "retroalimentada") típica consiste de um conjunto de nós. Alguns desses nós são designados nós de entrada, outros nós de saída e aqueles que estão entre estes dois tipos de nós são chamados de nós "escondidos". Existem também conexões entre os neurónios, com um número referido como um ponderador associado a cada conexão. Quando a rede está em operação, um valor de entrada será aplicado a cada nó de entrada - estes valores são colocados por um operador humano ou por sensores ambientais ou talvez por outros programas. Cada nó então passa seu dado valor para as conexões que saem dele e em cada conexão o valor é multiplicado por um ponderador associado a essa conexão. Cada nó na camada seguinte então recebe um valor que é a soma dos valores produzidos pelas conexões que chegam até ele e em cada nó é realizada uma computação simples sobre esse valor - uma função sigmóide é típica. O processo então é repetido com os resultados sendo passados através de camadas subsequentes de nós até que os nós de resultados sejam atingidos.

Nota: isto é baseado num modelo de neurónio da década de 1970.

Os modelos alternativos de cálculo nas redes neurais incluem aqueles dotados de "loops" (nos quais algum tipo de processo de retardamento de tempo precisa ser usado) e os modelos "o vencedor leva tudo", nos quais o neurónio com os valores mais altos "dispara" e toma o valor 1, e todos os outros neurónios tomam o valor 0.

Tipicamente os ponderadores em uma rede neural são colocados inicialmente em valores aleatórios pequenos; isto significa que a rede não sabe nada. À medida que o processo de treinamento acontece, esses ponderadores irão convergir para valores que permitem que eles realizem uma computação útil. Assim pode ser dito que uma rede neural começa sabendo nada e move-se no sentido de ganhar algum conhecimento real.

As redes neurais são particularmente úteis para lidar com dados ligados a valores reais em que se deseja obter uma saída dotada de valor real; desta maneira as redes neurais irão realizar uma classificação por graus, e serão capazes de expressar valores equivalentes a "não conhecido com certeza". Se uma rede neural é treinada usando a função de erro de entropia cruzada (veja o livro de Bishop) e se a saída dessa rede neural tem uma forma sigmoidal não-linear, então as saídas serão estimativas de uma probabilidade posterior real de uma classe.

Aplicações reais

Em aplicações reais, as redes neurais se saem particularmente bem nas seguintes tarefas:

  • Aproximação de funções;
  • Previsão de séries temporais;
  • Classificações;
  • Reconhecimento de Padrões.

CTRNN

Outros tipos de redes neurais, em particular Redes Neurais Recorrentes de Tempo Contínuo (Continuous-Time Recurrent Neural Networks - CTRNN), são usadas em conjunto com Algoritmos Genéticos (Genetic Algorithms - GAs) para produzir controladores robóticos. O genoma é então constituído dos parametros de rede e, a aptidão de uma rede é a adequação do comportamento exibido pelo robô controlado (ou freqüentemente por uma simulação deste comportamento).

Tipos de Redes Neurais

O exemplo mais antigo de redes neurais são as redes perceptron com uma camada de nós de saída, conectados às entradas por conjuntos de pesos. Esta topologia pode ser considerada a forma mais simples de rede em avanço. A soma do produtos dos pesos pelas entradas é calculada por cada nó de saída, e se o valor calculado ultrapassar um certo limiar (geralmente 0), o neurónio dispara e ajusta a saída para o valor 1; se o valor calculado é menor que o limiar, a saída é ajustada para o valor -1. Ao mesmo tempo, um algoritmo de aprendizado calcula a diferença entre a saída calculada e os dados de entrada, e usa o valor da diferença para ajustar os pesos da rede.

Perceptron com uma Camada

Redes perceptron com uma camada são o tipo mais antigo de redes neurais, as quais são formadas por uma camada única de neurónios de saída, os quais estão conectados por pesos às entradas. Este é o exemplo mais simples de redes em avanço. A soma do produto entre pesos e entradas alimenta cada neurónio de saída, e se o resultado desta operação exceder um certo limiar (geralmente 0), o neurónio coloca o valor 1 na saída; se o resultado for inferior ao limiar, o neurónio coloca o valor -1 na saída. neurónios com esse comportamento são chamados de neurónios de McCulloch-Pitts ou neurónios com limiar. Na literatura técnica o termo perceptron diz respeito a redes com apenas um desses neurónios.

Perceptrons podem ser treinados por um algoritmo de aprendizagem simples, chamado geralmente de regra-delta. Este algoritmo calcula os erros entre a saída dos dados calculados e a saída desejada, e utiliza isso para ajustar os pesos, assim executando um formulário da descida do gradiente.

Os perceptrons de uma camada são capazes de aprender somente sobre problemas linearmente separáveis (que podem ser separados por uma reta em uma hiperplano; em 1969 em uma monografia famosa intitulada Perceptrons por Marvin Minsky e por Seymour Papert mostrou que era impossível para uma única rede do perceptron da camada aprender uma função de XOR, Conjecturou (incorretamente) que um resultado similar penderia para uma rede multi-camadas do perceptron. Embora uma única unidade do ponto inicial fosse completamente limitada em seu poder computacional, mostrou-se que as redes de unidades paralelas do ponto inicial podem aproximar toda a função contínua de um intervalo compacto dos números reais no intervalo [ - 1, 1 ]. Este resultado muito recente pode ser encontrado em [ Auer, Burgsteiner, Maass: A regra de aprendizagem para perceptrons paralelos, 2001 do p-delta (estado janeiro 2003: submetido para a publicação) ].

Perceptron Multi-camadas

Esta classe de rede consiste de múltiplas camadas de unidades computacionais, geralmente interconectadas em uma forma feedforward. Isso quer dizer que cada neurónio em uma camada tem conexões diretas a neurónios da próxima camada. Em muitas aplicações as unidades dessas redes aplicam uma função sigmóide (em forma de S) como a função de ativação..

O teorema de aproximação universal dita que toda função contínua que mapeia intervalos de números reais a algum intervalo de números reais de saída pode ser arbitrariamente aproximado com precisão por um perceptron multi-camadas com somente uma camada oculta. Este resultado só é válido para classes restritas de funções de ativação, por exemplo funções sigmóides.

Redes Multi-camadas podem usar um grande número de técnicas de aprendizado, sendo que a mais popular é a propagação reversa. Neste caso os valores de saída são comparados com a resposta correta para computar o valor de alguma função-erro predefinida. Por alguma técnica o erro é então alimentado de volta na rede. Usando essa informação, o algoritmo ajusta os pesos de cada conexão para reduzir o valor da função erro. Apos repetir este processo por um número suficiente.

Links relevantes


Smallwikipedialogo.png

Esta página usa conteúdo da Wikipedia. O artigo original estava em Rede neural. Tal como o Think Finance neste artigo, o texto da Wikipedia está disponível segundo a GNU Free Documentation License.