Rede Neural Artificial - Conceitos Básicos

Redes neurais são dispositivos de computação paralela, que são basicamente uma tentativa de fazer um modelo de computador do cérebro. O objetivo principal é desenvolver um sistema que execute várias tarefas computacionais mais rapidamente que os sistemas tradicionais. Essas tarefas incluem reconhecimento e classificação de padrões, aproximação, otimização e armazenamento em cluster de dados.

O que é Rede Neural Artificial?

A Rede Neural Artificial (RNA) é um sistema de computação eficiente cujo tema central é emprestado da analogia das redes neurais biológicas. As RNAs também são chamadas de "sistemas neurais artificiais" ou "sistemas de processamento paralelo distribuído" ou "sistemas conexionistas". A RNA adquire uma grande coleção de unidades que são interconectadas em algum padrão para permitir a comunicação entre as unidades. Essas unidades, também conhecidas como nós ou neurônios, são processadores simples que operam em paralelo.

Cada neurônio está conectado a outro neurônio por meio de um link de conexão. Cada link de conexão está associado a um peso que contém informações sobre o sinal de entrada. Esta é a informação mais útil para os neurônios resolverem um problema específico, porque o peso geralmente excita ou inibe o sinal que está sendo comunicado. Cada neurônio tem um estado interno, que é chamado de sinal de ativação. Os sinais de saída, que são produzidos após combinar os sinais de entrada e a regra de ativação, podem ser enviados para outras unidades.

Uma breve história da ANN

A história da RNA pode ser dividida nas seguintes três eras -

ANN durante os anos 1940 a 1960

Alguns desenvolvimentos importantes desta era são os seguintes -

  • 1943 - Supõe-se que o conceito de rede neural começou com o trabalho do fisiologista Warren McCulloch e do matemático Walter Pitts, quando em 1943 eles modelaram uma rede neural simples usando circuitos elétricos para descrever como os neurônios do cérebro poderiam funcionar .

  • 1949- O livro de Donald Hebb, The Organization of Behavior , apresenta o fato de que a ativação repetida de um neurônio por outro aumenta sua força cada vez que são usados.

  • 1956 - Uma rede de memória associativa foi introduzida por Taylor.

  • 1958 - Um método de aprendizagem para o modelo de neurônio McCulloch e Pitts chamado Perceptron foi inventado por Rosenblatt.

  • 1960 - Bernard Widrow e Marcian Hoff desenvolveram modelos chamados "ADALINE" e “MADALINE”.

ANN durante os anos 1960 a 1980

Alguns desenvolvimentos importantes desta era são os seguintes -

  • 1961 - Rosenblatt fez uma tentativa sem sucesso, mas propôs o esquema de “retropropagação” para redes multicamadas.

  • 1964 - Taylor construiu um circuito vencedor leva tudo com inibições entre as unidades de saída.

  • 1969 - O perceptron multicamadas (MLP) foi inventado por Minsky e Papert.

  • 1971 - Kohonen desenvolveu memórias associativas.

  • 1976 - Stephen Grossberg e Gail Carpenter desenvolveram a teoria da ressonância adaptativa.

ANN de 1980 até o presente

Alguns desenvolvimentos importantes desta era são os seguintes -

  • 1982 - O principal desenvolvimento foi a abordagem de energia de Hopfield.

  • 1985 - A máquina Boltzmann foi desenvolvida por Ackley, Hinton e Sejnowski.

  • 1986 - Rumelhart, Hinton e Williams introduziram a Regra Delta Generalizada.

  • 1988 - Kosko desenvolveu a Memória Associativa Binária (BAM) e também deu o conceito de Lógica Fuzzy em RNA.

A revisão histórica mostra que um progresso significativo foi feito neste campo. Chips baseados em redes neurais estão surgindo e aplicativos para problemas complexos estão sendo desenvolvidos. Certamente, hoje é um período de transição para a tecnologia de redes neurais.

Neurônio biológico

Uma célula nervosa (neurônio) é uma célula biológica especial que processa informações. De acordo com uma estimativa, existe um grande número de neurônios, aproximadamente 10 11 com inúmeras interconexões, aproximadamente 10 15 .

Diagrama esquemático

Trabalho de um neurônio biológico

Conforme mostrado no diagrama acima, um neurônio típico consiste nas seguintes quatro partes com a ajuda das quais podemos explicar seu funcionamento -

  • Dendrites- São ramos em forma de árvore, responsáveis ​​por receber as informações de outros neurônios aos quais está conectado. Em outro sentido, podemos dizer que são como ouvidos de neurônios.

  • Soma - É o corpo celular do neurônio e é responsável pelo processamento das informações, que eles recebem dos dendritos.

  • Axon - É como um cabo pelo qual os neurônios enviam as informações.

  • Synapses - É a conexão entre o axônio e outros dendritos neuronais.

ANN versus BNN

Antes de dar uma olhada nas diferenças entre Rede Neural Artificial (RNA) e Rede Neural Biológica (BNN), vamos dar uma olhada nas semelhanças baseadas na terminologia entre as duas.

Rede Neural Biológica (BNN) Rede Neural Artificial (ANN)
Soma
Dendrites Entrada
Sinapse Pesos ou interconexões
Axônio Resultado

A tabela a seguir mostra a comparação entre ANN e BNN com base em alguns critérios mencionados.

Critério BNN ANN
Processing Massivamente paralelo, lento, mas superior a ANN Massivamente paralelo, rápido, mas inferior do que BNN
Size 10 11 neurônios e 10 15 interconexões 10 2 a 10 4 nós (depende principalmente do tipo de aplicativo e designer de rede)
Learning Eles podem tolerar ambigüidade Dados muito precisos, estruturados e formatados são necessários para tolerar a ambigüidade
Fault tolerance O desempenho é degradado, mesmo com danos parciais É capaz de desempenho robusto, portanto, tem o potencial de ser tolerante a falhas
Storage capacity Armazena as informações na sinapse Armazena as informações em locais de memória contínua

Modelo de Rede Neural Artificial

O diagrama a seguir representa o modelo geral de RNA seguido por seu processamento.

Para o modelo geral de rede neural artificial acima, a entrada líquida pode ser calculada da seguinte forma -

$$ y_ {in} \: = \: x_ {1} .w_ {1} \: + \: x_ {2} .w_ {2} \: + \: x_ {3} .w_ {3} \: \ dotso \: x_ {m} .w_ {m} $$

ou seja, entrada líquida $ y_ {in} \: = \: \ sum_i ^ m \: x_ {i} .w_ {i} $

A saída pode ser calculada aplicando a função de ativação sobre a entrada líquida.

$$ Y \: = \: F (y_ {in}) $$

Saída = função (entrada líquida calculada)